Seite 1 von 1

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: Mo, 27.10.2014 11:12
von Gert Seler
Hallo Philly,
Deine Formel:
WENNFEHLER(INDEX(Datentabelle!$B$1:$B$1 ... !B1)));"")
Ändere die " ! " hinter "Datentabelle!$B$1:$B$19865 ..... in einen Punkt " . " dann sollte es passen.
Gilt generell bei allen derartigen "Bezügen" von "MS_Excel" .

mfg
Gert

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: Di, 16.06.2015 11:43
von TrueColor
Beim Lesen kann dir leider keiner helfen, das musst du schon selbst erledigen.

Schau dir nochmal Gerts Antwort auf das OP an.

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: Di, 16.06.2015 15:33
von Karolus
Generalisierte Umformung ( mit Spezialisierung auf #NV-fehler aus SVERWEIS oder VERGLEICH

WENNFEHLER( formel ; alternative)
wird zu
WENN( ISTNV( formel) ; alternative;formel )

bei dir: alternative == ""

Karolus

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: Mi, 17.06.2015 08:05
von TrueColor
Ich würde sagen, das ist so gut formuliert, dass man das in die FAQ nehmen könnte. Was meinst du, Karolus?

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: Fr, 23.10.2015 17:30
von JK
Ich weiß nicht genau seit wann, aber auf jeden Fall In LibreOffice 5.0.2.2 liefern ungültige Bezüge in SVERWEIS nicht mehr immer #NV, sondern unter Umständen #REF! als Fehlerwert.
Beispiel:
Zelle A1 enthält TabellenblattName, Zelle B1 enthält XYZ.
Es existiert eine leere Tabelle mit Namen TabellenblattName, nicht jedoch XYZ.
In Zelle A2 folgende Formel:

Code: Alles auswählen

=SVERWEIS("Summe";INDIREKT(VERKETTEN(A$1;".$Q$1:$Z$500"));2;)
in B2 entsprechend

Code: Alles auswählen

=SVERWEIS("Summe";INDIREKT(VERKETTEN(B$1;".$Q$1:$Z$500"));2;)
Die Formel in A2 liefert #NV zurück, in B2 jedoch #REF!.

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: So, 25.10.2015 02:45
von paljass
Hi,
unter AOo 4.1.1 wird in beiden Fällen #NV ausgegeben.
Allerdings scheint LO den "richtigen" Fehler zurückzugeben, denn in der Hilfe heißt es :
524
#REF
Ungültiger Bezug (in der Zelle steht nicht Err:524 sondern #REF!)
Compiler: Ein Beschreibungsname für eine Spalte oder Zeile konnte nicht aufgelöst werden. Interpreter: Die Spalte, Zeile oder Tabelle mit der referenzierten Zelle fehlt in einer Formel.
Wenn also der Tabellenname, den du in B1 stehen hast, nicht existiert, dann liegt halt ein ungültiger Bezug vor, der den Fehler #REF auslöst.

Wenn du dieses Fehler auch abfangen willst, darfst du halt nicht mit ISTNV(Formel) arbeiten, sondern mit (ISTFEHLER(Formel).

Gruß
paljass

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: So, 25.10.2015 18:54
von JK
Danke für den Tipp!

Versteht AOo denn WENNFEHLER mittlerweile?
Ansonsten wäre es praktisch, WENNFEHLER als eigene Funktion mitzuliefern. Doch wie frage ich ab, ob eine Funktion bereits definiert ist oder nicht?

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: So, 25.10.2015 20:01
von JK
Entschuldigung, da habe ich mich ungenau ausgedrückt.
Ich würde die WENNFEHLER-Funktion als benutzerdefinierte Funkion schreiben, siehe https://wiki.openoffice.org/wiki/Custom_functions. (Die Erklärung bei LO ist etwas ausführlicher wie man die Funktion einbaut: https://help.libreoffice.org/Calc/User- ... nctions/de .)

Nun müsste ich in dem Code ja aber abfragen, ob die Funktion WENNFEHLER schon definiert ist (da builtin wie in LO) oder nicht. Oder etwa nicht?

Es wäre meines Erachtens doch praktischer, die WENNFEHLER-Formeln zu belassen (da sie ja auch deutlich lesbarer sind) und die WENNFEHLER-Funktion eben einfach mit dem Dokument mitzuliefern.
Da LibreOffice die Funktion ja kennt, würde ich die Funktion nur definieren wollen, wenn das Dokument in AOo geöffnet ist - und eben die Funktion nicht definiert ist.

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: So, 25.10.2015 20:54
von Stephan
JK hat geschrieben:Entschuldigung, da habe ich mich ungenau ausgedrückt.
Ich würde die WENNFEHLER-Funktion als benutzerdefinierte Funkion schreiben, siehe https://wiki.openoffice.org/wiki/Custom_functions. (Die Erklärung bei LO ist etwas ausführlicher wie man die Funktion einbaut: https://help.libreoffice.org/Calc/User- ... nctions/de .)

Nun müsste ich in dem Code ja aber abfragen, ob die Funktion WENNFEHLER schon definiert ist (da builtin wie in LO) oder nicht. Oder etwa nicht?

Es wäre meines Erachtens doch praktischer, die WENNFEHLER-Formeln zu belassen (da sie ja auch deutlich lesbarer sind) und die WENNFEHLER-Funktion eben einfach mit dem Dokument mitzuliefern.
Da LibreOffice die Funktion ja kennt, würde ich die Funktion nur definieren wollen, wenn das Dokument in AOo geöffnet ist - und eben die Funktion nicht definiert ist.
Ich habe mich mit diesem Thema schon lange nicht mehr beschäftigt und habe das deshalb jetzt aktuell mit LO geprüft, Du kannst das ohne Prüfung so verwenden, ABER:

WENNFEHLER() besitzt die Besonderheit das es einen Fehlerwert 'enthält' wenn der erste Parameter einen Fehlerwert liefert und darauf reagiert AOO (geprüft mit 4.1.1 und OOo 3.3.0) mit der 'kompromisslosen' Rückgabe des Fehlerwerts, so das ich keine Chance sehe hierfür eine benutzerdefinierte Funktion zu verwenden.

Allgemein funktioniert das Ganze aber so wie Du es Dir vorstellst, was ich gerade testweise mit DATEDIF() verifiziert habe. Besonderheit, aber die sollte Dir ja bekannt sein ist das AOO sehr wohl die internen Funktionsnamen nutzt Du also die entsprechenden benutzerdefinierten Funktionen so nennen musst, also bei DATEDIF() tatsächlich DATEDIF() auch wenn Du mit deutschen AOO arbeitest und die Funktion DATUMDIF() wäre, was ja das deutsche LO auch anzeigt.


Insgesamt:
ja das Verfahren geht, nur leider bei der ganz speziellen Funktion nicht, zumindest weiß ich nicht wie. Man könnte vielleicht auch dagegen noch etwas tun, aber Alles scheint mir diesbezüglich komplizierter als stattdessen gleich einen benannten Bereich (z.B. Namens "WENN_FEHLER") zu definieren und dort eine Funktion zu hinterlegen die für LO und OO passt.

Ach so, vielleicht noch eine Anregung:
man kann für OO/LO 'echte' AddIn-Tabellenfunktionen mittels z.B. Java schreiben (wahrscheinlich geht auch Python, aber Java geht garantiert) u.U. könnte das das Problem mit WENNFEHLER() lösen, allerdings nur wenn das Addin lokal installiert ist (was man notfals zwar wohl auch bei Öffnen der Datei automatisch erledigen lassen könnte, aber ob derartige Tricks sich lohnen, nur um ISTFEHLER() und einen etwas anderen Formelaufbau zu vermeiden?


Gruß
Stephan

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Verfasst: So, 25.10.2015 21:27
von JK
ok, dann hoffen wir mal, dass WENNFEHLER einfach bald auch in AOo implementiert wird. :)