2016-10-17 2 views
0

Ich versuche einen Weg zu finden, ein INDEX MATCH auf mehrere Kriterien zu tun, aber ich habe nicht viel Glück.Excel Formula INDEX MATCH mehrere Suchkriterien

Ich habe 3 Texteinträge, die ich die „schädlichen“ Tag, kennzeichnen möchten, die „c001“ sind, „c002‚und‘c003“ .. sie werden wahrscheinlich nicht in einer sortierten Liste sein .

=IFERROR(IF(INDEX(F9:F34,MATCH("*C001*",$B$9:$B$34,0)),"Harmful",""),"") 

nun diese oben funktioniert perfekt, aber jede Kombination mit verschachtelten IF-Anweisungen und IF (OR Formeln für mich nicht funktionieren!

Beachten Sie, dass ich Wildcards verwende, da diese Codes sind wahrscheinlich Teil zu bilden, eine längere Textzeichenfolge.

Jede Beratung/Beratung sehr geschätzt wird.

Mit freundlichen Grüßen.

Antwort

1

Wenn Sie es in einer Formel zu tun haben wollen, versuchen Sie diesen: -

=IF(SUMPRODUCT(ISNUMBER(FIND({"C001","C002","C003"},B9:B34))*ISNUMBER(F9:F34)),"Harmful","") 

Eigentlich dies nicht tun, ganz gleich wie INDEX/MATCH des OP, weil eine Null in F9: F34 in der Die obige Formel würde ISNUMBER = TRUE ergeben und könnte sie als schädlich kennzeichnen, während eine Null in der ursprünglichen Formel nicht möglich wäre.

Alternative: -

=IF(SUMPRODUCT(ISNUMBER(FIND({"C001","C002","C003"},B9:B34))*N(+F9:F34)),"Harmful","") 

Ich wollte hinzufügen, dass der Grund, wenn die verschachtelten und OR ist nicht mit OP-Formel funktioniert, ist, dass, wenn das Spiel der Ausführung der Formel zum ersten Mal nicht direkt auf die geht leere Zeichenfolge "" in der IFERROR-Anweisung, damit keine anderen Bedingungen ausgewertet werden. Du müsstest sie so etwas zu trennen: -

=IF(IFERROR(INDEX(F9:F34,MATCH("*C001*",$B$9:$B$34,0)),0)+IFERROR(INDEX(F9:F34,MATCH("*C002*",$B$9:$B$34,0)),0)+IFERROR(INDEX(F9:F34,MATCH("*C003*",$B$9:$B$34,0)),0),"Harmful","") 
+0

Das funktioniert sehr gut aber es ist nicht, wie ich die Absicht hat, zu arbeiten, ich wurde mit der MATCH-Funktion, da alle drei von denen Zeilenköpfe sind und ich es nur wollen Als schädlich kennzeichnen, wenn in einer dieser Zeilen ein Wert vorhanden ist. Wenn das Sinn macht. – vividillusion

+0

Ich war mir nicht ganz sicher, was du meintest, meinst du, du willst nur sagen, dass es "schädlich" ist, wenn eine der Saiten gefunden wird, nicht zwei oder drei? Könnte ein Beispiel brauchen, um es mir zu erklären. –

+0

Oder hast du? Willst du Spalte F mit B paaren, dann G mit C oder so ähnlich? –

0

gibt es eine parti Aus diesem Grund muss es in Form einer INDEX-Funktion vorliegen oder muss alles in einer Spalte erfolgen? (Wenn ja, werde ich eine Schätzung in Ihrer Formel riskieren Sie wollen die INDEX-Funktion auf die gleiche Spalte B, die in Ihrem Match-Funktion ist? ... vielleicht ein Grund, dass es nicht funktioniert?)

Ein einfacher Lösung imho würde sein, einige neue Spalten neben Ihrer Liste hinzuzufügen, die nach der Existenz jedes Ihrer Suchzeichenketten überprüfen und eine Markierung von 1 aufzeichnen, die Existenz behauptet. Die FIND-Funktion ist wahrscheinlich, was Sie suchen, die einen Fehler zurückgibt, wenn es die Referenzzeichenfolge nicht finden kann.

d.h.

in Zelle H9 =IF(ISERROR(FIND("C001",F$9)),1,0)

in Zelle I9 =IF(ISERROR(FIND("C002",F$9)),1,0)

... etc

dann am Ende dieser Kontroll Spalten, die Werte summieren. Sie werden dann wissen, wenn die Summe größer als Null ist, dann wurde mindestens eine Ihrer schlechten Zeichenfolgen gefunden, und das ist ein schädlicher Wert für die Markierung.