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,"")