我有一张有 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
(参数为:查找0
列E: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
使用此公式得到一个。您仍然可以使用此数组执行操作,例如VLOOKUP
或INDEX
,SUM
等。