求助大神,表格查找某列最后一个非零单元格?

请问表格如何查找 J列最后一个非零单元格,并返回对应的H列对应的单元格?图片所示,查找J列最后一个非零单元格,J10,返回H10的值

查找 J列最后一个非零单元格,并返回对应的H列对应的单元格?图片所示,查找J列最后一个非零单元格,J10,返回H10的值,方法如下:

在某一空单元格中,输入公式:=INDEX(A1:C9,MAX(FILTER((SMALL(IF(C1:C9>0,ROW(1:9),4^8),ROW(1:9))),(SMALL(IF(C1:C9>0,ROW(1:9),4^8),ROW(1:9))<4^8))),{1})回车查看结果。

注意,本例中,用到FILTER函数,需要高版本OFFICE。还有index+small+if+row的万能公式。

问题是按条件查询数据,核心是查找不等于0的最大行号。于是有下面的处理说明。条件处理公式如下:=MAX(FILTER((SMALL(IF(C1:C9>0,ROW(1:9),4^8),ROW(1:9)))。

其中,SMALL(IF(C1:C9>0,ROW(1:9),4^8),ROW(1:9)),是查找大于0的最大行号数组,分别是1,3,6,65536等。

过滤最大值行号,保留其余行号,FILTER((SMALL(IF(C1:C9>0,ROW(1:9),4^8),ROW(1:9))),(SMALL(IF(C1:C9>0,ROW(1:9),4^8),ROW(1:9))<4^8))),得到1,3,6。

再MAX一次,取得6,就是我们需要的行号。

最后,用index函数匹配正确结果。这有关本例的全部信息了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-11-26

公式=INDEX(H6:H11,MATCH(LOOKUP(1,0/(J6:J11<>0),J6:J11),J6:J11, ))

第2个回答  2023-11-28

不怕表格慢,就用这个:

=INDEX(H:H,SUMPRODUCT(MAX((J:J<>0)*ROW(J:J))))

否则就酌情减小 h列和j列对应的数据范围。

注意,公式的核心是取 非零值 ,那么只要单元格不是空白(计算时算0)或真的 0 ,其他都算的,比如你写了 “小结”它也会被认为是 “非零值”