Excel,更有效的多个IF ANDS公式

我有一个电子表格,我看起来如下所示:

Index Diff Exc Sym Sec Result Criteria Met 3.42 -2.07 0.86 0.92 1.83 1.95 -0.38 -2.93 0.87 0.23 -2.01 0.09 -2.67 -1.84 0.87 -2.49 -3.48 1.32 -0.65 -0.98 0.46 0.98 -2.01 0.00 -0.73 -2.79 -1.07 -2.15 -1.44 -0.10 0.15 2.33 -0.46 -0.66 3.17 0.38 0.38 0.90 -3.68 -0.72 -1.01 -1.36 1.69 0.68 -1.12 -0.36 0.73 -1.34 -0.29 -1.19 -1.70 -0.56 -1.31 1.45 0.49 -0.45 -0.69 -0.56 -1.22 0.00 -0.49 2.94 8.38 2.21 6.25 4.96 1.74 -1.04 7.36 2.59 3.00 2.17 2.97 1.21 1.73 3.05 1.48 3.56 0.77 -1.10 1.86 0.60 1.18 1.07 -0.49 -0.89 -3.19 -1.78 -2.24 -4.26 -0.81 -1.17 -3.44 0.11 -1.22 3.66 0.36 0.52 0.92 -1.02 0.38 1.96 -1.40 -1.40 -0.90 3.01 -0.86 0.62 0.97 -0.50 -0.50 2.78 1.46 0.00 0.47 1.95 0.84 Max Min Index 2.00 -2.00 Diff 10.00 0.00 Exc 0.00 -10.00 Sym 10.00 -10.00 Sec 20.00 0.00 

在Index,Diff,Exc,Sym,Sec,Result是标题下的所有数据。在标准met列中,我有一个公式,用来检查以前的标题是否落在下面小表的最大和最小范围内,如果他们确实它发布的结果,如果他们都不落在最大和最小的边界,它留下空白。 我使用这个公式来做到这一点:

 =IF(AND(A3<$B$24,A3>$C$24,B3<$B$25,B3>$C$25,C3<$B$26,C3>$C$26,D3<$B$27,D3>$C$27,E3<$B$28,E3>$C$28),F3,"") 

复制标准符合列。 它对于我想要达到的目标来说工作得很好,但随着电子表格的增长,我添加了更多的列,看起来效率会非常低,并且容易出现很多人为错误。 有没有办法达到相同的结果,但通过使用更有效的公式?

一张图片以供参考:

在这里输入图像说明

试试这个数组公式:

 =IF(SUM((A3:E3<=TRANSPOSE($B$24:$B$28))*(A3:E3>= TRANSPOSE($C$24:$C$28)))=COLUMNS(A3:E3),F3,"") 

作为数组公式,当退出编辑模式时,必须用Ctrl-Shift-Enter确认。 如果正确完成,Excel将自动在公式周围放置一个数组公式。

![在这里输入图片描述

需要注意的是,要比较的列需要与最小/最大行的顺序相同。


另外,正如几乎所有人所说,如果Min Max被转换为列中的行,它将减轻需要使用CSE数组公式。 以下将起作用:

 =IF(SUMPRODUCT((A5:E5>=$A$3:$E$3)*(A5:E5<=$A$2:$E$2))=COLUMNS(A5:E5),F5,"") 

在这里输入图像说明

尝试这样的事情:

 =IF(PRODUCT(IF(ROW>TRANSPOSE(MIN),1,0),IF(ROW<TRANSPOSE(MAX),1,0))=1,RESULT,"") 

在这个例子中,A11:E11是F11中RESULT的一行数据,MAX和MIN条件分别是$ B $ 27:$ B $ 31和$ C $ 27:$ C $ 31。

 =IF(PRODUCT(IF(A11:E11>TRANSPOSE($C$27:$C$31),1,0),IF(A11:E11<TRANSPOSE($B$27:$B$31),1,0))=1,F11,"") 

inputexpression式作为数组公式 (CTRL-SHIFT-ENTER)。 确保对每行数据使用相对引用,并对MAX和MIN标准使用绝对引用。 然后复制/粘贴以评估其他行。 修改这个公式以适应额外的数据列可以通过扩展范围来完成。

如果您允许将保持MAX和MIN条件的范围转置为与数据相同的方向,则可以消除此解决scheme中的TRANSPOSEfunction,并且电子表格布局更清晰。

希望有所帮助

怎么样:

 =IF(AND(A3=MEDIAN(A3,B$24,C$24),B3=MEDIAN(B3,B$25,$C$25),C3=MEDIAN(C3,B$26,$C$26‌​),D3=MEDIAN(D3,B$27,$C$27),E3=MEDIAN(E3,B$28,$C$28)),F3,"") 

我也将标准表移动到一个单独的选项卡,以避免每次向数据表中添加新行时必须调整公式中最小/最大值的排列。

通常在Excel中,为了简化你的公式,你需要使你的布局更复杂一些。 没有写任何vba,我的方法是… 1)我将转置您的最小/最大布局,并让他们与数据列alignment。 2)插入另一张纸来保存中间计算。

这是Sheet1 … 在这里输入图像说明

这里是Sheet2 …

在这里输入图像说明

在Sheet2中,单元格B5包含一个典型的公式…

 =IF(AND(Sheet1!B5<Sheet1!B$2,Sheet1!B5>Sheet1!B$3),1,0) 

在Sheet2中,单元格G5(和下)包含…

 =PRODUCT(B5:F5) 

在Sheet1中,单元格H5(和下)包含…

 =IF(Sheet2!G5=0,"",Sheet2!G5*G5) 

它可以省略逻辑,并且可以使表单设置不显示0值。

如果添加列(例如,在Sheet1列F和G之间插入列): – 为Sheet1上的新列添加Max和Min值 – 在Sheet2上插入相同的列 – 将公式从Sheet2上的列F拖动到Sheet2上的新列 – validationSheet2上“Result”列中的Product公式包含Sheet2上的新列。

这种方法有助于确定是什么导致你不符合你的标准。