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 SEARCH
ein 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 SEARCH
0 anstelle eines Fehlers für die Lesbarkeit zurückgegeben würde, aber genau so funktioniert es leider.
Ein weiterer wichtiger Hinweis ist, dass IFS
die zuerst gefundene Übereinstimmung zurückgegeben wird und daher die Reihenfolge wichtig ist. Wenn zum Beispiel meine Zeichenfolgen Surf, Surfing, Surfs
wie String1,String2,String3
oben und meine Zellenzeichenfolge Surfing
wä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 IFS
müsste bestellt werden Surfing, Surfs, Surf
, um korrekt zu funktionieren (Tauschen Surfing
und Surfs
würde auch in diesem einfachen Beispiel funktionieren), Surf
müsste aber der letzte sein.