calc bedingte Formatierung

Hallo Mitarbeiter und Leser,

seit Stunden versuche ich ein Problem mit der bedingten Formatierung zu lösen.

Version: 6.4.3.2
Build-ID: libreoffice-6.4.3.2-snap1
CPU-Threads: 6; BS: Linux 4.15; UI-Render: Standard; VCL: gtk3;
Gebietsschema: de-DE (de_DE.UTF-8); UI-Sprache: de-DE
Calc: threaded

Ich habe eine Tabelle mit Spalten für Datum. Zeit, Blutdruckwerten und 2xBemerkungen angelegt.
Nun befindet sich die 2. Bemerkungsspalte etwas entfernt von den dazugehörigen Werten. Um die
Zuordnung zu erleichtern sollen die Zeilen, in der eine Bemerkung steht unterstrichen werden. Ich habe dafür die Standardvorlage als Basis mit Rahmenstrich versehen und umbenannt. Das funktioniert
soweit, wenn ich direkt zuweise. Bei der bedingten Formatierung kommt mal ein Strich, mal kommt keiner. Die Formatierung reagiert wenn ich außerhalb der Tabelle Werte eintrage mit Strichen in der
Tabelle, also völlig unrealistisch, obwohl diese Zellen nicht in den Bedingungen abgefragt werden.

Eine Beispieldatei steht bereit. Ich habe aber momentan keine Verbindung zu meiner Dropbox und
kann nicht hochladen. Aber vielleicht hat auch so einer einen Rat für mich! Bitte nichts auf englisch,
dafür bin ich zu dämlich!

VG Bernd

Jetzt habe ich die Beispieldatei hochgeladen:

https://www.dropbox.com/scl/fi/o7skfdk15s20a4gzk2l93/BeispielFormat.ods?dl=0&rlkey=1ylqfrm428op73zinc6lobcc7

VG Bernd

Hallo Bernd,

wenn ich dich richtig verstanden habe, musst du deine Formel in der
Bedingten Formatierung wie folgt anpassen:

LÄNGE($G5:$G201)

bzw.

LÄNGE($F5:$F201)

Viele Grüße
Sven

Hallo Bernd,

vielleicht liefern die Calc-Experten noch bessere Lösungen, aber ich korrigiere mal dein Vorgehen:

1. man kann das in eine Bedingung zusammenführen, wenn man die beiden
    Längen addiert.
2. wieso steht in der Bedingung G5:G201? du willst doch nur je eine
    Zeile auswerten. So wie deine Tabelle aussieht, ignoriert allerdings
    Calc sowieso den Bereich und nimmt nur die erste Zelle.
3. viel wichtiger: deine erste Bedingung hat für A5 auf G5 Bezug
    genommen, für B5 wird dann aber automatisch H5 verwendet, usw. bis
    zu G5, das sich dann auf M5 bezieht. Um die Spalte in der Bedingung
    fest zu halten, musst du ein Dollarzeichen davorsetzen.

Dann sieht die Formel so aus:

LÄNGE($G5)+LÄNGE($F5)

Ist es das, was du suchst?

Gruß
Gerhard

Danke Sven und Gerhard, hat geklappt,
das mit der Summe hatte ich auch schon im Sinn, hat aber wegen der fehlenden "Absolution" $ nicht hingehauen und bin wieder davon abgerückt. Also vielen Dank an alle, die sich Gedanken gemacht haben!

VG Bernd

Danke Sven und Gerhard, hat geklappt,
das mit der Summe hatte ich auch schon im Sinn, hat aber wegen der
fehlenden "Absolution" $ nicht hingehauen und bin wieder davon
abgerückt. Also vielen Dank an alle, die sich Gedanken gemacht haben!

Warum gehtst du überhaupt den Umweg über LÄNGE, und vergleichst nicht
einfach direkt auf einen Leerstring?

Ich hätte das formuliert als eine der folgenden Möglichkeiten

ODER(F5>"";G5>"")
(F5>"")+(G5>"")
(F5&G5>"")

Anmerkungen: In der letzten Variante werden zuerst die beiden
Zellinhalte zu /einem/ String verknüpft, bevor /das/ mit einem
Leerstring verglichen wird. Die zweite Variante liefert genau genommen
keinen Wahrheitswert (macht deine LÄNGE aber auch nicht), sondern eine
Zahl; macht aber nix, Calc wertet alle Werte ungleich Null als WAHR.
Persönlich würde ich jedoch immer die erste Variante bevorzugen, sie ist
IMHO am verständlichsten.

Btw., und ich hätte in so einem Fall auch nicht Unterstreichen gewählt
(oder genauer gesagt einen Teilrahmen), sonderm würde immer einen
farbigen Hintergrund setzen; eine der hellen Farben, z, B, Hellgrau oder
Gelb oder so, damit es nicht so aufdringlich ist. Aber das ist
Geschmackssache.

Wolfgang

Hallo Wolfgang, Bernd,...

Warum gehtst du überhaupt den Umweg über LÄNGE, und vergleichst nicht
einfach direkt auf einen Leerstring?

Ich hätte das formuliert als eine der folgenden Möglichkeiten

> ODER(F5>"";G5>"")
> (F5>"")+(G5>"")
> (F5&G5>"")

Anmerkungen: In der letzten Variante werden zuerst die beiden
Zellinhalte zu /einem/ String verknüpft, bevor /das/ mit einem
Leerstring verglichen wird. Die zweite Variante liefert genau genommen
keinen Wahrheitswert (macht deine LÄNGE aber auch nicht), sondern eine
Zahl; macht aber nix, Calc wertet alle Werte ungleich Null als WAHR.
Persönlich würde ich jedoch immer die erste Variante bevorzugen, sie
ist IMHO am verständlichsten.

Da möchte ich auch noch mal die Funktion GLÄTTEN() in den Raum werfen,
falls man die Tabelle weiter gibt. Ich kenne einige Leute, die Zellen
"löschen" indem sie Leerzeichen hineinschreiben. Mit GLÄTTEN() wird man
diese "überzähligen" Leerzeichen los:

  A1=" "
  B1=" "
  A1&B1=" " (=> Länge=2)
  GLÄTTEN(A1&B1)="" (=> Länge=0)

Gruß,
Michael