在某一列中查找零值,并在上一行第五列中查找相应的值

在某一列中查找零值,并在上一行第五列中查找相应的值

我有一张有 5 列的表格。某个点之后的行将具有零值。我需要获取第 5 列上一行的值。
例如,第 4 行之后,所有值都变为零。然后我需要值 89 出现在此表格之外的某个指定单元格中。

Year    Amt1    Amt 2   Amt 3    Amt 5
2012         5       6      17      48
2013        15       0      72      83
2014        25      63       0      12
2015         0      56      75      89
   0         0       0       0       0
   0         0       0       0       0
   0         0       0       0       0

答案1

适合您寻找的公式如下:

=OFFSET(E2,MATCH(0,E:E,0)-3,0)

E2是第 5 列中的第一个值 (48)

OFFSET与位于列首的单元格一起向下移动MATCH(0,E:E,0)-3

MATCH(0,E:E,0)将返回可以找到第一次出现的行0(参数为:查找0E:E并用来0表示完全匹配)。

-3为了考虑标题,第一个单元格并向上移动一个单元格因为MATCH将返回的位置0,而不是它正上方单元格的位置。

最后一个参数OFFSET是范围应该移动多少列,因为我们已经在 E 列,所以在这方面没有移动。


编辑:由于该列Year是完美的零(第 5 列包含四舍五入为 1 的非常小的数字),您可以改用这个:

=OFFSET(E2,MATCH(0,A:A,0)-3,0)

了解 OFFSET

假设你使用以下公式:

=OFFSET(A1, 1, 1)

OFFSET将返回位于该单元格下方 1 行和后方 1 列的单元格A1,即单元格B2

类似地,=OFFSET(A1, 3, 1)将赋予单元格B4

实际上您可以拥有更多选项OFFSET,即结果范围的高度和宽度。

=OFFSET(A1, 1, 1, 2, 3)

OFFSET将返回位于单元格 下方 1 行和 1 列后的单元格A1,即单元格B2。然后,结果的高度将为 2,宽度为 3,这意味着它将返回范围B2:D3(如果您使用鼠标选择此范围,您会看到它将有 2 个单元格高和 3 个单元格宽)。但是,由于这是一个数组,因此您将#N/A使用此公式得到一个。您仍然可以使用此数组执行操作,例如VLOOKUPINDEXSUM等。

相关内容