Как я выбрал бы ячейку, которая является выше пустой ячейки? У меня есть чувство, что это будет чем-то супер простым, но я не сделал никакого Excel с 2004.
Вот простой лист отдельного столбца.
data1
data2
data3
data4
data5
data6
Я надеюсь, что это была бы функция, и это должно возвратить data2, data4 и data4 в своего рода массиве.
Jeremy - Я думаю, что необходимо было бы записать простую макро-функцию, чтобы сделать это:
Обратите внимание, что эта подпрограмма только работала бы над отдельными столбцами или строками. Josh
Public Sub FillBlanks()
Set myRange = Application.InputBox( _
prompt:="Select a range", Type:=8)
Dim prevCellValue
For Each c In myRange.Cells
If c.Value <> "" Then _
prevCellValue = c.Value _
Else: c.Value = prevCellValue
Next
End Sub
Перейдите к пустой ячейке, где Вы хотите свой результат, и просто вводите "=" и затем поражаете стрелку вверх. ИЛИ введите "=", затем вводят букву столбца, сопровождаемую номером строки. Например, если бы ячейка, требуется отобразить результат в ячейке B5, Вы нажали бы на ячейку B5, и тип "=B4" (без кавычек) затем нажимают Enter. Это дало бы Вам результат ячейки B4 в ячейке B5, который Вы выбрали.
просто пойдите туда, где Вы хотите свой результат и тип "=A2+A4+A6", Это добавит результаты ячеек в ячейку, которую Вы выбрали.
Эта формула, массив, вводимый с control+shift+enter
{=OFFSET(A1,(ISBLANK(A1:A9))*(ROW(A1:A9))-2,0)}
возвратит этот массив
={#REF!;#REF!;"data2";#REF!;#REF!;"data4";#REF!;"data5";#REF!}
В зависимости от того, что Вы хотите сделать с ним, необходимо будет проигнорировать КАСАТЕЛЬНО ошибок и обработать неошибки. Это также может быть легче, чем это. Если, например, "данные" являются числами, что Вы хотите суммировать, сказать запуск в A2
10
20
30
40
50
60
и Вы хотите возвратиться 110 (20+40+50), затем
{=SUM((ISBLANK(A2:A10)*(A1:A9)))}
Тот единственные работы, если у Вас есть пустая ячейка выше Ваших данных.