matlabif函数多个条件并列_满足多个条件的最值如何求?不用VLOOKUP,只用这2个函数组合!…

  • Post author:
  • Post category:其他


工作中,你也许会遇到这种情况:在一组数据中,想把满足多个条件的最大值或者最小值查找出来。这里的多个条件,也说明条件参数不止一个,有多个!

下图中,我们要求出城市为“广州”,地区为“天河”的最大销售额,公式应该怎么写?

4aad8e540ce4216012a77c089a59843f.png

具体操作步骤如下:

1、选中I7单元格,在编辑栏中输入数组公式:

=MAX(IF(($C$2:$C$13=G7)*($D$2:$D$13=H7),$E$2:$E$13,0))

,按“

Ctrl+Shift+Enter

”组合键完成输入。

7af9dff339a4b377fac8e8396d0cb392.png

2、公式解析。


($C$2:$C$13=G7)*($D$2:$D$13=H7):

将C2:C13单元格区域的值与G7单元格的值进行比较,如果找到相等的值,返回TRUE,否则,返回FALSE。得到:{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE}。将D2:D13单元格区域的值与H7单元格的值进行比较,如果找到相等的值,返回TRUE,否则,返回FALSE。得到;{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE}。

将得到的两个数组相乘,TRUE*TRUE=1,FALSE*FALSE=0,最终得到:{1;0;1;0;1;0;1;0;1;0;1;0}。其中1表示同一行中同时满足两个条件城市为“广州”和地区为“天河”。

916118fffac90e7d6a3705a77718164d.png


=MAX(IF({1;0;1;0;1;0;1;0;1;0;1;0},$E$2:$E$13,0)):

把E2:E13代入公式中,得到:=MAX(IF({1;0;1;0;1;0;1;0;1;0;1;0},{1250;1360;1320;1380;2500;3200;1820;1600;3720;3330;1520;2200},0)),再由IF函数的原理,如果为TRUE或1,返回第2二参数对应的值,否则返回第三个参数对应的值。得到:

=MAX({1250;0;1320;0;2500;0;1820;0;3720;0;1520;0}),此时就相当于在这组数组中{1250;0;1320;0;2500;0;1820;0;3720;0;1520;0},求出里面的最大值,最后的结果就是:3720。

649501ea7609e9837eab9f0733f180d6.png

3、完整动图演示如下。

a534fe63df0bd8fec5cc7d4e1d39f6eb.gif

4、如果想要求城市为“广州”,地区为“天河”的销售额最小值,只需将I7单元格的公式改为:

=MIN(IF(($C$2:$C$13=G7)*($D$2:$D$13=H7),$E$2:$E$13))

。其余的操作步骤一样。

077dce6e8f4dc707999acd2641a6ddb9.png

好了,今天就跟大家分享到这里,如果你觉得文章有用,可以转发分享给你的朋友,希望多多支持,谢谢!