Excel:索引/匹配条件等级或If语句

时间:2017-01-03 18:02:51

标签: excel excel-formula

我有一种情况,我已经为INDEX / MATCH建立了一个公式,但是基本上要说"如果存在形状,请选择程序一(第一列)。否则可以使用非程序。"

目前,它会选择首先出现的标准,这是有道理的。但是,如果有,那么说,存在一个程序,我希望它选择那一行。以下示例将F3和G3返回为"三角形"并且"明星",恭敬地。 应该返回" star"和" square"根据现有的计划。

表1,A-E列是用户输入。列F和G使用下面的公式自动化。

表2,所有列都是锁定参数以进行索引和匹配。如果没有匹配,则应显示" No Shape Exists"。

=IFERROR(INDEX($M$2:$M$4,MATCH(1,INDEX(($J$2:$J$4=$A2)*($K$2:$K$4=$B2)*($L$2:$L$4=$C2)*($O$2:$O$4<=$D2)*($P$2:$P$4>=$D2)*($Q$2:$Q$4<=$E2)*($R$2:$R$4>=$E2),),0)),"No Shape Exists")

Here is my criteria. F and G columns auto-populate based on the formula.

Here is the list to index/match from

编辑:澄清如果没有程序存在,那么可以使用非程序。修正了公式中的拼写错误。

2 个答案:

答案 0 :(得分:0)

我能想出的唯一一件事是:

=IFERROR(INDEX($M$2:$M$4,MATCH(1,INDEX(($I$2:$I$4="Program")*($J$2:$J$4=$A2)*($K$2:$K$4=$B2)*($L$2:$L$4=$C2)*($O$2:$O$4<=$D2)*($P$2:$P$4>=$D2)*($Q$2:$Q$4<=$E2)*($R$2:$R$4>=$E2),),0)),IFERROR(INDEX($M$2:$M$4,MATCH(1,INDEX(($J$2:$J$4=$A2)*($K$2:$K$4=$B2)*($L$2:$L$4=$C2)*($O$2:$O$4<=$D2)*($P$2:$P$4>=$D2)*($Q$2:$Q$4<=$E2)*($R$2:$R$4>=$E2),),0)),"No Shape Exists"))

全部在一个视图中:

= IFERROR(INDEX($ M $ 2:$ M $ 4 MATCH(1,INDEX(($ I $ 2:$ I $ 4 =&#34;程序&#34)的($Ĵ$ 2:$Ĵ $ 4 = $ A2)($ķ$ 2:$ķ$ 4 = $ B2)($ L $ 2:$ L $ 4 = $ C2)($ø$ 2:$ø$ 4℃; = $ D2)($ P $ 2:$ P $ 4 GT; = $ D2)($ Q $ 2:$ Q $ 4℃; = $ E2)的($ R $ 2:$ R $ 4 &GT; = $ E2)),0)),IFERROR(INDEX($ M $ 2:$ M $ 4 MATCH(1,INDEX(($Ĵ$ 2:$Ĵ$ 4 = $ A2)($ķ $ 2:$ķ$ 4 = $ B2)($ L $ 2:$ L $ 4 = $ C2)($ø$ 2:$ø$ 4℃; = $ D2)($ P $ 2: $ P $ 4 GT; = $ D2)($ Q $ 2:$ Q $ 4℃; = $ E2)*($ R $ 2:$ R $ 4 GT; = $ E2)),0)),& #34;没有形状存在&#34;))

答案 1 :(得分:0)

这应该为你做到:

=IFERROR(INDEX(M:M, MODE.MULT(IF( ($J$2:$J$4=$A2)*($K$2:$K$4=$B2)*($L$2:$L$4=$C2)*($O$2:$O$4<=$D2)*($P$2:$P$4>=$D2)*($Q$2:$Q$4<=$E2)*($R$2:$R$4>=$E2) * IF($I$2:$I$4="Program", {1,1,1}, {1,1,0}), ROW($M$2:$M$4), FALSE))), "No shape exists")

为了便于维护,我在公式栏中使用Alt-Enter并将主条件保留在图像中间。然后你可以看到必要时对待并保持其余部分。

需要你的1/0秒,然后重复&#34;程序&#34;超过非程序行的行数。 然后使用MODE.MULT来使用最常出现的行索引。如果没有程序,它将只使用第一个合格的非程序索引。

有任何问题,请问......

enter image description here