🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Wie kann Fehlermeldung bei Finden umgangen werden?

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
pschulze59
Beiträge: 51
Registriert: Di 16. Okt 2018, 12:48

[gelöst] Wie kann Fehlermeldung bei Finden umgangen werden?

Beitrag von pschulze59 » Fr 27. Nov 2020, 22:23

Hallo Forum,

ich verwende folgende Funktion:

Code: Alles auswählen

=WENN(FINDEN("PL";C2);"Plauen";WENN(FINDEN("DD";C2);"Dresden";WENN(FINDEN("MD";C2);"Magdeburg";WENN(FINDEN("MHL";C2);"Mühlhausen";WENN(FINDEN("EF";C2);"Erfurt";"alle BZ")))))
Je nach Kürzel im String von C2, der an beliebiger Stelle steht und eindeutig ist, soll der Klarname des Standorts angezeigt werden. Aber bereits nach der Prüfung des ersten Wertes "PL" wird bei Nichtauffinden "#WERT!" angezeigt. Die Ursache ist wohl, dass FINDEN() den Fehlerwert generiert, sobald "PL" nicht enthalten ist - damit wird nicht mehr die nächste WENN-Funktion ausgewertet - vermutlich weil das Ergebnis vom ersten WENN Fehler ergibt. Das finde ich aber so nicht in Ordnung, denn wenn eine Bedingung nicht erfüllt ist, muss automatisch die nächste Bedingung des nächsten WENN geprüft werden.
Das Gleiche passiert auch mit SUCHEN().

Wie kann ich mein Problem trotzdem lösen?

Peter
Zuletzt geändert von pschulze59 am So 29. Nov 2020, 11:11, insgesamt 2-mal geändert.

Mondblatt24
* LO-Experte *
Beiträge: 3336
Registriert: Fr 3. Mär 2017, 17:12

Re: Wie kann Fehlermeldung bei Finden umgangen werden?

Beitrag von Mondblatt24 » Sa 28. Nov 2020, 08:00

Hallo,
da FINDEN() eine Zahl zurückgibt (Position des Treffers), fehlt ISTZAHL() (gibt WAHR oder FALSCH zurück) in der Formel.

=WENN(ISTZAHL(FINDEN("PL";C2));"Plauen"; usw.

Gruß
Peter
Win 11 (x64) ▪ LO 25.2.5.1 (x64) ▪ AOO Portable 4.1.15
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.

Helmut_S
* LO-Experte *
Beiträge: 753
Registriert: Di 9. Feb 2016, 19:27

Re: Wie kann Fehlermeldung bei Finden umgangen werden?

Beitrag von Helmut_S » Sa 28. Nov 2020, 10:07

Hallo, etwas kürzer könnte die Formel werden mit wenns()

Code: Alles auswählen

=WENNS(C2="PL";"Plauen";C2="DD";"Dresden";C2="MD";"Magdeburg";C2="MHL";"Mühlhausen";C2="EF";"Erfurt";1=1;"alle BZ")
Gruß Helmut
MX-Linux KDE + Linux-Mint Cinnamon

Mondblatt24
* LO-Experte *
Beiträge: 3336
Registriert: Fr 3. Mär 2017, 17:12

Re: Wie kann Fehlermeldung bei Finden umgangen werden?

Beitrag von Mondblatt24 » Sa 28. Nov 2020, 10:11

Hallo Helmut,
lies die Frage noch einmal durch.

Gruß
Peter
Win 11 (x64) ▪ LO 25.2.5.1 (x64) ▪ AOO Portable 4.1.15
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.

mikele
* LO-Experte *
Beiträge: 1927
Registriert: Mo 1. Aug 2011, 20:51

Re: Wie kann Fehlermeldung bei Finden umgangen werden?

Beitrag von mikele » Sa 28. Nov 2020, 10:24

Hallo,
falls die Liste der Orte größer werden sollte, bietet sich eine Variante an.
Anbei mal ein Votschlag. Auf dem Tabellenblatt "Liste" findest du die Ortsübersicht. Den beiden Bereiche habe ich einen Namen gegeben, damit die Formel in Tabelle1 B1 einfacher wird. Es ist eine Matrixformel, die mit Shift+Strg+Enter abgeschlossen werden muss.

Code: Alles auswählen

=INDEX(orte;MAX(NICHT(ISTFEHLER(SUCHEN(kurz;A1)))*(ZEILE(kurz))))
Dateianhänge
texte zuordnen.ods
(8.07 KiB) 111-mal heruntergeladen
Gruß,
mikele

pschulze59
Beiträge: 51
Registriert: Di 16. Okt 2018, 12:48

Re: Wie kann Fehlermeldung bei Finden umgangen werden?

Beitrag von pschulze59 » Sa 28. Nov 2020, 22:14

Also Leute, erst einmal vielen Dank an alle, die sich darüber Gedanken gemacht haben - ich finde diese Forum einfach toll - das zeigt wie clever kollektive Intelligenz sein kann.

Ich werde die Methode von Peter benutzen (also nicht meine - bin ja selbst ein Peter :D ).
Die Methode funktioniert und passt zu meiner Aufgabenstellung.

Die Methode von Mikele muss ich erst mal in Ruhe durchdenken, aber das muss ich morgen machen, weil ich heute schon mind. ein Bier zu viel intus habe. :lol: Außerdem passt sie nicht ganz zu meiner Problematik, da ich ja keine Extra-Tabelle dafür machen will.

Dennoch habe ich Diskussionsbedarf - allerdings wird es jetzt polemisch:
Meine Auffassung von WENN ist: Wenn eine Bedingung erfüllt ist, MACHE das Eine und SONST das Nächste. Das Nächste ist dann das nächste WENN. Da sind wir uns wohl einig.

Wenn FINDEN() nach Prüfung der Bedingung1 unwahr ist (kein Zahlenwert wird zurückgeliefert), und damit unwahr und somit falsch ist, ist die Bedingung1 nicht erfüllt. Also muss nach meinem Verständnis das passieren, was unter SONST steht - in meinem Fall das nächste WENN. Aber das nächste WENN wird nicht mehr ausgewertet, weil das WENN einfach abgebrochen wurde, weil der Rückgabewert eines Fehlers sofort zum Abbruch der Funktion führt.
Das entspricht nicht meiner Denkweise, denn die Bedingung1 wurde nicht erfüllt, dann muss das unter SONST Stehende ausgeführt werden. Stattdessen gibt es einen Abbruch. Eine "Absicherung" mit ISTZAHL() wäre nach meinem Verständnis gar nicht nötig, weil ja die Prüfung von Bedingung1 ein FALSCH() ergibt - stattdessen ergibt die Prüfung von Bedingung1 ein FEHLER() - Und das ist das Problem:
FINDEN() dürfte nicht FEHLER(), sondern FALSCH() liefern - schließlich ist es kein "Fehler", wenn ein Zeichen in einem String nicht vorkommt, sondern es ist nicht wahr, also FALSCH().

Okay, Polemik hilft für den Moment nicht weiter. Ich habe eine Lösung, auch wenn sie meinem Verständnis der Logik von WENN() oder eigentlich von FINDEN() nicht entspricht. Ich habe eine Lösung - vielen Dank dafür!

Peter


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten