(Bitte nicht pauschal “funktioniert nicht”, sondern konkret was tatsächlich passiert angeben!)
FINDEN liefert die Position im Text zurück, an der das gefundene Stück beginnt - wenn es gefunden wird. Falls der Suchtext nicht gefunden wurde, wird ein Fehlerwert zurückgegeben. Der wird dann durchgereicht bis zum Endergebnis der Formel. (Funktionen, die ausdrücklich nach einem Fehler fragen, können ihn “verschwinden” lassen. Auch ISNUMBER() und ISTEXT() sagen einfach ein fehlerfreies Nein wenn ein Fehler vorliegt.)
Zu Formel 1:
Weil mindesetns zwei der Suchtexte nicht gefunden werden, entsteht immer ein Fehler.
Würde der ODER-Teil der Formel doch einmal FALSCH sagen würde die Formal auch nicht wissen, was sie ausgeben soll: Die Alternative fehlt. Weil “gar nichts” nicht gilt, gibt WENN in seienr Verzweiflung dann FALSCH zurück.
Zu Formel2:
ODER kann man nur auf Listen von logischen Werten / Ausdrücken anwenden. Texte kann man verketten, aber nicht verodern. Alternative fehlt wie beim ersten Fehler.
Gemeinsam: Drei Schreibungen zu listen ist umständlich. Wenn nicht z.B. “DLr” auch auftreten kann, und dann anders behandelt werden muss, kannst du alle Fälle zusammenfassen, indem du ganz auf Großscheibung umstellst, oder statt FIND() SEARCH() verwendest. Diese Funktion lässt nämlich den Unterschied zwischen Groß- und Kleinschrift unbeachtet.
Eine Formel, die Arbeiten sollte, ist dann:
=IF(ISNUMBER(SEARCH("dlr";$Z1));"DLR";"")
=IFERROR(SEARCH("dlr";$Z1))>0;"DLR";"");"")
geht auch - und so manche andere Variante.
Hinweise:
- Ich schalte nicht gerne dauern zwischen verschiedenen Sprachen für die Funktionsnamen um. Du findest sicher leicht was Passendes. “International” könnte da jeder erwägen, der schon mal ein englisches Wort gesehen hat. Good luck!
- Die hier diskutierten Formeln (auch meine) finden das kritische Textstück auch in “Powidlrezept”. Wenn du das nicht zulassen willst, musst du in den Optionen “Reguläre Ausdrücke in Funktionen” zulassen und mit SEARCH statt nach “dlr” z.B. nach “\bdlr\b” suchen. “\b” bedeutet in regulären Ausdrücken eine Wortgrenze ohne dass ein tatsächliches Zeichen erfasst wird.
Ergänzung bezüglich des “Update” zur Originalfrage vom 2017-05-06 durch Bearbeitung:
- Die zweite Variante ist sinnlos. Zur ersten:
FINDEN("dlr";$Z1)
gibt einen Fehlerwert zurück wenn dlr
nicht gefunden wurde. Das pflanzt sich durch den ganzen Ausdruck fort. FINDEN versucht, eine Position zurückzugeben. Wenn es um die Entscheidung geht ob der Suchstring gefunden wure, braucht man IF(ISNUMBER()) oder IFERROR(Find(…) ;0) oder etwas ähnliches.
- Wenn GroßKlein ignoriert werden soll, verwendet man SEARCH statt FIND. Oder…
- Alle hier angesprochenen Varianten finden
dlr
auch in “traditionelles Unterammergauer Madlrennen”. Vor allem RegEx bietet verschiedene Möglickeiten, das zu ändern.