选择空单元格上方单元格的值

选择空单元格上方单元格的值

我如何选择位于空单元格上方的单元格?我觉得这会是一件非常简单的事情,但自 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)))}

仅当您的数据上方有一个空白单元格时此方法才有效。

相关内容