WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

von JK » So, 25.10.2015 21:27

ok, dann hoffen wir mal, dass WENNFEHLER einfach bald auch in AOo implementiert wird. :)

Re: WENNFEHLER Formel umwandeln damit sie in OO funktioniert

von Stephan » So, 25.10.2015 20:54

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

von JK » So, 25.10.2015 20:01

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

von JK » So, 25.10.2015 18:54

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

von paljass » So, 25.10.2015 02:45

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

von JK » Fr, 23.10.2015 17:30

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

von TrueColor » Mi, 17.06.2015 08:05

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

von Karolus » Di, 16.06.2015 15:33

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

von TrueColor » Di, 16.06.2015 11:43

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

von Gert Seler » Mo, 27.10.2014 11:12

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

Nach oben