假设我在 Excel 中有一排数据,如下所示:
[A] [B] [C] [D] [E] [F] [G] [H]
[1] Data 5 8 12 32 15 9 89
我想要一个能够返回值的公式9
。
然后,如果我向添加一个新值I1
,它应该更新以返回值89
,这将是新的倒数第二个值。
理想情况下,这应该适用于任意范围,而不仅仅是整行。
如果该方法可以从行尾返回任意偏移量(比如返回最后一项的第 5 个),则可以获得可选的加分。
答案1
这适用于文本和数字,并且不关心是否有空白单元格,即它将返回倒数第二个非空白单元格。它需要以数组形式输入,这意味着您在输入或粘贴后按 ctrl-shft-enter。调整最后一个参数以更改偏移量:
=INDEX(1:1,LARGE((1:1<>"")*(COLUMN(1:1)),2))
答案2
假设没有空单元格:
=索引(1:1,1,计数(1:1))
=INDEX(1:1,1,COUNTA(1:1)-1)
INDEX 通过指定以下方式返回一定范围内的特定值:
- 数组:任意范围或整行(1:1)
- row_num:范围内的行号(1)
- column_num:范围内的列号。这是棘手的部分。
在我的示例中,我使用 COUNT() 来计算行中有多少个数字条目,即 7。COUNTA() 还将包括您的第一个非数字行“数据”并返回 8,因此您必须减去 1。
请注意,如果任何单元格留空,此方法将不起作用。您可以放置一个破折号 (-) 来表示空条目并使用 COUNTA(),而不是留空单元格。
奖励:获得倒数第五个条目。简单:
=INDEX(1:1,1,COUNT(1:1)-3) 或 INDEX(1:1,1,COUNTA(1:1)-4)
答案3
这可能会让您接近您想要的结果 - 最后的负数会调整返回其值的单元格的偏移量。
=INDEX(A1:Z1,COUNTA(A1:Z1)-0)
这是一个数组公式,因此您必须按 CTRL + SHIFT + ENTER 才能输入
答案4
你应该能够做这样的事情:
=OFFSET(A1, 0, COUNTA(A1:I1) - 2)
注意:代码未经测试,可能会引发错误。此外,如果您想计算公式返回空的单元格:
=OFFSET(A1, 0, COLUMNS(A1:I1) - COUNTBLANK(A1:I1) - 2)
替换来源COUNTA
:http://excel.tips.net/Pages/T002996_Counting_NonBlank_Cells.html
与上述相同的警告。