Hi, I am trying to create a macro that has a loop which copies a function down column 1 (VOL) and another function down column 2 (CAPACITY) for each Station. This is what I have so far:
Sub TieOut()
Dim i As Integer
Dim j As Integer
For i = 1 To 3
For j = 1 To 3
Worksheets("TieOut").Cells(i, j).Value = "'=INDEX('ZaiNet Data'!$A$1:$H$39038,MATCH('INDEX-MATCH'!Z$7&TEXT('INDEX-MATCH'!$A9,"m/dd/yyyy"),'ZaiNet Data'!$C$1:$C$39038,0), 4)"
Next j
Next i
End Sub
The picture of what I WANT is below: You can see that I have manually copied and pasted my two functions down each column. I just need a macro that can loop through it.
The function I want to be looped down the VOL column for each Station is:
=INDEX('ZaiNet Data'!$A$1:$H$39038,MATCH('INDEX-MATCH'!Z$7&TEXT('INDEX-MATCH'!$A438,"M/DD/YYYY"),'ZaiNet Data'!$C$1:$C$39038,0), 4)
The function I want to be looped down the CAPACITY column for each Station is:
=INDEX('ZaiNet Data'!$A$1:$H$39038,MATCH('INDEX-MATCH'!Z$7&TEXT('INDEX-MATCH'!$A438,"M/DD/YYYY"),'ZaiNet Data'!$C$1:$C$39038,0), 5)
Could someone please help? Thank you!
UPDATE
****How can I make the loop run automatically without having to manually enter the formula into the first two cells and click on macro?
Also how can I make the loop run through all the columns/rows? (horizontically)****
I included two screen shots to show what I mean. Below is my current code.
Thanks!
Sub Loop3()
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 1).Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(0, -1).Select
Dim i As Integer
Dim j As Integer
With Worksheets("Loop")
i = 1
Do Until .Cells(10, i).Value = "blank"
For j = 1 To 10
.Cells(j, i).Formula = "=INDEX('ZAINET DATA'!$A$1:$H$39038,MATCH(Loop!E$7&TEXT(Loop!$A9,""M/D/YYYY""),'ZAINET DATA'!$C$1:$C$39038,0),4)"
.Cells(j, i + 1).Formula = "=INDEX('ZAINET DATA'!$A$1:$H$39038,MATCH(Loop!E$7&TEXT(Loop!$A9,""M/D/YYYY""),'ZAINET DATA'!$C$1:$C$39038,0),5)"
Next j
i = i + 2
Loop
End With
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 1).Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(0, -1).Select
End Sub
Здравствуйте, подскажите, пожалуйста, как можно сделать цикл с перебором столбцов и выход в том случае, если столбец пуст??? То есть можно ли как-то узнать по порядковому номеру столбца его букву?? |
|
Перебор столбцов в использованной области активного листа: For each st in ActiveSheet.UsedRange.Columns перебор с выходом если столбец пуст: For each st in ActiveSheet.UsedRange.Columns перебор с выходом и определением буквы столбца (бесполезная для VBA информация): For Each st In ActiveSheet.UsedRange.Columns |
|
Спасибо, конечно, но как-то можно проще сделать мне кажется. Сейчас пробую с помощью Worksheets(«Лист1»).Cells(k, I).Value И вот такой вопрос. Поставила условие проверки пустоты ячейки: If IsNull(Worksheets(«Лист1»).Cells(k, I).Value) Then А почему-то если ячейка пустая, то это условие становится в False, хотя должно в True. Можете подсказать почему? If IsDate(Worksheets(«Лист1»).Cells(k, I).Value) Then Не пойму в чем проблема. Подскажите, пожалуйста!!! |
|
оно, конечно, аналогично, но не идентично.. Returns a Boolean value that indicates whether an expression contains no valid data (Null). Syntax IsNull(expression) The required expression argument is a Variant containing a numeric expression or string expression. Remarks IsNull returns True if expression is Null; otherwise, IsNull returns False. If expression consists of more than one variable, Null in any constituent variable causes True to be returned for the entire expression. The Null value indicates that the Variant contains no valid data. Null is not the same as Empty!!! , which indicates that a variable has not yet been initialized. It is also not the same as a zero-length string («»), which is sometimes referred to as a null string. Important Use the IsNull function to determine whether an expression contains a Null value. Expressions that you might expect to evaluate to True under some circumstances, such as If Var = Null and If Var <> Null, are always False. This is because any expression containing a Null is itself Null and, therefore, False. |
|
{quote}{login=slan}{date=29.01.2008 01:20}{thema=}{post}оно, конечно, аналогично, но не идентично.. И все-таки, а что с IsDate не то? |
|
есть такая кнопка… f1 |
|
{quote}{login=slan}{date=29.01.2008 02:01}{thema=}{post}есть такая кнопка… f1 :){/post}{/quote} Но почему-то у меня меньше там написано |
|
Кстати, а может ли это быть из-за того, что формат у ячейки стоит общий???? Ну по идеи же IsDate должна проверить и если можно перевести в дату, значит True. Я правильно поняла? |
|
{quote}{login=Sonia}{date=29.01.2008 04:19}{thema=}{post}Кстати, а может ли это быть из-за того, что формат у ячейки стоит общий???? Ну по идеи же IsDate должна проверить и если можно перевести в дату, значит True. Я правильно поняла?{/post}{/quote}Общий формат вам возвращает значение 39475 вместо 28.01.2008. Откуда функция IsDate, получив значение 39475, должна проверить, что его можно перевести в дату? «1» в общем формате тоже переводится в дату 01.01.1900. По Вашей логике IsDate всегда бы возвращала True, кроме отрицательных выражений |
|
{quote}{login=}{date=29.01.2008 06:55}{thema=Re: }{post}Общий формат вам возвращает значение 39475 вместо 28.01.2008. Откуда функция IsDate, получив значение 39475, должна проверить, что его можно перевести в дату? «1» в общем формате тоже переводится в дату 01.01.1900. По Вашей логике IsDate всегда бы возвращала True, кроме отрицательных выражений Дело в том, что я не знаю в каком столбце у меня будет дата изначально. Данные выгружаются в Excel из программы и может получиться разное количество столбцов (так вот криво работают вместе эта программа и Excel). А я пишу макрос, который переписывает нужные данные в соответствующие поля, а остальные затирает. Так вот, мне надо узнать, если в столбце сожержится дата, то переписать ее в столбец с датой. Впринципе можно как-то маску использовать, можете подсказать функцию проверки на сооветствие данных ячейки конкретной маске??? |
|
А столбцы/строки имеют заголовки? Можно искать заголовок, затем смещаться к нужной строке/столбцу. |
|
{quote}{login=Лузер}{date=30.01.2008 11:22}{thema=}{post}А столбцы/строки имеют заголовки? Можно искать заголовок, затем смещаться к нужной строке/столбцу. |
|
{quote}{login=Sonia}{date=30.01.2008 09:39} может это подойдёт |
|
{quote}{login=Sonia}{date=30.01.2008 11:44}{thema=Re: }{post}{quote}{login=Лузер}{date=30.01.2008 11:22}{thema=}{post}А столбцы/строки имеют заголовки? Можно искать заголовок, затем смещаться к нужной строке/столбцу. |
|
{quote}{login=Лузер}{date=30.01.2008 01:26}{login=Лузер}{post}Форма екселевская, в том же файле? Форма на том же листе. Выкладываю пример. |
|
{quote}{login=Sonia}{date=30.01.2008 02:10}{thema=Re: Re: Re: }{post}{quote}{login=Лузер}{date=30.01.2008 01:26}{login=Лузер}{post}Форма екселевская, в том же файле? Форма на том же листе. Выкладываю пример.{/post}{/quote} А где пример? Почему то не подцепился… |
|
Ой, сорри, подцепился. Макрос там же. |
|
Исправьте кусок кода на то что приведено ниже k = 20 ‘ Начало со столбца T ‘Worksheets(«Лист1»).Cells(I, k).Value = Empty k = k + 1 Loop Until Worksheets(«Лист1»).Cells(I, k).Value = «» |
|
Насколько я понял задача заключается в следующем Вопрос Последняя значащая ячейка в строке обязательно дата? |
|
{quote}{login=ДЛ}{date=30.01.2008 03:53}{thema=}{post}Исправьте кусок кода на то что приведено ниже Почему маленькое??? И почему в некоторых строчках в Cells I и k поменяны местами?? Да, последняя значащая ячейка обязательно дата. Кроме нее есть в строке еще дата (2 столбец) — дата документа. |
|
{quote}{login=ДЛ} |
|
«dd.mm.yyyy» — это формат |
|
{quote}{login=Sonia}{date=30.01.2008 04:57}{thema=Re: }{post}{quote}{login=ДЛ}{date=30.01.2008 03:53}{thema=}{post}Исправьте кусок кода на то что приведено ниже Почему маленькое??? И почему в некоторых строчках в Cells I и k поменяны местами?? Да, последняя значащая ячейка обязательно дата. Кроме нее есть в строке еще дата (2 столбец) — дата документа.{/post}{/quote} Про cells(i,k) Worksheets(«Лист1»).Cells(I, k).Address Это адреса ячеек которые вы перебираете, думаю всё станет ясно. Но всё таки поробавпли заменить или нет? |
|
{quote} Worksheets(«Лист1»).Cells(I, k).Address Это адреса ячеек которые вы перебираете, думаю всё станет ясно. Но всё таки поробавпли заменить или нет? Да, заменила. Спасибо большое!!!! Все работает!! |
|
{quote}{login=}{date=31.01.2008 07:42}{thema=Re: Re:}{post} Хм…а я считала, что в Cells сначала указывается столбец, а потом строка…оказалось наоборот. Ладно, буду знать |
|
cross Пользователь Сообщений: 89 |
Решил что эта тема подходит к моему вопросу. |
Вы, видимо, хотите очистить ячейки? if MyCell=»» then MyCell.ClearContents ‘очистить содержимое, сохранить форматирование if MyCell=»» then MyCell.Clear ‘очистить содержимое и форматирование |
|
cross Пользователь Сообщений: 89 |
{quote}{login=Казанский}{date=24.01.2011 11:21}{thema=Cross}{post}Вы, видимо, хотите очистить ячейки? if MyCell=»» then MyCell.ClearContents ‘очистить содержимое, сохранить форматирование if MyCell=»» then MyCell.Clear ‘очистить содержимое и форматирование{/post}{/quote} |
Попробуйте — обработка выделенного диапазона, очистка пустых на вид ячеек, которые содержат «» как значение формулы либо полученные копированием-вставкой значения таких ячеек. Sub Cross() |
|
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
#30 24.01.2011 12:53:38 {quote}{login=Cross}{date=24.01.2011 11:12}{thema=}{post}Решил что эта тема подходит к моему вопросу. Вопрос- Как в екселе заменить пустоту «» на null? т.е. есть ячайки без данных но не пустые{/post}{/quote} |
Цикл For Each… Next в VBA Excel, его синтаксис и описание отдельных компонентов. Примеры использования цикла For Each… Next.
Цикл For Each… Next в VBA Excel предназначен для выполнения блока операторов по отношению к каждому элементу из группы элементов (диапазон, массив, коллекция). Этот замечательный цикл применяется, когда неизвестно количество элементов в группе и их индексация, в противном случае, более предпочтительным считается использование цикла For…Next.
For Each element In group [ statements ] [ Exit For ] [ statements ] Next [ element ] |
В квадратных скобках указаны необязательные атрибуты цикла For Each… Next.
Компоненты цикла For Each… Next
Компонент | Описание |
---|---|
element | Обязательный атрибут в операторе For Each, необязательный атрибут в операторе Next. Представляет из себя переменную, используемую для циклического прохода элементов группы (диапазон, массив, коллекция), которая предварительно должна быть объявлена с соответствующим типом данных*. |
group | Обязательный атрибут. Группа элементов (диапазон, массив, коллекция), по каждому элементу которой последовательно проходит цикл For Each… Next. |
statements | Необязательный** атрибут. Операторы вашего кода. |
Exit For | Необязательный атрибут. Оператор выхода из цикла до его окончания. |
*Если цикл For Each… Next используется в VBA Excel для прохождения элементов коллекции (объект Collection) или массива, тогда переменная element должна быть объявлена с типом данных Variant, иначе цикл работать не будет.
**Если не использовать в цикле свой код, смысл применения цикла теряется.
Примеры циклов For Each… Next
Цикл для диапазона ячеек
На активном листе рабочей книги Excel выделите диапазон ячеек и запустите на выполнение следующую процедуру:
Sub test1() Dim element As Range, a As String a = «Данные, полученные с помощью цикла For Each… Next:» For Each element In Selection a = a & vbNewLine & «Ячейка « & element.Address & _ » содержит значение: « & CStr(element.Value) Next MsgBox a End Sub |
Информационное окно MsgBox выведет адреса выделенных ячеек и их содержимое, если оно есть. Если будет выбрано много ячеек, то полностью информация по всем ячейкам выведена не будет, так как максимальная длина параметра Prompt функции MsgBox составляет примерно 1024 знака.
Цикл для коллекции листов
Скопируйте следующую процедуру VBA в стандартный модуль книги Excel:
Sub test2() Dim element As Worksheet, a As String a = «Список листов, содержащихся в этой книге:» For Each element In Worksheets a = a & vbNewLine & element.Index _ & «) « & element.Name Next MsgBox a End Sub |
Информационное окно MsgBox выведет список наименований всех листов рабочей книги Excel по порядковому номеру их ярлычков, соответствующих их индексам.
Цикл для массива
Присвоим массиву список наименований животных и в цикле For Each… Next запишем их в переменную a. Информационное окно MsgBox выведет список наименований животных из переменной a.
Sub test3() Dim element As Variant, a As String, group As Variant group = Array(«бегемот», «слон», «кенгуру», «тигр», «мышь») ‘или можно присвоить массиву значения диапазона ячеек ‘рабочего листа, например, выбранного: group = Selection a = «Массив содержит следующие значения:» & vbNewLine For Each element In group a = a & vbNewLine & element Next MsgBox a End Sub |
Повторим ту же процедуру VBA, но всем элементам массива в цикле For Each… Next присвоим значение «Попугай». Информационное окно MsgBox выведет список наименований животных, состоящий только из попугаев, что доказывает возможность редактирования значений элементов массива в цикле For Each… Next.
Sub test4() Dim element As Variant, a As String, group As Variant group = Array(«бегемот», «слон», «кенгуру», «тигр», «мышь») ‘или можно присвоить массиву значения диапазона ячеек ‘рабочего листа, например, выделенного: group = Selection a = «Массив содержит следующие значения:» & vbNewLine For Each element In group element = «Попугай» a = a & vbNewLine & element Next MsgBox a End Sub |
Этот код, как и все остальные в этой статье, тестировался в Excel 2016.
Цикл для коллекции подкаталогов и выход из цикла
В этом примере мы будем добавлять в переменную a названия подкаталогов на диске C вашего компьютера. Когда цикл дойдет до папки Program Files, он добавит в переменную a ее название и сообщение: «Хватит, дальше читать не буду! С уважением, Ваш цикл For Each… Next.».
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Sub test5() Dim FSO As Object, myFolders As Object, myFolder As Object, a As String ‘Создаем новый FileSystemObject и присваиваем его переменной «FSO» Set FSO = CreateObject(«Scripting.FileSystemObject») ‘Извлекаем список подкаталогов на диске «C» и присваиваем ‘его переменной «myFolders» Set myFolders = FSO.GetFolder(«C:») a = «Папки на диске C:» & vbNewLine ‘Проходим циклом по списку подкаталогов и добавляем в переменную «a« ‘их имена, дойдя до папки «Program Files«, выходим из цикла For Each myFolder In myFolders.SubFolders a = a & vbNewLine & myFolder.Name If myFolder.Name = «Program Files» Then a = a & vbNewLine & vbNewLine & «Хватит, дальше читать не буду!» _ & vbNewLine & vbNewLine & «С уважением,» & vbNewLine & _ «Ваш цикл For Each... Next.« Exit For End If Next Set FSO = Nothing MsgBox a End Sub |
Информационное окно MsgBox выведет список наименований подкаталогов на диске C вашего компьютера до папки Program Files включительно и сообщение цикла о прекращении своей работы.
В результате работы программы будут выведены не только наименования подкаталогов, видимых при переходе в проводнике к диску C, но и скрытые и служебные папки. Для просмотра списка всех подкаталогов на диске C, закомментируйте участок кода от If до End If включительно и запустите выполнение процедуры в редакторе VBA Excel.
← →
gsvserg
(2003-08-07 18:49)
[0]
Нужно в зависимости от длины поля в таблице, которая копируется в Excel, менять column.width в Excel
Что-то типа
for i:=0 to 25 do
if a>b then
worksheet.columns[i].width:=…
← →
malamba
(2003-08-07 19:10)
[1]
Что за таблица? И что за длина поля?
← →
gsvserg
(2003-08-07 19:23)
[2]
Таблица AdoQuery, в ней несколько полей. Все поля строковые. Перекидываю ее в Excel. Вычисляю максимальную длину строки в каждом поле, после нужно установить ширину колонок в Excel, чтобы было видно всю строку.
← →
Dred2k
(2003-08-07 20:16)
[3]
Вот тебе кусок кода.
for j := Low(tmpColNum) to High(tmpColNum) do begin
App.Columns[j + 1].ColumnWidth := FDBGrid.Columns[tmpColNum[j]].Width / 6;
App.Cells[1, j + 1].Value := FDBGrid.Columns[tmpColNum[j]].Title.Caption;
App.Cells[1, j + 1].HorizontalAlignment := DefExcelAlignment[FDBGrid.Columns[tmpColNum[j]].Title.Alignment];
App.Cells[1, j + 1].Font.Bold := True;
App.Cells[1, j + 1].Interior.Color := RGB(192, 192, 192);
App.Cells[1, j + 1].Borders.Color := RGB(0, 0, 0);
(
я поленился, наверное ;)
Вот тебе кусок кода.
for j := Low(tmpColNum) to High(tmpColNum) do begin
App.Columns[j + 1].ColumnWidth := FDBGrid.Columns[tmpColNum[j]].Width / 6;
App.Cells[1, j + 1].Value := FDBGrid.Columns[tmpColNum[j]].Title.Caption;
App.Cells[1, j + 1].HorizontalAlignment := DefExcelAlignment[FDBGrid.Columns[tmpColNum[j]].Title.Alignment];
App.Cells[1, j + 1].Font.Bold := True;
App.Cells[1, j + 1].Interior.Color := RGB(192, 192, 192);
App.Cells[1, j + 1].Borders.Color := RGB(0, 0, 0);
end;
tmpColNum - массив, содержащий номера выводимых мной колоной DBGrid-а. Ширина колонок в Excel выставляется соразмерно ширине колонок грида. Коэффициент соразмерности можно при желании сформулировать и в общем виде (я поленился, наверное ;)).
Кроме ширины выставляются свойства первой строки на листе (заголовок). Лист - текущий.
← →
Alex Bredin
(2003-08-08 10:44)
[4]
я тож пытался так сделать, но потом сообразил, что Excel сделает это лучше))
//пробуем применить автоформат…
Range1:=Sheet.Range[Sheet.Cells[StartR, StartC],Sheet.Cells[StartR + Rows, StartC + Cols — 1]];
Range1.AutoFormat(XLFormat,True,True,True,True,True,True);
XLFormat-цел.число(я беру 1)-посмотри
← →
Alex Bredin
(2003-08-08 10:50)
[5]
а вообще над Range можно извращаться как хочешь, только перед этим включи запись макроса, а потом перенеси его текст в Delphi
← →
gsvserg
(2003-08-08 11:43)
[6]
Alex Bredin © (08.08.03 10:44)
Спасибо, попробовал твой метод — работает.
Только в Excel появляются линии под первой и предпоследней строками. Я так понял что это из-за xlFormat=1.
Всем спасибо.
← →
Alex Bredin
(2003-08-08 14:53)
[7]
понял ты неправильно.
Цитата из экселевского макроса:
Selection.AutoFormat Format:=xlRangeAutoFormatSimple, Number:=True, Font _
:=True, Alignment:=True, Border:=True, Pattern:=True, Width:=True
думаю все ясно и так
← →
gsvserg
(2003-08-08 15:35)
[8]
Range1.AutoFormat(1,True,True,true,false,True,True);
thanxxxx
Содержание
- Как сделать перебор диапазона ячеек
- Как макрос работает
- Код макроса
- Как этот код работает
- Как использовать
- Excel функция перебора значений
- Excel функция перебора значений
- Использование операторов For Each. Next
- Проход по диапазону ячеек
- Выход из цикла For Each. Next до его завершения
- Использование цикла For Each. Next для итерации в классе VBA
- См. также
- Поддержка и обратная связь
Как сделать перебор диапазона ячеек
Что делает макрос: Этот базовый макрос показывает вам простой способ сделать перебор диапазона ячеек по одной и выполнить какое-либо действие.
Как макрос работает
В этом макросе используются две переменные объекта Range. Одна из переменных отражает объем данных, с которым мы работаем, в то время как другая используется для хранения каждой отдельной клетки в диапазоне. Потом мы используем оператор For Each, чтобы активировать или принести каждую ячейку в фокусе целевого диапазона.
Код макроса
Как этот код работает
- Макрос объявляет две переменные объекта Range. Одна из них, называется MyRange, держит весь целевой диапазон. Другая, называемый MyCell, держит каждую ячейку в диапазоне, так как макрос проводит цикл через них один за другим.
- На шаге 2 мы заполняем переменную MyRange с целевым диапазоном. В этом примере мы используем Range («D6:D17»). Если ваш целевой диапазон является именованным, можно просто ввести его название — Range («MyNamedRange»).
- На этом этапе макрос начинает цикл через каждую ячейку в целевом диапазоне, активизируя ее.
- После того, как ячейка активируется, можно с ней что-то сделать. Это «что-то» на самом деле зависит от поставленной задачи. Вы можете удалять строки, когда активная ячейка имеет определенное значение, или вы можете вставить строку между каждой активной ячейки. В этом примере макрос меняется шрифт полужирный для любого элемента, который имеет значение больше, чем 3000.
- На шаге 5, макрос возвращается назад, чтобы получить следующую ячейку. После активации всех ячеек в целевом диапазоне, макрос заканчивает работу.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11 на клавиатуре.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.
Источник
Excel функция перебора значений
«=ЕСЛИ(R16=0;R6;ЕСЛИ(R6=0;R7;ЕСЛИ(R7=0;R8;R16)))» — сама формула
Задумка такова. Ячейка R16 пустая, R6-R8 с данными. Необходимо чтоб в столбце D, в любой ячейке отображалась ячейка R16, но только в том случае если в ней есть запись. В противном случае отображается R6. Если и в R6 нет записи, то R7 и так далее.
На данный момент отображается только ячейка R6, если её сделать пустой, то R7 не отобразится.
Моя формула располагается только в ячейке D11, в прилагаемом файле.
Делаю график дежурств, чтоб он автоматически расставлял от 3-х до 6-ти фамилий по всему месяцу в определённом порядке.
«=ЕСЛИ(R16=0;R6;ЕСЛИ(R6=0;R7;ЕСЛИ(R7=0;R8;R16)))» — сама формула
Задумка такова. Ячейка R16 пустая, R6-R8 с данными. Необходимо чтоб в столбце D, в любой ячейке отображалась ячейка R16, но только в том случае если в ней есть запись. В противном случае отображается R6. Если и в R6 нет записи, то R7 и так далее.
На данный момент отображается только ячейка R6, если её сделать пустой, то R7 не отобразится.
Моя формула располагается только в ячейке D11, в прилагаемом файле.
Делаю график дежурств, чтоб он автоматически расставлял от 3-х до 6-ти фамилий по всему месяцу в определённом порядке. dog144
Сообщение «=ЕСЛИ(R16=0;R6;ЕСЛИ(R6=0;R7;ЕСЛИ(R7=0;R8;R16)))» — сама формула
Задумка такова. Ячейка R16 пустая, R6-R8 с данными. Необходимо чтоб в столбце D, в любой ячейке отображалась ячейка R16, но только в том случае если в ней есть запись. В противном случае отображается R6. Если и в R6 нет записи, то R7 и так далее.
На данный момент отображается только ячейка R6, если её сделать пустой, то R7 не отобразится.
Моя формула располагается только в ячейке D11, в прилагаемом файле.
Делаю график дежурств, чтоб он автоматически расставлял от 3-х до 6-ти фамилий по всему месяцу в определённом порядке. Автор — dog144
Дата добавления — 14.09.2014 в 18:08
Источник
Excel функция перебора значений
Добрый день ! Подскажите если знаете. )
Как сделать в excel перебор чисел с определенным шагом. Скажем хочу задать excel найти из диапазона цифр (от 587,01 до 591,99 с шагом 0,01) число при умножении которого на число из диапазона (от 3170,01 до 3200,99 с шагом 0,01) получим результат 1886000. Важно что бы все числа были точными до сотых без применения округлений. Т.е числа в которых после запятой встречаются цифры дальше сотых неприемлемы но и округления применять нельзя.
Заранее благодарен за ответ !
Добрый день ! Подскажите если знаете. )
Как сделать в excel перебор чисел с определенным шагом. Скажем хочу задать excel найти из диапазона цифр (от 587,01 до 591,99 с шагом 0,01) число при умножении которого на число из диапазона (от 3170,01 до 3200,99 с шагом 0,01) получим результат 1886000. Важно что бы все числа были точными до сотых без применения округлений. Т.е числа в которых после запятой встречаются цифры дальше сотых неприемлемы но и округления применять нельзя.
Заранее благодарен за ответ ! Rafting
Сообщение Добрый день ! Подскажите если знаете. )
Как сделать в excel перебор чисел с определенным шагом. Скажем хочу задать excel найти из диапазона цифр (от 587,01 до 591,99 с шагом 0,01) число при умножении которого на число из диапазона (от 3170,01 до 3200,99 с шагом 0,01) получим результат 1886000. Важно что бы все числа были точными до сотых без применения округлений. Т.е числа в которых после запятой встречаются цифры дальше сотых неприемлемы но и округления применять нельзя.
Заранее благодарен за ответ ! Автор — Rafting
Дата добавления — 10.04.2017 в 15:08
sboy | Дата: Понедельник, 10.04.2017, 15:52 | Сообщение № 2 | ||||||||||||||||||||||||||||||||||
|