Excel 公式获取一行中倒数第二个值

Excel 公式获取一行中倒数第二个值

假设我在 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)

替换来源COUNTAhttp://excel.tips.net/Pages/T002996_Counting_NonBlank_Cells.html

与上述相同的警告。

相关内容