Excel,更有效的多IF AND公式

Excel,更有效的多IF AND公式,excel,if-statement,Excel,If Statement,我正在制作的电子表格如下所示: 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

我正在制作的电子表格如下所示:

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    
在标题索引下,Diff,Exc,Sym,Sec,Result is all data,在“符合标准”列中,我有一个公式,用于检查之前的标题是否在下面较小表格的最大和最小限制范围内,如果他们这样做,则发布结果,如果他们不都在最大和最小界限内,则保留为空。我用这个公式做到了:

=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(和(A3$C$24,B3$C$25,C3$C$26,D3$C$27,E3$C$28),F3,“)
复制了“符合条件”列。对于我希望它实现的目标来说,它工作得非常好,但是随着这个电子表格的增长,我添加了更多的列,它似乎会非常低效,并且容易出现许多人为错误。有没有一种方法可以达到同样的结果,但使用更有效的公式

一张供参考的图片:

那么:

=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) 我会转换最小/最大布局,让它们与数据列对齐。 2) 插入另一张图纸以保存中间计算

这是第一张。。。

这是第二张

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

=IF(AND(Sheet1!B5<Sheet1!B$2,Sheet1!B5>Sheet1!B$3),1,0)
在表1中,单元格H5(及以下)包含

=PRODUCT(B5:F5)
=IF(Sheet2!G5=0,"",Sheet2!G5*G5)
它可以省略逻辑,您可以使工作表设置不显示0值

如果添加列(例如,在第1张图纸F列和g列之间插入列): -为图纸1上的新列添加最大值和最小值 -在图纸2中插入相同的列 -将公式从第2页的F列拖动到第2页的新列 -验证表2中“结果”列中的产品公式是否包含表2中的新列


此方法有助于准确确定导致您无法满足条件的原因。

尝试以下数组公式:

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

试试这样的方法:

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

=IF(乘积)(IF(ROW>TRANSPOSE(MIN),1,0),IF(ROWTRANSPOSE($C$27:$C$31),1,0),IF(A11:e11在这里重复这个技巧())你需要包括要检查的值才能工作。所以第一部分是A3=中位数(A3,B24,C24),第二部分是B3=中位数(B3,B$25,C$25),依此类推,正确的公式是:=IF(A3=中位数)(A3,B$24,C$24),B3=中位数(B3,B$25,$C$25),C3=中位数(C3,B$26,$C$26),D3=中位数(D3,B$27,$C$27),E3=中位数(E3,B$28,$C$28)),F3,“”)不确定礼节是不是用来编辑帖子的…谢谢你们抓住了错误的家伙。我更新了我的公式。在第三个公式中,没有必要在IF的最后一个标准中乘以()。简单的
=IF()(图2!G5=0,”,G5)
就足够了,因为它要么是0要么是1
=1
似乎是多余的,因为任何非零都被视为真的。太好了,这正是我想要的。你认为有没有一种方法可以解决原始问题,而不必将MAX和MIN标准保持在与数据表相同的顺序?例如,我最终将有几百列数据,但我只想对其中大约25%设置最大和最小限制。我尝试使用索引匹配或某种查找,但一直失败一个想法是将具有最大/最小值的列组合在一起。另一个想法是为75%设置虚假标准,例如,最小值=-1000000,最大值=+1000000,或任何限制将确保您不丢失数据。您也可以在Excel的数据选项卡中探索过滤器。过滤器为您选择符合标准的数据提供了灵活的方式。您可以避免设计和维护工作表公式。如果您使用大量数据,您也可以考虑使用数据库。选择SU。B基于标准的数据集就是它们的用途。答案很好,我希望有一种方法,使用某种查找或匹配函数,列不必按相同的顺序排列,但我想不出来。@user3524727我也尝试过使用INDEX/Match,但也无法使其工作。
=IF(PRODUCT(IF(ROW>TRANSPOSE(MIN),1,0),IF(ROW<TRANSPOSE(MAX),1,0))=1,RESULT,"")
=IF(PRODUCT(IF(A11:E11>TRANSPOSE($C$27:$C$31),1,0),IF(A11:E11<TRANSPOSE($B$27:$B$31),1,0))=1,F11,"")