Inhaltsverzeichnis
Sie versuchen, eine WENN-Anweisung mit Platzhaltertext zu erstellen, aber es schlägt jedes Mal fehl? Das Problem liegt nicht in Ihrer Formel, sondern in der Funktion selbst - Excel WENN unterstützt keine Platzhalterzeichen. Es gibt jedoch eine Möglichkeit, die Funktion für eine partielle Textübereinstimmung zu nutzen, und in diesem Lernprogramm erfahren Sie, wie.
Wenn Sie in Excel einen partiellen oder unscharfen Abgleich durchführen möchten, ist die naheliegendste Lösung die Verwendung von Platzhaltern. Aber was ist, wenn eine bestimmte Funktion, die Sie verwenden müssen, keine Platzhalterzeichen unterstützt? Leider ist Excel IF eine dieser Funktionen. Das ist besonders enttäuschend, wenn man bedenkt, dass andere "bedingte" Funktionen wie COUNTIF, SUMIF und AVERAGEIFS sehr gut mit Platzhaltern funktionieren.
Glücklicherweise ist dies kein Hindernis, das einen kreativen Excel-Benutzer aufhalten kann :) Durch die Kombination von IF mit anderen Funktionen können Sie die Auswertung einer Teilübereinstimmung erzwingen und eine schöne Alternative zu einer Excel IF-Jokerformel erhalten.
Warum Excel IF-Funktion mit Wildcard nicht funktioniert
In der Beispieltabelle unten soll geprüft werden, ob die IDs in der ersten Spalte den Buchstaben "A" enthalten. Wenn ja, wird in Spalte B "Ja" angezeigt, wenn nicht, wird "Nein" angezeigt.
Die Aufnahme von Platzhaltern in den logischen Test scheint eine einfache Lösung zu sein:
=IF(A2="*a*", "Ja", "Nein")
Aber leider funktioniert es nicht: Die Formel gibt für alle Zellen "Nein" zurück, auch für die, die "A" enthalten:
Warum schlägt eine IF-Anweisung mit Platzhaltern fehl? Allem Anschein nach erkennt Excel keine Platzhalter, die mit einem Gleichheitszeichen oder anderen logischen Operatoren verwendet werden. Wenn Sie sich die Liste der Funktionen, die Platzhalter unterstützen, genauer ansehen, werden Sie feststellen, dass deren Syntax davon ausgeht, dass ein Platzhaltertext direkt in einem Argument wie diesem erscheint:
=COUNTIF(A2:A10, "*a*")
Excel IF enthält unvollständigen Text
Da Sie nun wissen, warum eine IF-Formel mit Platzhaltern nicht funktioniert, wollen wir herausfinden, wie man sie zum Funktionieren bringt. Dazu betten wir einfach eine Funktion, die Platzhalter akzeptiert, in den logischen Test von IF ein, nämlich die COUNTIF-Funktion:
WENN(COUNTIF( Zelle , "* Text *"), value_if_true, value_if_false)Bei diesem Ansatz hat IF keine Probleme mit dem Verstehen von Platzhaltern und erkennt einwandfrei die Zellen, die entweder "A" oder "a" enthalten (da COUNTIF nicht zwischen Groß- und Kleinschreibung unterscheidet):
=IF(COUNTIF(A2, "*a*"), "Ja", "Nein")
Diese Formel wird auf B2 oder eine andere Zelle in Zeile 2 übertragen, und Sie können sie auf so viele Zellen wie nötig ziehen:
Diese Lösung kann auch verwendet werden, um Folgendes zu lokalisieren Zeichenketten mit einem bestimmten Muster Wenn Sie davon ausgehen, dass nur IDs, die aus zwei Gruppen von zwei durch einen Bindestrich getrennten Zeichen bestehen, gültig sind, können Sie die Platzhalterzeichenfolge "??-??" verwenden, um sie zu identifizieren:
=IF(COUNTIF(A2, "??-??"), "Gültig", "")
Wie diese Formel funktioniert:
Für den logischen Test von IF verwenden wir die Funktion COUNTIF, die die Anzahl der Zellen zählt, die mit der angegebenen Platzhalterzeichenfolge übereinstimmen. Da der Kriterienbereich eine einzelne Zelle (A2) ist, ist das Ergebnis immer 1 (Übereinstimmung gefunden) oder 0 (Übereinstimmung nicht gefunden). Da 1 gleich TRUE und 0 gleich FALSE ist, gibt die Formel "Gültig" (value_if_true) zurück, wenn die Anzahl 1 ist, und eine leere Zeichenfolge (value_if_false), wenn dieZählung ist 0.
IF ISNUMBER SEARCH Formel für Teiltreffer
Eine weitere Möglichkeit, Excel IF für eine partielle Textübereinstimmung zu nutzen, besteht darin, entweder die Funktion FIND oder SEARCH in den logischen Test einzubinden. Der Unterschied besteht darin, dass bei FIND die Groß- und Kleinschreibung beachtet wird, bei SEARCH hingegen nicht.
Je nachdem, ob Sie Klein- und Großbuchstaben als gleiche oder unterschiedliche Zeichen behandeln wollen, wird eine dieser Formeln gut funktionieren:
Groß- und Kleinschreibung wird nicht berücksichtigt Formel für partielle Übereinstimmung:
IF(ISNUMBER(SUCHE(" Text ", Zelle )), value_if_true, value_if_false)Groß- und Kleinschreibung beachten Formel für partielle Übereinstimmung:
IF(ISNUMBER(FIND(" Text ", Zelle )), value_if_true, value_if_false)Da beide Funktionen auf eine "Zelle enthält"-Übereinstimmung ausgelegt sind, sind Wildcards in diesem Fall nicht wirklich erforderlich.
Um zum Beispiel IDs zu erkennen, die "A" oder "a" enthalten, lautet die Formel:
=IF(ISNUMBER(SEARCH("A", A2)), "Ja", "Nein")
Um nur nach einem großen "A" zu suchen und das "a" zu ignorieren, lautet die Formel:
=IF(ISNUMBER(FIND("A", A2)), "Ja", "Nein")
In B6 in der folgenden Abbildung können Sie den Unterschied im Ergebnis sehen:
Wie diese Formel funktioniert:
Das Herzstück der Formel ist eine Kombination aus ISNUMBER und SEARCH (oder FIND):
ISNUMBER(SUCHE("A", A2))
Die Funktion SEARCH sucht nach dem angegebenen Text ("A" in diesem Beispiel) und gibt dessen Position innerhalb einer Zeichenkette in A2 zurück. Wird der Text nicht gefunden, wird ein #VALUE-Fehler zurückgegeben. Da sowohl SEARCH als auch FIND auf eine "Zelle enthält"-Übereinstimmung ausgelegt sind, sind Platzhalter in diesem Fall nicht wirklich erforderlich.
Die Funktion ISNUMBER wandelt eine Zahl in WAHR und jeden anderen Wert einschließlich Fehler in FALSCH um. Der logische Wert geht direkt in den logischen Test von WENN. In unserem Fall enthält A2 "A", also gibt ISNUMBER WAHR zurück:
IF(TRUE, "Ja", "Nein")
Als Ergebnis gibt IF den Wert zurück, der für den Parameter wert_wenn_true Argument, das "Ja" lautet.
Excel IF OR-Anweisung mit Platzhaltern
Wenn Sie Zellen identifizieren müssen, die einen der Platzhaltertexte enthalten, können Sie die klassische IF OR-Anweisung mit der oben beschriebenen COUNTIF- oder ISNUMBER SEARCH-Formel kombinieren.
Um zum Beispiel nach "aa" ODER "bb" in A2 zu suchen, wobei die Groß- und Kleinschreibung ignoriert wird, und um "Ja" zurückzugeben, wenn eine der beiden Formen gefunden wird, verwenden Sie eine der folgenden Formeln:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Ja", "")
oder
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Ja", "")
Die Addition von zwei COUNTIF-Funktionen funktioniert ebenfalls, wobei das Pluszeichen wie der Operator OR funktioniert:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Ja", "")
Anstatt Platzhalterzeichen in der Formel fest zu kodieren, können Sie sie auch in separate Zellen eingeben, z. B. D2 und F2, wie im folgenden Screenshot gezeigt. Beachten Sie, dass diese Zellbezüge mit dem $-Zeichen gesperrt sind, damit die Formel korrekt in die darunter liegenden Zellen kopiert wird:
=IF(OR(COUNTIF(A2, "*"&$D$2& "*"), COUNTIF(A2, "*"&$F$2& "*")), "Ja", "")
Die obigen Formeln funktionieren gut für 2 Teilübereinstimmungen, aber wenn Sie nach 3 oder mehr suchen, würden sie zu langwierig werden. In diesem Fall liegt es nahe, die Aufgabe anders anzugehen:
Übergeben Sie der Funktion SEARCH mehrere Teilzeichenfolgen in einer Array-Konstante, zählen Sie die zurückgegebenen Zahlen und prüfen Sie, ob das Ergebnis größer als Null ist (was bedeuten würde, dass mindestens eine der Teilzeichenfolgen gefunden wurde):
=IF(COUNT(SEARCH({"aa", "bb"}, A2))>0, "Ja", "")
Auf diese Weise erhalten Sie genau das gleiche Ergebnis mit einer kompakteren Formel:
Excel IF AND-Formel mit Platzhaltern
Wenn Sie prüfen wollen, ob eine Zelle zwei oder mehr verschiedene Teilzeichenfolgen enthält, ist es am einfachsten, die Funktion COUNTIFS mit Platzhaltern für den logischen Test zu verwenden.
Angenommen, Sie möchten Zellen in Spalte A finden, die sowohl "b" als auch "2" enthalten, dann verwenden Sie "*b*" und "*2*" für die Kriterien von COUNTIFS und A2 für den Kriterienbereich:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Ja", "")
Eine andere Möglichkeit ist die Verwendung der Formel IF AND zusammen mit ISNUMBER SEARCH:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Ja", "")
Obwohl wir in dieser Formel keine Platzhalterzeichen verwenden, funktioniert sie wie die Suche nach zwei Platzhalterzeichen ("*b*" und "*2*") in derselben Zelle.
Natürlich können Sie die Suchwerte auch in vordefinierte Zellen, in unserem Fall D2 und F2, eingeben und die Zellbezüge in die Formel eingeben:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Ja", "")
Wenn Sie es vorziehen, kompaktere Formeln zu verwenden, wo immer es möglich ist, dann gefällt Ihnen vielleicht der Ansatz mit den Array-Konstanten besser. Die Formel WENN ZAEHLEN SUCHEN ist sehr ähnlich wie im vorherigen Beispiel, aber da dieses Mal beide Teilstrings in A2 vorkommen müssen, prüfen wir, ob die Anzahl gleich 2 ist:
=IF(COUNT(SEARCH({"b", "2"}, A2))=2, "Ja", "")
Dies sind die wichtigsten Methoden für die Verwendung von Platzhaltern in der IF-Anweisung in Excel. Wenn Sie noch andere Lösungen kennen, freuen sich andere Benutzer sicherlich, wenn Sie Ihre Erfahrungen in den Kommentaren mitteilen. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!
Übungsheft zum Herunterladen
Beispiele für Excel IF-Platzhalterformeln (.xlsx-Datei)