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


Am 27.05.2013 22:57, schrieb Matthias Müller:

In diesem Fall (was ich vermute)
dürftest Du keine /absolute/ Adressierung ('$') verwenden.
Wenn du nochmal liest wirst du feststellen, dass die relative Adressierung 
nur für die Spalte, aber nicht für die Zeile gesetzt ist. :-)

Ups; sorry. Das hab ich in der Eile bzw. aus Gewohnheit übersehen (Calc setzt
anscheinend von sich aus grundsätzlich /immer/ absolute Pfade, daher lösch ich 
die schon blind :-/).

Und die
Benennung der Tabelle kann man sich btw. auch sparen, solange man in der
gleichen Tabelle bleibt.
Da scheiden sich die Geister, das hat mir LibO so eingetragen, als ich auf 
die Zelle geklickt habe. 

Ja; Calc setzt die aus mir unerklärlichen Gründen[1] bei der bedingten
Formatierung grundsätzlich.

[1] D. h. erklären (rein technisch) kann ich das schon; wer auch immer diese 
Funktion seinerzeit programmiert hat, hat halt einfach keine Unterscheidung
gemacht zwischen tabelleninterner und tabellenübergreifender Referenz ... :-/

Außerdem ist die Reihenfolge der Abfragen ungünstig gewählt, denn *so*
herum musst Du in der ersten Bedingung auch die zweite Bedingung /mit/
überprüfen. Wenn Du /zuerst/ auf '<1' prüfst, wird die zweite Abfrage
sowieso nur noch auf Werte >= 1 angewendet, Du kannst Dir dort also
diesen Teil der Bedingung sparen (und wärst damit gar nicht in die
Verlegenheit gekommen, fälschlich das Textverküpfungszeichen zu
verwenden).

Wenn Du also einfach

1.   wenn    C3<1    dann    rot
2.   wenn    C3<2    dann    gelb

abfragst, sollte es wie gewünscht funktionieren.
Ja genau. Das ist aber auch die Krux an der Sache. Den dadurch bin ich 
gezwungen von Klein nach Groß die Bedingungen zu prüfen.

Richtig; dafür sparst Du Dir aber das unnötige Aufblähen der Formel
durch eigentlich überflüssige Abfragen.

Ich hoffe so ist es verständlich:
Wert <= 1 -> ja -> Zelle rot
          -> nein -> Wert <= 2 -> ja -> Zelle gelb
                                  nein -> Wert <= 8 -> ja -> Zelle blau
                                                       nein -> Prüfung

Genau.

In dieser Kette geht es weiter mit zB 12, 17, 25 (willkürliche Werte). 
Jetzt muss ich aber zusätzlich zB 18 und 21 prüfen.

Das geht nicht mehr per bedingter Formatierung, das kann maximal 3
Bedingungen handhaben. Bei /mehr/ Fallunterscheidungen musst Du die
Funktion VORLAGE verwenden (siehe Hilfe).

Aber Vorsicht, die Funktion liefert grundsätzlich den /Wert/ 0 zurück; wenn 
Du also ein Textfeld hast, musst Du als Verknüpfungszeichen erstens '&' 
statt '+' verwenden, und zweitens den Rückgabewert durch die Funktion 'T' 
in einen Leerstring umwandeln, sonst wird der Text "0" angehängt (wird 
eigentlich ebenfalls in der Hilfe erklärt, übersieht man aber leicht).

BTW: Wenn Du die Grenzwerte /öfter/ mal ändern willst, würde ich empfehlen,
von vornherein darüber nachzudenken, ob Du die nicht evtl. irgendwo in einer 
Subtabelle ablegen willst, ggf. sogar mit der betreffenden Vorlage, z. B. 
in der Form:

        X       Y       Wertebereich
1       -9999   rot     x < 1,0
2       1       gelb    1,0 <= x < 1,5
3       1,5     blau    1,5 <= x < 1,9
4       1,9     gelb    1,9 <= x < 2,0
5       2       blau    2,0 <= x < 8,0
6       8       grün    x >= 8,0

und dann als Formel einfach

|  ... +VORLAGE(SVERWEIS(AKTUELL();$X$1:$Y$100;2;FALSCH)

verwendest. Das erfordert aber dann zwingend aufsteigende Sortierung der 
Grenzwerte, und etwas Umdenken, denn SVERWEIS liefert immer den 
nachst/kleineren/ Wert, d. h. für z. B. 1,2 (also im Intervall 1,0..1,5)
den Wert 1,0 usw. Deswegen sind die Formatvorlagen sozusagen um eine
Zeile verutscht.

Dann bin ich gezwungen die Kette an zwei Stellen auf zu brechen und die 
Bedingungen zu verschieben. Das umgehe ich, wenn ich auf Intervalle prüfe. 
Dann spielt die Reihenfolge keine Rolle mehr und ich kann die Kette 
jederzeit erweitern.

Folgende Bedingungen verwende ich jetzt:
($2013_April.$D3 >= 1)   UND   ($2013_April.$D3 < 2)          dann gelb

Nochmal: UND ist eine *Funktion*, kein *Operator*. Calc kennt leider
/überhaupt/ keinen Operator für logische Verknüpfungen. Die Formel muss
also zumindest 'UND ($2013_April.$D3 >= 1; $2013_April.$D3 < 2)' lauten.

$2013_April.$D3 < 1                                           dann rot

Hier kann ich jederzeit erweitern um zB
($2013_April.$D3 >= 1,5)   UND   ($2013_April.$D3 < 1,9)      dann blau

in dem ich einfach eine zusätzliche Bedingung definiere, ohne Rücksicht auf 
die Auswertungsreihenfolge zu nehmen und die zweite Bedingung lasse wo sie 
ist und dort anpasse.

Das klappt so nicht, denn (>=1,5 && <1,9) fällt vollständig in das
Intervall (>=1 && <2); d. h. die betreffenden Werte erfüllen bereits
die /erste/ Bedingung, und werden somit /gelb/ dargestellt.

Wolfgang
-- 


-- 
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
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.