A B C D E
1 s t t s t
2 9 8 7 7 0
求第一行为t,第二行不为空(或0)的最后一个数字。
(为单元格c2的值,即7)
本文以win7系统excel2018为例进行演示,具体步骤如下所示。
1、在计算机中启动excel系统打开需要编辑的目标文件。
2、输入数组公式即可,公式为=INDEX(2:2,MAX(IF($1:$1="t",IF(2:2<>0,COLUMN($1:$1),),)))。
3、按ctrl+shift+enter三键结束保存即可。
方法1:使用数组公式
=INDEX(2:2,MAX(IF($1:$1="t",IF(2:2<>0,COLUMN($1:$1),),)))
同时按下Ctrl+Shift+Enter结束输入。
公式解释:
在第2行,查找不为0的单元格,所在列,并且要满足第一行相应单元格为t
在所有符合条件的列中,找最大的列号。
然后返回第2行该列的单元格值。
注意,此数组公式,也可以改成:
=INDEX(2:2,MAX(IF(AND($1:$1="t",2:2<>0),COLUMN($1:$1),)))
原理一样。
方法2:使用普通公式
=LOOKUP(2,0/((1:1="t")*(2:2<>0)),2:2)
公式解释:
在第1行,查找t,并且需要同时满足相应第二行不为0
此时((1:1="t")*(2:2<>0))计算得出1
然后除0,得到0(不符合条件则得到非法值#DIV/0)
这样得到一系列值,构成一个数组
然后,在此数组查找数字2
(事实上,可以改为其他值,因为数组中只有0和非法值#DIV/0)
这样得到最后一列符合条件的单元格所在列号(符合数组中最后一个值为0的数字)
然后返回第2行此列单元格的值。