excel如何搜索满足一定条件一组数据中的最后一个值?

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个回答  推荐于2019-02-12

    方法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行此列单元格的值。

第2个回答  2012-08-25
假设首行在A1:H1,第二行在A2:H2中,公式可为
=LOOKUP(2,0/((A1:H1="t")*(A2:H2<>0)),A2:H2)
第3个回答  2012-08-25
=INDEX(2:2,MAX(IF($1:$1="t",IF(2:2<>0,COLUMN($1:$1),),)))
数组公式,需以ctrl+shift+enter三键结束。
上述公式是经07版检测,可用。03版的话估计要把整行(1:1,2:2)换成具体的区域(a1:z1,a2:z2),因手头没有此版本,无法确定03版是否可行。本回答被提问者和网友采纳
第4个回答  2012-08-25
=IF(RIGHT(A1,1)="t",B2)
相似回答