Bedingte Formatierung mit Bereichsformeln funktioniert nicht immer

Hallo Listlinge,

In der Tabelle ist ein Bereich mit dem Namen: Multiplikator_OK definiert.
Dort wird überprüft, ob der Wert einer Eingabe Gerade ist.

Weiter werden bedingte Formatierungen angewandt. Dort wird abgefragt, ob der Bereich Multiplikator_OK wahr oder unwahr ist. In Abhängigkeit des Ergebnisses wird dann eine Formatvorlage zugewiesen.

Das funktioniert aber nicht bei allen bedingten Formatierungen!

Der Bereich Multiplikator_OK kann abgefragt werden und liefert immer ein korrektes Ergebnis. Auch eine Abfrage über die WENN() Funktion liefert ein korrektes Ergebnis.

Die Felder, in denen die Zuweisung der Formatvorlage über die bedingte Formatierung nicht funktioniert, bekommen die Veränderung allerdings erst dann mit, wenn sie einmal angewählt werden.

Version: 7.5.3.2 (X86_64) / LibreOffice Community
Build ID: 9f56dff12ba03b9acd7730a5a481eea045e468f3
CPU threads: 8; OS: Windows 10.0 Build 19044; UI render: default; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: CL threaded

Bereiche 03.ods (59,3 KB)

Liebe Grüße

josinoro

Wird wohl ein Bug sein, dass Formeln um 3 Ecken nicht automatisch aktualisiert werden.
Nimm einfach ISTGERADE($D$11) als Formel für die bedingte Formatierung oder halt ={Numerische Berechnung}+STYLE(WENN(ISTGERADE($D$11);"Ergebnis_OK";"Betont3")

Hallo Villeroy,

vielen Dank für Deine Antwort.

Das scheint tatsächlich ein Fehler im Programm zu sein. Die Zuweisung der Formatvorlagen über die Bedingte Formatierung funktioniert in den gleichen Zeilen korrekt.
In allen anderen Bereichen nur, wenn die Zellen einmal angewählt werden!

Befinden sich rechts von der in der bedingten Formatierung anfänglich genannten Zelle in der gleichen Zeile weitere Zellen mit der gleichen bedingten Formatierung, werden diese ebenfalls aktualisiert.

Alle anderen Zellen werden nicht automatisch aktualisiert. Eine Aktualisierung erfolgt erst dann, wenn die jeweilige Zelle einmal angewählt wird. Befinden sich dann rechts von der per Maus angewählten Zelle, also in der gleichen Zeile, ebenfalls weitere Zellen mit der gleichen bedingten Formatierung, werden diese auch wieder aktualisiert.

Die Abarbeitung erfolgt also zeilenorientiert von links nach recht. Aktualisiert man also in einer Zeile per Mausklick eine Zelle, so werden links stehende Zellen mit der gleichen bedingten Formatierung nicht aktualisiert.

Nun lag die Vermutung nahe, dass die in der bedingten Formatierung definierte Reihenfolge der Felder einen Einfluss auf die zuerst aktualisierte Zelle hat. Daraufhin habe ich eine Zelle mit bedingter Formatierung kopiert und vor die zuallererst definierte Zelle auf A3 eingefügt. Die Reihenfolge der Zellen habe ich in dem Dialog der Bedingten Formatierung geändert, sodass A3 als erstes genannt wird. Das hat jedoch kleinen Einfluss auf das Verhalten. Anzunehmen ist, dass die Zellreferenzen intern geführt werden.

Bereiche 04.ods (51,2 KB)

={Numerische Berechnung}&Vorlage(WENN(ISTGERADE($D$11);“Ergebnis_OK”;“Betont3”)

Nein, wenn schon dann +VORLAGE um weiterhin das Ergebnis der numerischen Berechnung zu erhalten (VORLAGE() liefert 0 als Ergebnis). Aber am besten gar nicht verwenden. Tabellenfunktionen.

Den Rückgabewert kannst du verhindern, indem du die Funktion T() verwendest.

={Numerische Berechnung}&T(Vorlage(WENN(ISTGERADE($D$11);“Ergebnis_OK”;“Betont3”))

Dann ist das Ergebnis der Formel immer noch Text statt numerisch und lässt sich in weiteren numerischen Berechnungen nicht verwenden.

Der Rückgabewert ist Null, und Null addiert zu einer numerischen Berechnung macht keinen Unterschied. Wenn die Formel Text zurückgibt dann nimmt man &T(VORLAGE(…)), um die sichtbare Verkettung mit “0” zu vermeiden.

Schon klar, aber da steht ={Numerische Berechnung}… und damit wandelt ein &T(...) die gesamte Formel stattdessen in einen Text Rückgabewert.

Das & alleine macht daraus schon einen Text. Das T verhindert dann nur, dass Vorlage() eine 0 zurückgibt.
PKG_2023-07-03 14 03 51

Kommen wir bitte nochmal auf das ursprüngliche Problem zurück. Ich weiß, dass ich mit der Korrektur angefangen habe …

Kann das beschriebene Verhalten auf anderen Systemen nachvollzogen werden oder ist bei meiner Installation irgendwas quer?

Mein LibreOffice:
Version: 7.5.4.2 (X86_64) / LibreOffice Community
Build ID: 36ccfdc35048b057fd9854c757a8b67ec53977b6
CPU threads: 4; OS: Linux 5.4; UI render: default; VCL: x11
Locale: de-DE (de_DE.UTF-8); UI: en-US
Calc: threaded