我如何选择位于空单元格上方的单元格?我觉得这会是一件非常简单的事情,但自 2004 年以来我还没有做过任何 Excel。
这是一个简单的单列表单。
data1
data2
data3
data4
data5
data6
我希望它是一个函数并且它应该以数组的形式返回 data2、data4 和 data4。
答案1
杰里米 - 我认为你需要编写一个简单的宏函数来做到这一点:
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
请注意,此子程序仅适用于单列或单行。Josh
答案2
转到您想要显示结果的空白单元格,只需输入“=”,然后点击向上箭头。或者输入“=”,然后输入列字母和行号。例如,如果您想在单元格 B5 中显示结果,您可以单击 B5 单元格并输入“=B4”(不带引号),然后按 Enter。这将在您选择的单元格 B5 中显示单元格 B4 的结果。
只需转到您想要结果的位置并输入“=A2+A4+A6”这会将单元格的结果添加到您选择的单元格中。
答案3
此公式,数组用 control+shift+enter 输入
{=OFFSET(A1,(ISBLANK(A1:A9))*(ROW(A1:A9))-2,0)}
将返回此数组
={#REF!;#REF!;"data2";#REF!;#REF!;"data4";#REF!;"data5";#REF!}
根据您要用它做什么,您需要忽略 REF 错误并处理非错误。这也可能比这更容易。例如,如果“数据”是要求和的数字,则从 A2 开始
10
20
30
40
50
60
并且你想返回 110 (20+40+50),那么
{=SUM((ISBLANK(A2:A10)*(A1:A9)))}
仅当您的数据上方有一个空白单元格时此方法才有效。