WENN ODER und FINDEN als Funktion verknüpfen

Hallo

Ich möchte, dass in der Zelle der Formel “DLR” angezeigt wird, wenn im Feld Z1 die Zeichenfolge “dlr”, “DLR” oder “Dlr” vorkommt.

Leider klappen meine 2 besten Versuche noch nicht.
=WENN(ODER(FINDEN("dlr";$Z1));(FINDEN("DLR";$Z1));(FINDEN("Dlr";$Z1));"DLR")
=WENN(FINDEN(ODER("dlr";"Dlr";"DLR");$Z1);"DLR";)
(Formeln in “pre - code” gesetzt. Lupp)

Würde mich über eine Lösung freuen.

Herzlich, Klaus

Und was, wenn ich 2 oder mehr Zellen auf “dlr” durchsuchen möchte? Ist irgendwo dlr drin, egal welcher Gross-klein-Schreibung, soll “DLR” ausgegeben werden.

So ehrenhaft die Absicht gewiss ist: Es gibt Handlungsräume, in denen Werbung für weltanschauliche oder relgiöse Positionen ebenso unangebracht ist wie Produktwerbung. Falls du das weiter diskutieren möchtest, gib bitte eine private E-Mail-Addresse an. .

Bezüglich des “Update”: Siehe Ergänzung zu meiner Antwort.

Ich hab es aus dem Post rausgenommen.

=WENN(FINDEN("DLR";GROSS($Z1));"DLR")

@Sputnik1: Das ist natürlich die klare, kurze Antwort. (Auch wenn sie das Problemchen mit dem “Powidlrezept” unbeachtet lässt.)
Ich wollte nur ein paar zusätzlich Information für einen neuen “Kunden” liefern, nicht deine Antwort bekriteln.

Funktioniert bei mir. Merci. Elegante Lösung.

Und was, wenn ich 2 oder mehr Zellen auf “dlr” durchsuchen möchte?
Ist irgendwo dlr drin, egal welcher Gross-klein-Schreibung, soll “DLR” ausgegeben werden.

(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:

  1. 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!
  2. 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:

  1. 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.
  2. Wenn GroßKlein ignoriert werden soll, verwendet man SEARCH statt FIND. Oder…
  3. Alle hier angesprochenen Varianten finden dlr auch in “traditionelles Unterammergauer Madlrennen”. Vor allem RegEx bietet verschiedene Möglickeiten, das zu ändern.
1 Like

Das ist natürlich die ausführliche Antwort.
Ich war nur schreibfaul. Deshalb die Kurzversion.
Noch ein Tip: Verschachtelte Formeln zerlegen. In einzelne Zellen und darauf beziehen.
Damit sieht man in welchem Teil der Fehler ist.
In meinem aktuellen Projekt habe ich bis zu 6 ineinander verschachtelte Formeln. Wenn ich die nicht zerlege finde ich den Fehler nie.
Viel Spaß noch.

@Sputnik1: Guter Tip fürs “Debuggen” von Spreadsheets. Und oft wird es dann zweckmäsig sein, die Teile der zerlegten Labyrinthformel in Helferspalten stehen zu lassen.

Funktionieren die Englisch-sprachigen Formeln auch im deutschen Libre Office? Bei mir klappte deine erste Formel nicht.

Die englischen Funktionsnamen liegen immer in der gespeicherten Datei vor. Sie werden auch unter jedem Gebietsschema unterstützt, wenn man das unter ‘Optionen’ > ‘LibO Calc’ > ‘Formeln’ einstellt.
(Bei rund 100 UI-Sprachen und rund 200 Lokalisierungen (“Gebietsschemata”) ist m.E. lebendige Unterstützung nur möglich wenn ein wenig internationaliesiert wird.

Danke für alle Tipps und Antworten. Sehr hilfreich.

Kann auch ein Bereich durchsucht werden?

“Kann auch ein Bereich durchsucht werden?”
Das ist nicht so einfach zu sagen weil die Frage uneindeutig ist.

a) Kann ich auch … ausgeben wenn wenigstens eine Zelle im Bereich …?
b) Kann ich auch … wenn alle Zellen im Bereich … ?
c) Kann ich durch eine Formel Ergebisse für alle Zellen eines Bereichs erzeugen?
d) …?
Die Antwort ist in den drei Beispielfällen zwar immer “ja”, aber die Details sind ganz verschieden.
In weiteren Fällen ist auch “nein” möglich.

Du bist ein Gott, danke dir :slight_smile: