Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-12 Diskussionsfäden Semmel


Moin Wolfgang,


Wolfgang Jäth schrieb am 11.11.2015 um 18:04:

Am 11.11.2015 um 13:58 schrieb Semmel:

Ist eine „ODER“ Verknüpfung in Verbindung mit „ISTFEHLER“ nicht möglich
oder wo liegt mein Bock?

Also liefert ISTFEHLER das Ergebnis FALSCH zurück; das bedeutet, dass
die nächste Bedingung abgefragt werden muss, denn die könnte ja TRUE sein.


wie schon eben an Horst geschildert: da genau lag mein Denkfehler bzw. 
meine irrige Annahme, weil ich dachte: "ist die eine ODER die andere 
Bedingung zutreffend (ODER auch beide), dann ...". Ich hoffe, ich merke 
mir diesen Unterschied bei Calc.  :)





b) der gesuchte Wert kleiner 1 ist
[=WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);"
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann
klappt auch das für sich genommen, wenn das gesuchte Datum besteht. Aber
„es geht“ in dem Augenblick nicht mehr (Ergebnis: #NV), wenn das Datum
erst gar nicht gefunden wird (was mir in dieser entzerrten Konstellation
auch klar ist).

In Calc werden bei den Funktionen UND und ODER anscheinend *alle*
angegebenen Bedingungen ausgewertet; ein vorzeitiger Abbruch, wie aus
den gängigen Programmiersprachen o. ä. gewohnt, findet *nicht* statt.

Du müsstest die Bedingungen also entkoppeln, und zwei ineinander
geschachtelte Abfragen verwenden:

|
=WENN(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));"";WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1;"";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0)))


wie immer: perfekte Lösung.

Ich will überhaupt nicht schleimen und ich werde das Folgende auch nur 
einmal in dieser Liste sagen - und dann nie mehr. Aber wie schaffst Du 
es immer wieder, Dich in die Konstrukte (bei zumeist nur kurzen 
Schilderungen) so derart hinein zu versetzen?


Vor meiner Anfrage hier in der Liste hatte ich in einigen Tabellen-Foren 
geschaut, aber nichts vergleichbares zu meinem Problem gefunden. Aber 
als ich dort die teilweise kryptischen Schilderungen gelesen habe, wäre 
mir oftmals dazu auch keine Lösung eingefallen - da geht es mir eher wie 
Horst: ich muss neben der Beschreibung die Tabelle sehen und genau das 
Ziel kennen - dann geht's (einigermaßen). Aber nur mit einer Schilderung 
*und* (dem Versuch) einer Formel bin ich in den meisten Fällen doch eher 
überfordert. Von daher: bewundernswert - sowohl dein Talent, als auch 
dein Engagement und ich danke dir ganz außerordentlich dafür!


Zu guter Letzt: deine "quick-and-dirty"-Lösung würde vermutlich auch 
funktionieren, aber mit "Eleganz" habe ich es nicht so. Daher habe ich 
deine o.e. Variante gewählt, die prima funktioniert. Nochmals: danke!


Liebe Grüße, Peter.



Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-12 Diskussionsfäden Semmel


Moin Schulze,

wie findest du diese Anrede? Nicht so gut? Dann solltest du zukünftig 
vielleicht auch Peter zu mir sagen.  :)


Dein Problem des nicht wirklich Nachvollziehen-Könnens mit einer relativ 
kurzen Schilderung, kenne ich nur zu gut. Und ich hätte die Datei nach 
Deiner Bitte heute auch auf einem fremden Server hinterlegt, wenn nicht 
auch Wolfgang schon eine Lösung angeboten hätte.


Und weiter kann man die Formeln ja praktisch kaum noch 
auseinanderziehen. Ferner funktionieren beide Teilabfragen ja auch - nur 
eben unter der Bedingung, dass das gesuchte Datum auch vorhanden ist. 
Ist das aber nicht vorhanden, gibt es ein "#NV", das ich dann mit der 
Fehlerabfrage unterbinden wollte.


Mir war dabei nur nicht klar (bzw. war ich der irrigen Annahme), dass 
ein "ODER" mehr oder minder auf jede der Bedingungen reagiert. D.h. ich 
dachte: ist nur eine Bedingung WAHR, dann "x", sonst "y" *und* sind 
beide Bedingungen WAHR, dann ebenfalls "x", sonst "y".
Mir war dabei nicht bewusst, dass eine ODER-Abfrage in Calc einem "XOR" 
(wie ich es aus Programmiersprachen kenne) arbeitet. Da lag mein Denkfehler.


Dennoch: herzlichen Dank für Deine Bemühungen, Horst.  ;)))

Liebe Grüße, Peter.


technik schrieb am 11.11.2015 um 16:21:

Hallo Semmel,

tut mir leid, aber mir ist das Beispiel nicht so richtig klar. Das 
geht mir auch oft so mit meinen eigenen Anfragen.

Mach doch eine Datei und lege sie irgendwo ab, dann gib uns den Link.

Ich habe bei Formeln mit Problemen das immer so gemacht, dass ich 
jeden einzelnen Item in ein Feld geschrieben habe, also immer weiter 
die Formel zerlegt, bis ich den Fehler gefunden habe.


