Excel:使用条件秩或If语句索引/匹配

Excel:使用条件秩或If语句索引/匹配,excel,excel-formula,Excel,Excel Formula,我有一种情况,我已经为索引/匹配建立了一个公式,但我想基本上说“如果形状存在,请选择程序一(第一列)。否则,可以使用非程序。” 目前,它将选择先到的标准,这是有道理的。但是,如果存在一个程序,我希望它选择该行。下面的示例将F3和G3分别返回为“三角形”和“星形”。它应根据现有程序返回“星”和“方” 表1中A-E列为用户输入。F列和G列使用下面的公式自动生成 表2中,所有列都是要索引和匹配的锁定参数。如果没有匹配项,则应显示“无形状存在” =IFERROR(索引($M$2:$M$4,匹配(1,索引

我有一种情况,我已经为索引/匹配建立了一个公式,但我想基本上说“如果形状存在,请选择程序一(第一列)。否则,可以使用非程序。”

目前,它将选择先到的标准,这是有道理的。但是,如果存在一个程序,我希望它选择该行。下面的示例将F3和G3分别返回为“三角形”和“星形”。它应根据现有程序返回“星”和“方”

表1中A-E列为用户输入。F列和G列使用下面的公式自动生成

表2中,所有列都是要索引和匹配的锁定参数。如果没有匹配项,则应显示“无形状存在”

=IFERROR(索引($M$2:$M$4,匹配(1,索引($J$2:$J$4=$A2)*($K$2:$K$4=$B2)*($L$2:$L$4=$C2)*($O$2:$O$4=$D2)*($Q$2:$Q$4=$E2),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"))
(代码><代码><代码><<代码><<代码>>=俄罗斯联邦铁路(索引)(M$2$2$I$2$2$I$4$4$4$4$2$J$4=$A2)*($K$2$K$2$K$2$K$4$4$2$K$4$2:$2$2:$2$2$2$2$2$4$4$$$$4$4$4$4=2)*(($2$2$$$$$$$$$$$4$2:$4$4$2:$4$4=2:$4=2:$2:$4$2$4$4$4$4=2)*($2)*(($2$2$2$K$2::$2$K$K$K$K$K$K$K$4$4$4$4$4$4$4$4$4$4$4$4$4$4$4$4)、0),“不存在形状”)) 一览无余:


1.索引(1,索引((($I$2$2$2$2$2$I$2$I$2$I$2$I$4$4$4=$A2)($K$2$K$2$K$4$4$4$4=$B2)($L$2$2$4$4$2$2$2$2$2$2$2$2$2$4$4$4=$4=$2.2.2)(2$K$K$K$K$4$4$4$4$4$4$4$4=$B2)(2)(2)(2)(2$2$2$2$2$2$2$2$2$2$4$4$4$4$4$4$4$4$4$4$4$4$4$4$4$4$4$4=2)(2)(2)(2)(2$4$4$4$4$4$4$4$4$2)(2)(2)(2)(2)(2,“不存在形状”)

这应该可以为您做到:

=IFERROR(索引(M:M,MODE.MULT)(如果(
($J$2:$J$4=$A2)*($K$2:$K$4=$B2)*($L$2:$L$4=$C2)*($O$2:$O$4=$D2)*($Q$2:$Q$4=$E2)
*如果($I$2:$I$4=“程序”、{1,1,1}、{1,1,0})、行($M$2:$M$4)、假)),“没有形状存在”)

<> P>为了便于维护,我在公式栏中使用ALT输入,并将你的主要条件保持在中间,就像在图像中一样。然后你可以看到,视需要处理它,并将其余部分保留在它周围

它花费你的1/0秒,然后重复“程序”行比重复非程序行多。 然后使用MODE.MULT使用最常出现的行索引。如果没有程序,它将只使用第一个符合条件的非程序索引

有任何问题,请问


看看把($I$2:$I$4=“Program”)投入到公式构造的某个地方吧?如果我这样做,它只会看到这个。我想让它对“程序”进行优先排序,但如果没有“程序”,那么就使用它能找到的任何东西。看看我给出的答案。它是作为一个有条件的程序来处理这个问题的……我不喜欢的是现在必须两次保持这个等式。如果有更好的方法,请告诉我这对你有帮助吗?