Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hallo Christian,

Christian Kühl schrieb:
Hallo, Regina!

Am 05.06.2011 16:04, schrieb Regina Henschel:

Christian Kühl schrieb:

ich habe hier Calc-Tabellen, bei denen ich mit einer WENN-Abfrage einen
Zahlenwert oder bei FALSE den Wert >""< zurückgebe. Anschließend rechne
ich mit dem Wert weiter.

Bisher ist Calc damit wie mit einer leeren Zelle verfahren, d.h. hat den
Wert als NULL behandelt. Seit dem Upgrade auf LibreOffice 3.4 gibt Calc
>falscher Dateityp< zurück.

Ist das ein Bug oder so gewollt? Ist zwar durchaus konsequent, wenn es
so gewollt ist, ich müsste allerdings diverse Tabellen umarbeiten...

Das ist gewollt. Die einfachen Operatoren arbeiten nur mit Zahlen, nicht
mit irgendwas anderes. Das ist in ODF1.2 so festgelegt.

Habe ich schon vermutet, also muss ich mich umgewöhnen und viele alte
Dokumente überarbeiten...

Wir verfahrt ihr in so einem Fall, wenn dort keine Null stehen soll,
sondern im Fall von FALSE eine leere Zelle?

Das geht nicht. Wenn in einer Zelle eine Formel steht, ist die Zelle
niemals "leer".

Gibt es dafür einen String,
den man ausgeben kann, sodass Calc damit ohne Probleme weiter rechnet,
oder sollte ich die folgenden Zellen jeweils mit einer WENN-Abfrage
versehen, um den Wert NULL auszuschließen...?

Es kommt sehr darauf an, in welcher Weise du damit weiterrechnen willst.
Eine Möglichkeit mag sein, einen Wert in die Zelle zu schreiben, der für
die nachfolgenden Rechnungen neutral ist und dann durch Formatieren
dafür zu sorgen, dass die Zelle leer aussieht.

Das habe ich bisher ja getan, indem ich >""< (also nichts) ausgegeben
habe,

"" ist ein leerer String d.h. Text, also nicht "nichts". =ISTLEER(...) von einer solchen Zelle liefert FALSCH, =ISTTEXT(...) liefert WAHR.

 damit sah die Zelle leer aus und ich konnte damit rechnen, wie mit
einer leeren Zelle (sprich, es wurde automatisch mit NULL gerechnet).

Du müsstest also mitteilen, wie mit der Zelle weitergerechnet werden
soll.

In der Regel sollen Rechenoperationen ausgeführt werden (im simpelsten
Fall "+", "-", "*", "/"). Ist natürlich nicht sauber programmiert, aber
hat bisher seine Dienste geleistet.

Bei SUMME() habe ich ausprobiert, wird der Wert als NULL erkannt oder
ausgelassen, auf jeden Fall nicht mitgerechnet; bei MITTELWER() wird er
nicht berücksichtigt;

Bei Funktionen wie SUMME, MITTELWERT, ANZAHL, PRODUKT, die mit Bereichen arbeiten, werden Zellen, die keine Zahlen enthalten, ausgelassen.

 WERT() liefert leider keinen Zahlenwert (das wäre
eine Option gewesen).

Eine Option wäre N(...) aber da steckt in LO3.4 ein Bug drin.
https://bugs.freedesktop.org/show_bug.cgi?id=37927

Bei einfachen Operatoren könntest du über die Formatierung gehen. Für eine nachfolgende Multiplikation mit * kannst du beispielsweise eine 1 erzeugen und mit [<1]Standard;[>1]Standard;"" formatieren. Statt Standard kannst du natürlich auch ein speziellen Format nehmen. Wenn du gleichzeitig die Zelle in einer Addition brauchst, geht dieses Workaround natürlich nicht. Um die Anzeige von 0 zu unterdrücken ist die Vorlage Standard;Standard;# geeignet.

Ansonsten bleibt natürlich der "saubere" Weg, in der späteren Rechnung mit ISTZAHL() sicherzustellen, dass die Operanden von + * usw. wirklich Zahlen sind.

Vielleicht kannst du deine Rechnungen umformen, so dass keine einfachen Operatoren benutzt werden? Statt =B1-A1 wäre dies z.B. =SUMMENPRODUKT(A1:B1;{-1.1}) [Statt des Seperators . kannst du in den Optionen auch ein anderes Zeichen einstellen]

Ich weiß, ist alles irgendwie nicht so praktisch. Vielleicht weiß ja jemand anderes etwas einfacheres.

MfG
Regina

--
Informationen zum Abmelden: E-Mail an discuss+help@de.libreoffice.org
Tips zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/discuss/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.