Horst

Am 11.11.2015 um 13:58 schrieb Semmel:

Fehlerabfrage in CALC:

Ist eine „ODER“ Verknüpfung in Verbindung mit „ISTFEHLER“ nicht 
möglich oder wo liegt mein Bock?


Gegeben sind zwei Tabellenblätter. Im ersten befindet sich eine 
Übersichtstabelle, in der verschiedene Jahre waagerecht (Zeile 4) und 
die Monate senkrecht (Spalte 1, ab Zeile 4) eingetragen sind. Über 
diese Zuordnung von Monat und Jahr suche ich nun im Tabellenblatt 2 
(„Daten“) nach den entsprechenden Werten.


Weshalb aber gibt mir die folgende Formel ein #NV aus, wenn das 
entsprechende Datum nicht gefunden wird, *obwohl* ich das mit einem 
„ISTFEHLER“ versucht habe abzufangen?


=WENN(ODER(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))



„Ziehe“ ich die Formel auseinander und frage mit WENN (*ohne* ein 
„ODER“) ab, ob
a) ein Fehler besteht 
[=WENN(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann 
klappt das und die Zelle bleibt wie gewünscht leer und


b) der gesuchte Wert kleiner 1 ist 
[=WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann 
klappt auch das für sich genommen, wenn das gesuchte Datum besteht. 
Aber „es geht“ in dem Augenblick nicht mehr (Ergebnis: #NV), wenn das 
Datum erst gar nicht gefunden wird (was mir in dieser entzerrten 
Konstellation auch klar ist).


Weshalb aber kann ich das mit der eingangs beschriebenen „=WENN(ODER 
...“ -Abfrage nicht abfangen und erhalte (bei nicht gefundenem Datum) 
immer ein #NV?

Wo liegt mein Fehler?

Liebe Grüße, Peter.






Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-12 Diskussionsfäden Wolfgang Jäth
Am 12.11.2015 um 10:02 schrieb Semmel:
> 
> Mir war dabei nur nicht klar (bzw. war ich der irrigen Annahme), dass 
> ein "ODER" mehr oder minder auf jede der Bedingungen reagiert. D.h. ich 
> dachte: ist nur eine Bedingung WAHR, dann "x", sonst "y" *und* sind 
> beide Bedingungen WAHR, dann ebenfalls "x", sonst "y".

So ist es auch; Du hast nur irrigerweise vorausgesetzt, dass wenn "x"
WAHR ist, dann "y" gar nicht mehr überprüft wird.

> Mir war dabei nicht bewusst, dass eine ODER-Abfrage in Calc einem "XOR" 
> (wie ich es aus Programmiersprachen kenne) arbeitet. 

Nein, tut es nicht; XOR liefert TRUE, wenn beide Bedingungen
unterschiedlich sind (insbesondere liefert es auch FALSE, wenn beide
Bedingungen TRUE sind).

Wolfgang
-- 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-12 Diskussionsfäden Wolfgang Jäth
Am 12.11.2015 um 10:23 schrieb Semmel:
> 
> Wolfgang Jäth schrieb am 11.11.2015 um 18:04:
>> Am 11.11.2015 um 13:58 schrieb Semmel:
>>> Ist eine „ODER“ Verknüpfung in Verbindung mit „ISTFEHLER“ nicht möglich
>>> oder wo liegt mein Bock?
>> Also liefert ISTFEHLER das Ergebnis FALSCH zurück; das bedeutet, dass
>> die nächste Bedingung abgefragt werden muss, denn die könnte ja TRUE sein.
> 
> wie schon eben an Horst geschildert: da genau lag mein Denkfehler bzw. 
> meine irrige Annahme, weil ich dachte: "ist die eine ODER die andere 
> Bedingung zutreffend (ODER auch beide), dann ...". Ich hoffe, ich merke 
> mir diesen Unterschied bei Calc.  :)

Das ist auch so; nur werden halt grundsätzlich alle Bedingungen abgefragt.

> Ich will überhaupt nicht schleimen und ich werde das Folgende auch nur 
> einmal in dieser Liste sagen - und dann nie mehr. Aber wie schaffst Du 
> es immer wieder, Dich in die Konstrukte (bei zumeist nur kurzen 
> Schilderungen) so derart hinein zu versetzen?

Du kennst *meine* Formeln nicht ... 

Wolfgang
-- 
=WENN($A14=""; ""; WENN(AutoMakro.$C$19=7; V14*1000; MAX(1; MIN(10;
ABRUNDEN(WENN(V14<15; MAX(WENN($AutoMakro.$F$7=10; 9; 0);
((299,9+(200*V14))/(AutoMakro.$C$18*100))); WENN(V14>84; MAX(WENN(ODER(
$AutoMakro.$F$7=4; $AutoMakro.$F$7>=9); 60; 0); ((20099,9-(200*V14))/
(AutoMakro.$C$18*100))); (10*SIN(V14*PI()/100)

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Re: Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-11 Diskussionsfäden Wolfgang Jäth
Am 11.11.2015 um 13:58 schrieb Semmel:
> 
> Ist eine „ODER“ Verknüpfung in Verbindung mit „ISTFEHLER“ nicht möglich 
> oder wo liegt mein Bock?
> 
> Gegeben sind zwei Tabellenblätter. Im ersten befindet sich eine 
> Übersichtstabelle, in der verschiedene Jahre waagerecht (Zeile 4) und 
> die Monate senkrecht (Spalte 1, ab Zeile 4) eingetragen sind. Über diese 
> Zuordnung von Monat und Jahr suche ich nun im Tabellenblatt 2 („Daten“) 
> nach den entsprechenden Werten.
> 
> Weshalb aber gibt mir die folgende Formel ein #NV aus, wenn das 
> entsprechende Datum nicht gefunden wird, *obwohl* ich das mit einem 
> „ISTFEHLER“ versucht habe abzufangen?
> 
> =WENN(ODER(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);"
>  
> ";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))
> 
> 
> „Ziehe“ ich die Formel auseinander und frage mit WENN (*ohne* ein 
> „ODER“) ab, ob
> a) ein Fehler besteht 
> [=WENN(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));" 
> ";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann 
> klappt das und die Zelle bleibt wie gewünscht leer und

Also liefert ISTFEHLER das Ergebnis FALSCH zurück; das bedeutet, dass
die nächste Bedingung abgefragt werden muss, denn die könnte ja TRUE sein.

> b) der gesuchte Wert kleiner 1 ist 
> [=WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);" 
> ";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann 
> klappt auch das für sich genommen, wenn das gesuchte Datum besteht. Aber 
> „es geht“ in dem Augenblick nicht mehr (Ergebnis: #NV), wenn das Datum 
> erst gar nicht gefunden wird (was mir in dieser entzerrten Konstellation 
> auch klar ist).

In Calc werden bei den Funktionen UND und ODER anscheinend *alle*
angegebenen Bedingungen ausgewertet; ein vorzeitiger Abbruch, wie aus
den gängigen Programmiersprachen o. ä. gewohnt, findet *nicht* statt.

Du müsstest die Bedingungen also entkoppeln, und zwei ineinander
geschachtelte Abfragen verwenden:

|
=WENN(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));"";WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1;"";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0)))

Es gibt aber noch eine IMHO elegantere (aber zugegeben auch etwas
quick-and-dirty) Lösung, und zwar einfach die Ausgabe bestimmter Werte
zu unterdrücken (ohne die Hochkomma):

| Format => Zellen => Zahlen => Format-Code = "[<1]@;0.#"

Genau genommen wird hier im Fall von Werten kleiner 1 eine Textausgabe
erzwungen ("@"), nur dass für den auszugebende Wert gar kein Wert in
Textform vorliegt, sondern nur ein Wert in Zahlform. Daher wird ein
Leerstring ausgegeben. Da in dieser Form auch keine Funktion o. ä.
aufgerufen wird, wird auch keine automatische Konvertierung von Zahl
nach Text vorgenommen.

Wolfgang
-- 

-
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org



Fehlerabfrage in CALC mit "WENN-ODER"

2015-11-11 Diskussionsfäden Semmel

Fehlerabfrage in CALC:

Ist eine „ODER“ Verknüpfung in Verbindung mit „ISTFEHLER“ nicht möglich 
oder wo liegt mein Bock?


Gegeben sind zwei Tabellenblätter. Im ersten befindet sich eine 
Übersichtstabelle, in der verschiedene Jahre waagerecht (Zeile 4) und 
die Monate senkrecht (Spalte 1, ab Zeile 4) eingetragen sind. Über diese 
Zuordnung von Monat und Jahr suche ich nun im Tabellenblatt 2 („Daten“) 
nach den entsprechenden Werten.


Weshalb aber gibt mir die folgende Formel ein #NV aus, wenn das 
entsprechende Datum nicht gefunden wird, *obwohl* ich das mit einem 
„ISTFEHLER“ versucht habe abzufangen?


=WENN(ODER(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))



„Ziehe“ ich die Formel auseinander und frage mit WENN (*ohne* ein 
„ODER“) ab, ob
a) ein Fehler besteht 
[=WENN(ISTFEHLER(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0));" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann 
klappt das und die Zelle bleibt wie gewünscht leer und


b) der gesuchte Wert kleiner 1 ist 
[=WENN(SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;1)<1);" 
";SVERWEIS(DATUM(B$4;ZEILE(A5)-4;1);Daten.$I$3:$L2632;4;0))], dann 
klappt auch das für sich genommen, wenn das gesuchte Datum besteht. Aber 
„es geht“ in dem Augenblick nicht mehr (Ergebnis: #NV), wenn das Datum 
erst gar nicht gefunden wird (was mir in dieser entzerrten Konstellation 
auch klar ist).


Weshalb aber kann ich das mit der eingangs beschriebenen „=WENN(ODER 
...“ -Abfrage nicht abfangen und erhalte (bei nicht gefundenem Datum) 
immer ein #NV?

Wo liegt mein Fehler?

Liebe Grüße, Peter.