Excel多条件返回值

A列有P349字符15个,对应的在B列中可能全部有日期也可能某些没有日期,当全部有日期时返回最大值,只要有任何一个没日期则返回空。
A B
...
P349 2012-3-2
...
P349 2012-4-3
...
P349 2012-5-1
P349 2012-2-2
P349 2012-3-5
P349 2012-5-2
P349 2012-4-3
... ...

数组公式:
=IF(SUMPRODUCT((A:A="P349")*(B:B=""))>=1,"",TEXT(MAX((A:A="P349")*B:B),"yyyy-m-d"))
输入完毕后不要直接回车,按
Ctrl+Shift+Enter
结束。
实测有效,可自动判定列A中为P349的B列的值。
如为Excel 2003,请将公式改为:

=IF(SUMPRODUCT((A1:A1000="P349")*(B1:B1000=""))>=1,"",TEXT(MAX((A1:A1000="P349")*B1:B1000),"yyyy-m-d"))

同样Ctrl+Shift+Enter结束公式。
因为Excel 2003不支持整列数组。
看不明白或者怎样的可以追问……
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-03
=IF(MIN(IF(A1:A1000="P349",B1:B1000,10000))=0,"",TEXT(MAX(IF(A1:A1000="P349",B1:B1000,0)),"e-m-d"))
ctrl+shift+enter
三键结束本回答被提问者采纳
第2个回答  2012-05-03
=TEXT((IF(COUNTA(A1:A15)=COUNTA(B1:B15),MAX(B1:B15),"")),"yyyy-m-d")追问

应体现条件A=P349

追答

=TEXT((IF(COUNTIF(A1:A15,"P349")=COUNTA(B1:B15),MAX(B1:B15),"")),"yyyy-m-d")

第3个回答  2015-09-30
可选用以下两种方法(以两条件为例):
1、用LOOKUP函数配合有关条件实现。
示例公式:
=LOOKUP(0,0/((sheet2!A$1:A$100=A1)*(sheet2!B$1:B$100=B1)),sheet2!C$1:C$100) 该公式“在SHEET2中查找A列B列与本表A列B列对应相同的C列值”。
其中:LOOKUP函数返回向量或数组中的数值,其语法形式有向量和数组两种,本例使用了向量形式。
向量形式的语法是:
LOOKUP(lookup_value,lookup_vector,result_vector) 参数Lookup_value为函数在第一个向量中所要查找的数值,Lookup_vector和result_vector分别为第一向量查找区域和第二向量结果区域,它们是只包含一行或一列的区域。
2、用VLOOKUP函数与IF({1,0}配合实现。
示例公式:
=VLOOKUP(A1&B1,IF({1,0},SHEET2!A$1:A$100&SHEET2!B$1:B$100,SHEET2!C$1:C$100),2,)
其中:IF({1,0},SHEET2!A$1:A$100&SHEET2!B$1:B$100,SHEET2!C$1:C$100)建立一个包含两列数据的内在数组,第一列为A列与B列值同行合并结果,第二列为C列值。本回答被网友采纳
相似回答