=MAX(IF(ISNUMBER(FIND(",",A1:INDEX(A:A,ROW()))),ROW(A1:INDEX(A:A,ROW())),))
MATCH 不是从上到下查找并返回第一个匹配项,而是使用 MAX 返回包含, 的单元格的最大行号。您可以使用 FIND 或 SEARCH。
如果将其包装在 INDEX 中,您将获得您的价值:
=INDEX(A:A,MAX(IF(ISNUMBER(FIND(",",A1:INDEX(A:A,ROW()))),ROW(A1:INDEX(A:A,ROW())),)))
可能需要使用ctrl+shift+enter 输入。我无法在旧版 Excel 中对其进行测试。
编辑以进一步解释其工作原理:
A1:INDEX(A:A,ROW()) 将被读取为单元格 A1 直到 A 列中的当前行。因此,如果您位于第 10 行,它将等于 A1:A10。
将该范围包装在 FIND 中会返回您尝试查找的字符的位置。
如果在单元格中未找到给定字符,则返回错误 #N/A。
因此,如果在这种情况下,第 1 行和第 9 行包含 ,,它会返回命中的数字数组和非命中的错误,例如 {2,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,6,#N/A}
将其包装在ISNUMBER 中会将非错误更改为TRUE,将错误更改为FALSE。
IF 采用该数组,如果是 TRUE(一个数字),它返回行号(使用相同的索引范围)。
然后MAX 返回该数组的最大行号。
除了FIND,您还可以使用SEARCH。 FIND 区分大小写,而 SEARCH 不区分大小写,而且它们的操作方式相同)。