Dies ist eine alte Frage, aber eine Lösung für Benutzer von Excel 2016 oder neuer ist, dass Sie die Notwendigkeit verschachtelter if-Strukturen mithilfe der neuen IFS( condition1, return1 [,condition2, return2] ...)Bedingung entfernen können.
Ich habe es formatiert, um visuell klarer zu machen, wie es für den Fall dieser Frage verwendet werden soll:
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
Da SEARCHein Fehler zurückgegeben wird, wenn ein String nicht gefunden wird, habe ich ihn mit einem umbrochen ISERROR(...)=FALSE, um die Wahrheit zu überprüfen und dann den gewünschten Wert zurückzugeben. Es wäre toll, wenn SEARCH0 anstelle eines Fehlers für die Lesbarkeit zurückgegeben würde, aber genau so funktioniert es leider.
Ein weiterer wichtiger Hinweis ist, dass IFSdie zuerst gefundene Übereinstimmung zurückgegeben wird und daher die Reihenfolge wichtig ist. Wenn zum Beispiel meine Zeichenfolgen Surf, Surfing, Surfswie String1,String2,String3oben und meine Zellenzeichenfolge Surfingwären, würde sie aufgrund des Teilstrings mit dem ersten Term anstelle des zweiten übereinstimmen Surf. Daher müssen gemeinsame Nenner die letzten in der Liste sein. Mein IFSmüsste bestellt werden Surfing, Surfs, Surf, um korrekt zu funktionieren (Tauschen Surfingund Surfswürde auch in diesem einfachen Beispiel funktionieren), Surfmüsste aber der letzte sein.