如何实现EXL函数中LOOKUP函数多条件查找返回符合条件的多个数值中的最小值?

如图=LOOKUP(1,0/(A1:A7="B")*(B1:B7="D"),C1:C7)满足条件的是2和5两个值,但是函数只返回最下面那行的值,我现在想得到符合条件的最小值,怎么写?请大佬指教

那你这属于函数使用错误啊。你这种写法lookup找的肯定是最后一个值啊,分辨不出大小的,把lookup换成minifs就好了,

=MINIFS(C1:C7,A1:A7,"B",B1:B7,"D")

如果没有minifs函数可以使用下面数组公式:

=MIN(IF((A1:A7="B")*(B1:B7="D"),C1:C7))

第二个数组公式,同时按下Ctrl+Shift+Enter结束输入。

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

使用数组公式,

=MIN((A1:A6="A")*(B1:B6="B")*(C1:C6)+((A1:A6<>"A")*1+(B1:B6<>"B")*1)*(C1:C6)*999)

不满足条件的数据会被放大,如果原来数据倍数差异巨大,可以适当增加公式里面的999的值:

第2个回答  2021-11-08

在E1中输入或复制粘贴下列公式

=MIN(FILTER(C1:C7,(A1:A7="B")*(B1:B7="D")))

EXCEL2021用上面的公式

也可用如下普通公式

=MINIFS(C:C,A:A,"B",B:B,"D")

数组公式

=MIN(IF((A1:A7="B")*(B1:B7="D"),C1:C7))

按三键CTRL+SHIFT+ENTER结束公式输入 

第3个回答  2021-11-08

一般这种要用 Minifs 或者 min +if 数组公式

强行 用Lookup也能搞定,就是麻烦点

=LOOKUP(1,0/((A2:A7="B")*(B2:B7="D")*(COUNTIFS(A2:A7,"B",B2:B7,"D",C2:C7,"<="&C2:C7)=1)),C2:C7)

追问

我的EXL版本低,用不了Minifs,公式太大5000个字符,还要下拉几百行,太慢,所以不想用数组.
COUNTIFS用的太秒了,刚试了一下,一下就成了.谢谢了
不过有一个地方不理解C2:C7,"<="&C2:C7表示什么意思?

追答

判断 符合条件 且 <=C 列数字 的个数 =1 的行

本回答被提问者采纳