如何获取 Excel 中数组中某个值的最后一次出现的引用?

如何获取 Excel 中数组中某个值的最后一次出现的引用?

因此,如果

A1:A5 = {3, 3, 4, 4, 5}

我可以将什么函数放入 B1 中以获取对 A4(包含最后一次出现的 4 的单元格)的引用?

答案1

我假设 A1:A5 按升序排序。如果是这种情况,您可以使用以下公式:

=ADDRESS(ROW(A1)-1+MATCH(4,A1:A5,1),COLUMN(A1))

这将产生输出 $A$4。

工作原理如下:

MATCH(4,A1:A5,1)查找 <= 4 的最大值的索引,假设 A1:A5 按升序排序。这实际上意味着它查找第一个值更大大于 4,并且仅返回该索引之前的索引。

ADDRESS(row,col)将行号和列号转换为单元格引用。对于列号,我仅使用列表的列:COLUMN(A1)。对于行号,我使用函数返回的索引MATCH作为列表开头的偏移量(ROW(A1)-1)。您可以省略ROW(A1)-1,在这种情况下它仍然可以工作,但是只要您的列表从第 1 行以外的某个位置开始,它就会失败。

请注意,要在其他地方使用此参考值,您需要使用:INDIRECT(B1)

答案2

您可以使用数组公式来查找行的最大值

{=INDEX(A1:A5,MAX((A1:A5=4)*(ROW(A1:A5))),1)}

按 control+shift+enter 键输入。MAX 部分将返回所有包含“4”的单元格中的最大行号。这可能就是您所需要的,但我已将其包装在指向单元格的 INDEX 函数中,以防您需要额外的步骤。

答案3

假设您的数组是根据列值的匹配运行的,我建议您反转列值,这样数组第 5 列中的值现在将位于第 1 列中,然后改用 min()。获取第一个匹配项总是比获取最后一个匹配项更容易。

答案4

有一个解释这里(搜索“F94”),但请注意,它并不漂亮!

相关内容