Excel-偏移到最后一个非空白单元格

时间:2020-05-02 11:53:37

标签: excel excel-formula

根据我的研究,当一堆单元格合并时,您只能引用合并单元格的第一行和第一列。例如。如果A1:A3被合并,那么我只能使用A1来访问数据,而A2和A3返回0。

现在让我们说我有一个B列,该B列具有一个基于A列中的值进行计算的公式。如果我向下拖动此公式,则B2和B3最终将使用0值,此时它们应该使用A1。

有效地,我要执行的操作是“如果(此行的)列A中的单元格为空,则使用最后一个向上的非空值”。

我知道这需要结合两个公式,但是我不知道如何创建它。首先,我可以使用Offset函数“上升”,但是这里最困难的部分是如何找到以前的非空白单元格?

我还尝试将OFFSET与COUNTA组合在一起(请参阅https://www.exceltip.com/other-qa-formulas/get-the-value-of-the-last-non-blank-cell-in-a-column-in-microsoft-excel.html),但是如果多次发生,则无法使用。

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用帮助器列:

enter image description here

在B2中写

=IF(NOT(ISBLANK(A2)),0,B1+1)

并在C2中编写

=OFFSET(A2,-B2,0)

编辑:实际上...没有助手列的解决方案甚至更加简单!用B2编写:

=IF(ISBLANK(A2),B1,A2)

enter image description here

答案 1 :(得分:1)

要避免使用帮助器列,可以使用seconds :: (Int,Int) -> (Int,Int,Int) -> Int seconds (d,mm) (h,m,s) | d > 31 || d < 1 || mm > 12 || mm < 1 = -1 | h > 24 || h < 0 || m > 59 || m < 0 || s > 59 || s < 0 = -1 | otherwise = (d + daysOffset mm) * 86400 + secondsOfDay h m s + INDEX函数:

AGGREGATE

enter image description here