Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Sven_1988
Beiträge: 4
Registriert: Mi, 13.04.2016 17:36

Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von Sven_1988 »

Hallo zusammen,

EDIT: Siehe 2. Post von mir für eine Beispieldatei und eine (hoffentlich) etwas direktere und bessere Problemformulierung!

ich habe eine Frage zur bedingten Formatierung. Im Grunde möchte ich nur wissen ob meine aktuelle Lösung gut ist und auch in Zukunft bei mehr Inhalt noch ohne große Performance-Einbußen funktionieren sollte. Ich habe viel rumgelesen und kenne mich schon ein wenig aus, aber das ist zu spezifisch um über Google eine Antwort zu bekommen.

Falls meine Variante nicht gut ist bin bin ich bereit auf große Teile der bedingten Formatierung zu verzichten und habe nur noch eine andere Frage die unten steht.

Ich bin aktuell eine Tabelle für PC-Spiele am erstellen. Es wird am Ende 5 Tabellenblätter geben, die jeweils im unteren Bereich auf die gleiche durch eine Formel berechnete bedingte Formatierung zurückgreifen. Angewendet werden soll die bedingte Formatierung auf irgendwann ca. 45 Spalten und etwa im Schnitt 1000-2000 Zeilen, wie viele Zeilen es mal werden ist noch nicht klar. Die bedingte Formatierung soll auf Spiele angewendet werden die zum einen in der Spielebibliothek und in den entspechenden anderen Blättern vorhanden sind (Beispiel: Spiel XY ist in Bibliothek und auf der Wunschliste, es hat die gleichen Daten die sie sich über einen Sverweis aus der Bibliothek zieht, Ausgang für den Verweis ist der Name in der ersten Spalte).

Als erstes habe ich einfach die Formel in die bedingte Formatierung gepackt und entsprechend auf alle Bereiche angewendet. Die Performance ist natürlich nach 2 Seiten schon total eingebrochen. Ich habe dann noch lange hin und her probiert und bin jetzt zu folgender Lösung gekommen.

Ich berechne in einem Tabellenblatt (Bibliothek) welcher "Status" für das jeweilige Spiel zutrifft, mit dieser Formel

EDIT: Codebox nach Hinweis eingefügt

Code: Alles auswählen

=WENN($G35="";"";WENN(ZÄHLENWENN($'My Library'.$BT$13:INDIREKT(Formulae.$I$3);$BT35)+ZÄHLENWENN($Wishlist.$BT$13:INDIREKT(Formulae.$I$5);$BT35)+ZÄHLENWENN($Uninteresting.$BT$13:INDIREKT(Formulae.$I$7);$BT35)>1;"Multiple Link";WENN(UND($AW35<=$Formulae.$B$2;$AW35<>0);"Released";WENN(UND($AW35>$Formulae.$B$2;$AW35<>"");"Not Released";WENN($K35<>"";"Demo";WENN($AQ35<>"";"Early Access";"BoardersNormal"))))))
Indirekt verwende ich um nur den aktuell genutzten Teil der jeweiligen Tabelle zu durchsuchen (nur zur Info falls es eine bessere Möglichkeit geben sollte, die Ermittlung sieht so aus und wird über

EDIT: Codebox nach Hinweis eingefügt

Code: Alles auswählen

="BT"&Zelle für das Ziel von z. B. Indirekt Formulae.$I$5 usw. ausgegeben)
{=MAX(ISTZAHL($'My Library'.$A$13:INDIREKT(VERKETTEN("$'My Library'.A";Formulae.$H$3)))*ZEILE($'My Library'.$A$13:INDIREKT(VERKETTEN("$'My Library'.A";Formulae.$H$3))))+1}
Jetzt habe ich durch die Formel oben in meiner Bibliothek zB diese Ergebnisse jeweils in einer weiter hinten liegenden Spalte hinter dem jeweiligen Spiel stehen
Spiel 1 BoardersNormal
Spiel 2 Not Released
Spiel 3 Early Access
Spiel 4 Demo

In den anderen 4 Tabellen übernehme ich einfach diesen Wert in die gleich lautende Spalte (z. B. $BS34) hinter dem jeweiligen Spiel mit einem Sverweis und die bedingte Formatierung sieht dann zum Beispiel nur so aus

EDIT: Codebox nach Hinweis eingefügt

Code: Alles auswählen

WENN($G34="";VORLAGE("Standard");VORLAGE($BS34))
Die Vorlagen heißen entsprechend den ausgegbenen Namen.

Frage ist ob das so Sinn macht und ob es zu rechenintensiv ist das auf 5*45*2000=450.000 Zellen anzuwenden. Bzw. am Anfang erst mal auf 5*45*500=112.500 Zellen, ich könnte die Tabelle später downgraden wenn es zu langsam wird.

Wenn es zu rechenintensiv sein sollte würde ich das ganze nur auf 5x3x2000=30.000 Zellen anwenden.

Unabhängig davon würde ich gerne bei beiden Varianten noch abwechselnd farbige (bzw die eine Standard und die andere farbig) Zeilen erzeugen um besser nachvollziehen zu können auf welches Spiel sich der Link am Ende der Tabelle bezieht. Könnte das der Overkill sein wenn Variante 1 prinzipiell möglich wäre?

Wie könnte das dann bei Variante 2 aussehen? Ich nutze ja immernoch irgendwann die 5x45x2000 Zellen, aber dann halt statt mit einer durch den Sverweis ausgegebenen Vorlage mit meiner farbig-nicht farbig-farbig-nicht farbig usw. Formel.

Da habe ich einfach keine Erfahrungswerte wie sich sowas auswirken könnte.

Wenn ich es zu dämlich beschrieben habe bitte Bescheid geben, dann versuche ich es noch mal anders zu formulieren. Ich habe auch im openoffice-forum gepostet, erwarte hier aber eine bessere Resonanz. Werde entsprechend auf die Lösung verweisen.

EDIT: http://www.openoffice-forum.de/viewtopic.php?f=5&t=6981

Vielen Dank schon mal. :)


Gruß
Sven
Zuletzt geändert von Sven_1988 am Sa, 21.05.2016 12:23, insgesamt 2-mal geändert.
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von balu »

Hallo sven,

mal ganz ehrlich, ich werd nicht daraus schlau was Du da so alles geschrieben hast und wo dein Problem ist :roll: . Dein gesamter Text ist so etwas von unleserlich, das einem die Lust vergeht irgendetwas daraus zu fischen.

Ich zumindest weiß nicht welche Formel, oder Formeln in der Bedingten Formatierung steht, weil ich deinen Text nicht verstehe. Und außerdem gehört in solch einem Fall eine Beispieldatei angehängt, damit man weiß was Du wo gemacht hast, ansonsten wird hier nix mit Hilfe.

Also versuchs noch mal neu, und dann nebst der Beispieldatei gehören hier im Text Formeln in die dafür vorgesehenen codes {Code-Tags}.

Code: Alles auswählen

Formel
Egal ob die Formel in der Zelle steht, oder in der Bedingten Formatierung.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
paljass
******
Beiträge: 802
Registriert: Do, 25.10.2012 07:25

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von paljass »

Also versuchs noch mal neu, und
weise auf die Frage im anderen Forum hin ( http://www.openoffice-forum.de/viewtopi ... f7d8c350b8 ), sonst wird das als unhöfliches Crossposting angesehen.

Gruß
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von balu »

Moin Paljass,

bist noch nicht richtig wach?
Sven_1988 hat geschrieben: Ich habe auch im openoffice-forum gepostet
Okay, hätte er deutlicher durch eine Verlinkung angeben können, aber immerhin besser als gar nix. Oder ;-)


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
paljass
******
Beiträge: 802
Registriert: Do, 25.10.2012 07:25

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von paljass »

Moin balu,
hast recht - ich entschuldige mich bei sven :oops:

paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Sven_1988
Beiträge: 4
Registriert: Mi, 13.04.2016 17:36

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von Sven_1988 »

Hallo zusammen,

großes Sorry. Ich hatte eine Vorstellung davon wie ich das ganze strukturiert beschreiben kann und irgendwie ist dann das dabei rausgekommen. Werde mir eure Tipps auf jeden Fall zu herzen nehmen und sowas nicht mehr zwischen Tür und Angel in der Mittagspause posten. Und dann auch mit vernünftiger Verlinkung, Codebox und Beispieldatei. :oops: Habe den Einstiegspost mal korrigiert und eine Beispieldatei erstellt.

Ich denke mit Beispieldatei müsste es kinderleicht zu verstehen sein. Ich versuche das noch mal etwas besser zu beschreiben damit ihr euch den Text oben nicht noch mal antun müsst.

Die Tabelle soll dafür genutzt werden Spiele zu verwalten. Dazu kann man die Details zu den Spielen in der "Steam Library" einfügen. In Spalte BU wird dann geprüft ob es sich um eine Demo handelt, ob das Spiel überhaupt schon released ist usw. In der Beispieldatei habe ich einfach mal Spalte BV als Ergebnisspalte genommen weil bei BU nicht richtig berechnet wird.

Das ist die Grundlage für die bedingte Formatierung mit der ich die Spiele in der jeweiligen Zeile farbig hervorheben möchte. Dazu setze ich in die bedingte Formatierung folgende Formel ein

Code: Alles auswählen

WENN($G34="";VORLAGE("Standard");VORLAGE($BU34))
Steht in BU34 zum Beispiel "Early Access" weil das Spiel ein "x" in der Spalte "Early Access" hat wird durch die Formel die Vorlage("Early Access") verwendet, die Formatvorlagen heißen immer wie das entsprechende Ergebnis.

Die Spiele kann man jetzt natürlich zu seiner eigenen Bibliothek hinzufügen, das passiert über den SVerweis. In dem Blatt "My Library" habe ich das mal beispielhaft so eingefügt. Die Spiele sollen natürlich auch farbig markiert werden, dazu habe ich in Spalte BU in diesem Tabellenblatt einfach das Ergebnis aus dem Blatt "Steam Library" übernommen und dann die gleiche Formel als bedingte Formatierung gesetzt wie oben in der Codebox. Ich hoffe so eine möglichst schlanke Lösung gefunden zu haben weil alles nur 1x durchgerechnet werden muss und dann einfach auf den anderen Blättern übernommen wird. Könnte natürlich auch direkt auf das Ergebnis in der "Steam Library" verweisen, hab ich eher der Übersicht halber so gelöst wie jetzt.

Das funktioniert auch super soweit. Ich habe mittlerweile einiges an Arbeit da reingesteckt und möchte die Datei für andere zum Download anbieten, deswegen auch der englische Text. Ich möchte natürlich vermeiden, dass jemand dann Performance-Probleme bekommt sobald er viele Spiele einfügt. Deswegen möchte ich wissen ob es mit dieser Methode zu aufwendig ist um das für jweils 1000 oder mehr Zeilen zu berechnen. Jetzt sind zum Beispiel schon 200 Spiele in der Steam Library und die sind alle zu einer von den anderen Seiten zugeordnet. Die bedingte Formatierung würe ich ja dann auf alle 4 Blättern (My Library, Wishlist, Uninteresting und Steam Library) entsprechend anwenden.

Wenn es auf die Weise zu Performance-Problemen kommen wird, würde ich nur die ersten 3-4 Spalten auf diese Weise farbig hervorheben und die restlichen Spalten nicht um Rechenleistung zu sparen. Oder wenn ihr einen Tipp habt wie es besser funktionieren würde auf diese Weise.

Dann würde ich noch gerne, unabhängig welche von den beiden Varianten (Variante 1: alle Spalten hervorheben / Variante 2: nur die ersten 3-4 farbig hervorheben) ich nutzen werde, die Zeilen abwechselnd farbig hervorheben wenn sie nicht durch den Status schon farbig hervorgehoben wird um den Lesefluss zu verbessern. Zum Beispiel
grau
Demo (gelb)
grau
weiß
Early Access (Cyan)
weiß
grau
usw.

Momentan sieht man bei mehreren weißen Zeilen hintereinander relativ schlecht zu welchem Spiel der Link ganz hinten überhaupt gehört, das möchte ich damit vermeiden. Wenn es viel Performance einspart würde ich die Zeilen einfach abwechseln ohne bedingte Formatierung einfärben. Sieht dann zwar was doof aus aber Hauptsache die Performance bleibt gut. Lieber wäre mir nur die aktuell genutzten Zeilen per bedinger Formatierung zu färben.

Ich habe halt die Befürchtung, dass dadurch die Performance wieder zu schlecht werden könnte wenn ich das auf 4 Blätter anwende.

Ich hoffe das ist diesmal verständlicher, irgendwie tue ich mich teilweise schwer damit sowas auf den Punkt zu bringen. Wenn es noch zu unklar ist bitte noch mal Bescheid geben, aber ich denke mit der Beispieldatei sieht man sehr schnell worum es mir geht.

Mir fehlt einfach ein Erfahrungswert für sowas, ich habe noch nie so viele Zellen mit bedingter Formatierung gefärbt. Wenn ich die Datei nicht anderen zur Verfügung stellen würde, wäre es relativ egal weil ich es irgendwann merken und entsprechend anpassen würde. Aber so würde ich vorher gerne mal eure Einschätzung dazu hören damit sich später Leute nicht mit ewig langen Berechnungszeiten rumschlagen müssen.

Vielen Dank noch mal und schon mal. :-)

Gruß
Sven
Dateianhänge
Beispieldatei.ods
(24.3 KiB) 60-mal heruntergeladen
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von balu »

Ave sven,

ja jetzt wird einiges klarer. :D

Code: Alles auswählen

WENN($G34="";VORLAGE("Standard");VORLAGE($BU34))
Als ich das sah, dachte ich erst warum Du das nicht in die Formel in der Zelle integrierst. Aber das geht ja gar nicht, weil da keine Formel drin steht, sondern nur Text, zumindest wie ich das auf den ersten Blick sehen konnte.

Und dadurch wurde mir jetzt auch dein Problem verständlich, welches wie folgt lautet.

Wie kann ich mit der Bedingten Formatierung mehr als nur 3 Bedingungen anwenden?

Und diese Problem ist ein alt bekanntes, wofür es aber eine andere Lösung gibt, als mit VORLAGE in der Bed-For zu arbeiten. Und die Lösung lautet: mottco

Mit mottco hast Du die Möglichkeit mehr als nur 3 Bedingungen in der Bedingten Formatierung anzuwenden. Die vorhandene wird nicht ergänzt oder erweitert, sondern es wird ein neuer Eintrag im Menü erstellt, da mottco ein eigenständiges StarBasic Programm ist.
http://www.calc-info.de/makros.htm#mottco

Jetzt sieh erstmal zu das Du mottco installierst bekommst, und mach dich damit ein wenig vertraut.

Auch wenn Du die Datei später dann mal anderen zur Verfügung stellst, werden die dann keine Probleme mit der Datei haben wenn sie nicht mottco installiert haben.

Da ich jetzt nicht mehr so viel Zeit habe, komme ich zum Schluß. Dein anderes Problem muss noch ein wenig warten (die richtige Vorlage auswählen).



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Sven_1988
Beiträge: 4
Registriert: Mi, 13.04.2016 17:36

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von Sven_1988 »

Nein, tut mir leid. Ich glaube ich habe es wieder unverständlich formuliert. Es geht mir nicht um die Anzahl der Bedingungen. Ich habe schon sehr viele Vorlagen mit der WENN Formel verschachtelt als einen Eintrag in der bedingten Formatierung angelegt. Mottco habe ich auch, das ist alles kein Problem.

Mir geht es eher darum ob die Performance bei meiner Lösung noch gegeben ist wenn es viel mehr Zeilen mit Inhalt werden. Für mich sieht meine Lösung wenig rechenintensiv aus weil ich den Vorlagenname für jedes Spiel nur in dem Tabellenblatt Steam Library jeweils einmal ermitteln lasse und die bedingte Formatierung dadurch auch sehr schlank ist. Ich habe noch nie eine bedingten Formatierung auf so vielen Zellen angewendet und habe Sorge, dass die Performance irgendwann sehr schlecht wird.

Und ich würde halt gerne immer abwechselnd die Zeilen färben damit man besser erkennt zu welchem Spiel welcher Inhalt in den letzten Spalten gehört. Auch wieder die Frage ob das bei später 450.000 Zellen auf die es angewendet wird zu ewigen Berechnungszeiten führt. Ich vermute nicht, aber wie gesagt, ich habe noch nie so viele Zellen mit bedingter Formatierung versehen.

Wenn das so pauschal nicht zu beantworten ist kann ich mir das natürlich alles mal zusammenbasteln und probieren, aber da ich schon so oft alles umgeschmissen habe und versucht habe eine bessere Lösung zu finden wollte ich diesmal erst mal nachfragen ob mir das vielleicht jemand sagen kann.

Ich komme sonst auch super mit Infos raussuchen zurecht, wurde ja schon fast alles mal so oder ähnlich gefragt. Wer Sachen postet wie "Wie kriege ich mehr als 3 Bedingungen in eine bedngte Formatierung?" ist einfach nur zu faul sich bei Google durch ein paar Treffer zu klicken. Ich bin gerade einige Makros am Erstellen und selbst da kann man sich alles anlesen. Aber zu der Rechenzeit bei der bedingten Formatierung kann ich so speziell nichts finden.

Gruß
Sven
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von balu »

Hallo Sven,

Du hast ja noch ein Problem im Tabellenblatt *Steam Library*, und zwar in der Spalte BU, genauer gesagt im Zellbereich BU13:BU19. Dort hastDu in BU13 folgende Formel.

Code: Alles auswählen

=WENN($G13="";"";WENN(ZÄHLENWENN($'My Library'.$BT$13:INDIREKT(Formulae.$I$3);$BT13)+ZÄHLENWENN($Wishlist.$BT$13:INDIREKT(Formulae.$I$5);$BT13)+ZÄHLENWENN($Uninteresting.$BT$13:INDIREKT(Formulae.$I$7);$BT13)>1;"Multiple Link";WENN(UND($AW13<=$Formulae.$B$2;$AW13<>0);"Released";WENN(UND($AW13>$Formulae.$B$2;$AW13<>"");"Not Released";WENN($K13<>"";"Demo";WENN($AQ13<>"";"Early Access";"BoardersNormal"))))))
 
Ich musste sie erstmal richtig auseinanderpflücken, um zu verstehen was wo wie funktionieren soll.

Also Du willst einen dynamischen Zellbereich abfragen, der eine feste Startposition, aber eine variable Endposition hat. Und deshalb arbeitest Du mit INDIREKT.

Das Du aber mit dieser Formel eine Fehlermeldung bekommst, ist eigentlich schon fast logisch. Denn Du setzt INDIREKT wie folgt ein.

Code: Alles auswählen

INDIREKT(Formulae.$I$3)
 
Und das ist Falsch.
Richtig ist nämlich.

Code: Alles auswählen

INDIREKT("Formulae.$I$3")
 
Da der Indirekte Zellbezug aber immer in Textform vorliegen MUSS, also in deinem Falle in doppelten Anführungszeichen, kannst Du dir auch die Dollarzeichen $ sparen. Denn beim runterziehen oder kopieren der Formel wird der Zellbezug in Textform nicht automatisch mit angepasst. Und in folge dessen kannst Du das also auch so schreiben.

Code: Alles auswählen

INDIREKT("Formulae.I3")
 
Und aus irgendeinen Grund musst Du dich wohl beim erstellen der Formel vertan haben, da im Tabellenblatt *Formulae* in der Spalte I keine Zahlen (Werte) stehen, sondern Text wie z.B. "BTMy Library". Oder Du hast eine Änderung vorgenommen und nicht bedacht das die Formel dementsprechend angepasst werden muss. Egal, weiter im Text.

Selbst wenn Du in der gezeigten Formel alle INDIREKT so abänderst wie gezeigt, wird die Formel nicht ordnungsgemäß funktionieren. Und deshalb zeige ich dir jetzt wie die Formel auszusehen hat, nach dem was ich so verstanden habe, nämlich das Du die Daten aus der Spalte H haben willst.

Code: Alles auswählen

=WENN($G13="";"";WENN(ZÄHLENWENN($'My Library'.$BT$13:INDIREKT("Formulae.H3");$BT13)+ZÄHLENWENN($Wishlist.$BT$13:INDIREKT("Formulae.H5");$BT13)+ZÄHLENWENN($Uninteresting.$BT$13:INDIREKT("Formulae.H3");$BT13)>1;"Multiple Link";WENN(UND($AW13<=$Formulae.$B$2;$AW13<>0);"Released";WENN(UND($AW13>$Formulae.$B$2;$AW13<>"");"Not Released";WENN($K13<>"";"Demo";WENN($AQ13<>"";"Early Access";"BoardersNormal"))))))
 
Diese Formel kannst Du nehmen und im Tabellenblatt *Steam Library* in BU13 einsetzen und nach unten kopieren.


So, und nun zu dem Thema Performance.

Erfahrungsbericht meinerseits.
Ich hatte mal einen Kalender erstellt, der vollgestopft war mit Bedingten Formatierungen. Bei "kleineren" dateien war das auch alles kein Problem, aber bei diesem Kalender wurde das zu einem Problem. Er war dabei wie folgt aufgebaut.

Pro Tag 3 x 2 Zellen, also 6 Zellen insgesamt pro Tag. Und das mal 366 macht also 2196 Zellen.

Zum Einsatz in der Bed-For kamen z.B.

Code: Alles auswählen

ODER(WOCHENTAG(F3;2)=6;WOCHENTAG(F3;2)=7)
 
oder

Code: Alles auswählen

ZÄHLENWENN($Kalender.$E$1:$L$1;ZÄHLENWENN($Feiertage.$A$3:$A$202;F3)+SUMMEWENN($Feiertage.$A$3:$A$202;F3;$Feiertage.$B$3:$B$202))
 
Wie gesagt, nur ein kleines Beispiel. Aber mit meinem damaligem PC (vor 9 Jahren) merkte ich schon wie er daran zu knabbern hatte, was mit meinem jetzigen 4*3,2 GHz gar nicht so wirklich auffällt. Und erst als ich daher geganngen war und fast alles was in der Bed-For stand in die Zellen zu verlagern, ging der Kalender "ab wie Schmitz Katze". Er wurde also wahrlich bedeuten schneller.

Du siehst also, auch ich habe meine Fehler gemacht.

Du stehst jetzt aber vor einem anders gelagerten Problem. Denn Du arbeitest ja fast ohne Formeln. Und die paar Zellen wo Formeln drin stehen machen den Kohl auch nicht mehr Fett.

Aber die Funktionsweise einer Bedingten Formatierung hast Du wohl anscheind noch nicht so wirklich begriffen, und deshalb noch mal ein kleiner Crash-Kurs.

Wenn die Bed-For nur eine (1) Bedingung hat und zwar mit was ganz simplen;
1. Bedingung:
Zellwert ist: gleich: 5
Zellvorlage: Beispiel
Dann wird die Zellvorlage NUR DANN, und zwar ausdrücklich NUR DANN angewendet, wenn der Zellwert 5 ist. Wenn der Zellwert nicht 5 ist, wird auch KEINE Zellvorlage angewendet.

Und das heißt, wenn die dementsprechende Zelle von Hand auf einen Grünen Zellhintergrund formatiert wurde, und die Zellvorlage auf einen Hellroten Zellhintergrund eingestellt wurde, wird die Zelle Hellrot wenn der Zellwert 5 ist. Und wenn der Zellwert nicht 5 ist, so wird die Zelle wieder Grün.

Und deshalb solltest Du deine Formel in der Bed-For dementsprechend ändern, und zwar so.

Code: Alles auswählen

($G13<>"")+(VORLAGE($BU13))
JA! Genau so sieht die Formel aus. Nicht mehr, und nicht weniger.
Und als Zellvorlage wählst Du die Standard aus, damit immer diese angewendet wird falls die Bedingung nicht zutrifft.

Ob sich jetzt diese Formel in der Bedingten Formatierung bei dir positiv bemerkbar macht, weiß ich nicht, konnte ich nicht gegentesten.

Viel Glück und Erfolg.



Aber einen Rüffel muss ich dir dennoch verpassen.
Es ist schon eine Frechheit im Nachhinein deinen Eröffnungsbeitrag zu ändern :twisted: . Denn so wird allein schon mein erster Beitrag aus jedem Zusammenhang gerissen. Aber dabei solls jetzt auch bleiben, habe nämlich keinen Bock mehr mich deswegen aufzuregen. Jedoch möchte ich eine Rückmeldung von dir haben ob Du jetzt mit meinen Änderungen zu frieden bist.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von balu »

Ergänzung!

Da ich ja absolut kein Freund von VORLAGE in der Bedingten Formatierung bin (und ich persönlich finde das auch als Schwachsinn), fehlen mir da gewisse Erfahrungswerte. Und eine eben gemachte Erfahrung will ich gleich mal weiterreichen.

Für die 1. Bedingung ist diese Formel i.O.

Code: Alles auswählen

($G13<>"")+(VORLAGE($BU13))
Aber da ja jetzt VORLAGE im Spiel ist, welche eine besondere eigene Regel hat, muss jetzt noch eine 2. Bedingung herhalten die die erste angewendete VORLAGE wieder aufhebt. Und deshalb:
2. Bedingung:

Code: Alles auswählen

($G13="")+(VORLAGE("Standard"))
Die besondere eigene Regel von VORLAGE lautet (ist meine interpretation).
Wurde einmal VORLAGE angewendet, dann bleibt sie auch bestehen. Sie kann nur durch eine andere VORLAGE aufgehoben werden.

Jetzt noch mal zurück zu der eben genannten 2. Bedingung.
Falls Du jetzt meinst:

"Ist doch idiotisch. Mit meiner Ursprünglichen Formel geht das doch viel einfacher. Und ich brauche auch nur eine Bedingung."

So sei dir gesagt, das Du unrecht hast, und liegst voll daneben.
Begründung:
Ich habe deine Formel in der Bed-For in den Tabellenblättern *My Library* und *Steam Library* durchgehend im Zellbereich 'My Library.G18:BE24' und 'Steam Library.G13:BE19' angewendet.
Dann habe ich mir den Taskmanager hervorgeholt und die CPU-Auslastung angeschaut.
Ergebnis: 2 - 3% Auslastung (im Schnitt ehern 3%), und das auf mehrere Minuten.

Dann habe ich eine Kopie von der Datei genommen, und in den genannten Zellbereichen meine Bed-For mit den 2 Bedingungen angewendet. Auch hier wieder die CPU-Auslastung beobachtet.
Ergebnis: 1 - 2% Auslastung (im Schnitt ehern 2%), und das auf mehrere Minuten.

Wenn ich in beiden Fällen das "Automatisch berechnen" (Extras - Zellinhalte) deaktiviere, geht die CPU-Auslastung auf 0 - 1% runter.

Auch wenn es sich nur um wenige Prozente bei der CPU-Auslastung handelt, so ist das schon recht viel bei nur 714 Bedingten Formatierungen. Denn zum gegenvergleich habe ich mal einen Kalender von mir genommen der wohl "nur" 1096 Bedingte Formatierungen hat, aber mit den von mir im vorigen Beitrag genannten Formeln in der Bed-For ausgestattet ist. Und da zeigt mir die CPU-Auslastung 0 - 1%.


So, und nun haben wir mal eine Vergleichsbasis geschaffen, die im moment schon recht viel über die Performance aussagt, wenn Du weiterhin bei der Anwendung der VORLAGE in der Bed-For bleibst. Denn ich kann mir sehr gut vorstellen das die CPU-Auslastung stark ansteigen wird, je mehr angewante Bed-For bei dir zum tragen kommen. Die momentan 714 sind nur die Spitze des Eisbergs. Und wenn Du das um den Faktor 3 erhöhst, dann sag mir bescheid was dann dabei rauskommt bei der CPU-Auslastung.


Auch wenn es anfangs viel Arbeit macht, so würde ich nicht mit VORLAGE arbeiten, sondern mit mottco. Und dort gibst Du dann ein:
Formel ist: $G13<>"" Zellvorlage: BoardersNormal
Formel ist: $G13<>"" Zellvorlage: Early Access
Formel ist: $G13<>"" Zellvorlage: ListArea
etc. etc. ...

Und in diesem Zusammenhang.
Ich bin gerade einige Makros am Erstellen und selbst da kann man sich alles anlesen.
Na Prima!
Dann kanst Du dir ja gleich mal ein Praxisbezogenes Makro basteln welches dir die eben genannte Arbeit abnimmt, indem Du das erstellen der Berdingten Formatierung per Makro erledigen lässt. Und hier mal gleich ein Link zum Einsteigen.
7.1.20 Wie kann man eine bedingte Formatierung einfügen?



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Sven_1988
Beiträge: 4
Registriert: Mi, 13.04.2016 17:36

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von Sven_1988 »

Hallo balu,

erstmal vielen, vielen Dank für die ganze Arbeit die du dir gemacht hast! Echt toll, mit so einer umfangreichen Antwort habe ich nicht gerechnet. Kann einiges erst Donnerstag ausprobieren weil ich die nächsten zwei Tage keine Zeit habe, aber wollte schon mal kurz antworten und mich vor allem bedanken.
balu hat geschrieben:Hallo Sven,

Du hast ja noch ein Problem im Tabellenblatt *Steam Library*, und zwar in der Spalte BU, genauer gesagt im Zellbereich BU13:BU19. Dort hastDu in BU13 folgende Formel.

Code: Alles auswählen

=WENN($G13="";"";WENN(ZÄHLENWENN($'My Library'.$BT$13:INDIREKT(Formulae.$I$3);$BT13)+ZÄHLENWENN($Wishlist.$BT$13:INDIREKT(Formulae.$I$5);$BT13)+ZÄHLENWENN($Uninteresting.$BT$13:INDIREKT(Formulae.$I$7);$BT13)>1;"Multiple Link";WENN(UND($AW13<=$Formulae.$B$2;$AW13<>0);"Released";WENN(UND($AW13>$Formulae.$B$2;$AW13<>"");"Not Released";WENN($K13<>"";"Demo";WENN($AQ13<>"";"Early Access";"BoardersNormal"))))))
 
Ich musste sie erstmal richtig auseinanderpflücken, um zu verstehen was wo wie funktionieren soll.

Also Du willst einen dynamischen Zellbereich abfragen, der eine feste Startposition, aber eine variable Endposition hat. Und deshalb arbeitest Du mit INDIREKT.
Ich wünschte auf die einfache aber präzise Beschreibung wäre ich auch gekommen. :oops: Genau darum geht es mir, sorry für die komplizierte Formulierung.
balu hat geschrieben: Da der Indirekte Zellbezug aber immer in Textform vorliegen MUSS, also in deinem Falle in doppelten Anführungszeichen, kannst Du dir auch die Dollarzeichen $ sparen. Denn beim runterziehen oder kopieren der Formel wird der Zellbezug in Textform nicht automatisch mit angepasst. Und in folge dessen kannst Du das also auch so schreiben.

Code: Alles auswählen

INDIREKT("Formulae.I3")
 
Und aus irgendeinen Grund musst Du dich wohl beim erstellen der Formel vertan haben, da im Tabellenblatt *Formulae* in der Spalte I keine Zahlen (Werte) stehen, sondern Text wie z.B. "BTMy Library". Oder Du hast eine Änderung vorgenommen und nicht bedacht das die Formel dementsprechend angepasst werden muss. Egal, weiter im Text.

Selbst wenn Du in der gezeigten Formel alle INDIREKT so abänderst wie gezeigt, wird die Formel nicht ordnungsgemäß funktionieren. Und deshalb zeige ich dir jetzt wie die Formel auszusehen hat, nach dem was ich so verstanden habe, nämlich das Du die Daten aus der Spalte H haben willst.
Sowas blödes, ich habe meinen Fehler in der Beispieldatei gerade gefunden. Ich habe in "Formulae"

Code: Alles auswählen

="BT"&F5
statt

Code: Alles auswählen

="BT"&F6
usw. genommen. Dadurch kam das natürlich komplett sinnfreie "BTMyLibrary" anstatt "BT25" Ich habe mal eine korrigierte Beispieldatei in den Anhang gepackt wo ich nur in Formulae diese 3 Werte geändert habe. Damit funktioniert allerdings auch meine Formel. Ich will damit nicht sagen, dass sie so richtig oder sinnvoll ist, aber sie funktioniert auch ohne Anführungszeichen bei INDIREKT. Liegt wahrscheinlich an dem in Anführungszeichen gesetzten "BT" vor dem &F6. Wird auch mit ISTTEXT als WAHR ausgegeben.
balu hat geschrieben:

Code: Alles auswählen

=WENN($G13="";"";WENN(ZÄHLENWENN($'My Library'.$BT$13:INDIREKT("Formulae.H3");$BT13)+ZÄHLENWENN($Wishlist.$BT$13:INDIREKT("Formulae.H5");$BT13)+ZÄHLENWENN($Uninteresting.$BT$13:INDIREKT("Formulae.H3");$BT13)>1;"Multiple Link";WENN(UND($AW13<=$Formulae.$B$2;$AW13<>0);"Released";WENN(UND($AW13>$Formulae.$B$2;$AW13<>"");"Not Released";WENN($K13<>"";"Demo";WENN($AQ13<>"";"Early Access";"BoardersNormal"))))))
 
Diese Formel kannst Du nehmen und im Tabellenblatt *Steam Library* in BU13 einsetzen und nach unten kopieren.
Top, vielen Dank! Das sieht auf jeden Fall nach einer deutlich besseren Lösung aus als meine. Da wäre ich nie drauf gekommen, großer Denkfehler bei INDIREKT. Habe es auch gerade schon mal scghnell runtergezogen und es funktioniert natürlich perfekt.
balu hat geschrieben: Wie gesagt, nur ein kleines Beispiel. Aber mit meinem damaligem PC (vor 9 Jahren) merkte ich schon wie er daran zu knabbern hatte, was mit meinem jetzigen 4*3,2 GHz gar nicht so wirklich auffällt. Und erst als ich daher geganngen war und fast alles was in der Bed-For stand in die Zellen zu verlagern, ging der Kalender "ab wie Schmitz Katze". Er wurde also wahrlich bedeuten schneller.

Du siehst also, auch ich habe meine Fehler gemacht.

Du stehst jetzt aber vor einem anders gelagerten Problem. Denn Du arbeitest ja fast ohne Formeln. Und die paar Zellen wo Formeln drin stehen machen den Kohl auch nicht mehr Fett.
Das verstehe ich ehrlich gesagt nicht ganz, warum ist das ein Problem? Verstehe nicht so richtig worauf du damit hinaus möchtest.

Zuerst hatte ich in der bedingten Formatierung als eine Bedingung diese Formel hinterlegt

Code: Alles auswählen

WENN('My Library'.$G33="";VORLAGE("Standard");WENN(ZÄHLENWENN('My Library'.$BT$13:$BT$1000;'My Library'.$BT33)+ZÄHLENWENN(Wishlist.$BT$13:$BT$1000;'My Library'.$BT33)+ZÄHLENWENN(Uninteresting.$BT$13:$BT$1000;'My Library'.$BT33)>1;VORLAGE("Multiple Link");WENN(UND($AU33<=Formulae.$B$2;$AU33<>0);VORLAGE("Released");WENN(UND($AU33>Formulae.$B$2;$AU33<>0);VORLAGE("Not Released");WENN($I33<>"";VORLAGE("Demo");WENN($AO33<>"";VORLAGE("Early Access");WENN($BB33<>"";VORLAGE("Other Sources");VORLAGE("Boarders Normal"))))))))
Dadurch ist die Tabelle aber extrem schnell extrem lahm geworden weil Calc für jede Zelle immer wieder berechnen muss welche Bedingung zutrifft. Deswegen habe ich auf die aktuelle Formel umgestellt um das ganze nur 1x in der Steam Library abfragen zu müssen.

Mottco habe ich ja wie gesagt auch im Einsatz und bin sehr begeistert davon. Ich habe es in diesem Fall nicht benutzt weil ich die Datei ja für andere zugänglich machen möchte. Ich habe zwar im Internet gesucht aber dazu keine Info gefunden. Meine Befürchtung war, dass die Bedingungen dann nur funktionieren wenn mottco installiert ist und man kann natürlich keinem zumuten sich irgendwelche addons zu ziehen nur um die Tabelle richtig nutzen zu können wenn es auch anders geht. Würde das denn funktionieren? Weil ich kann mottco weder in die Datei integrieren noch erzeugt mottco sowas wie ein Makro das zum Beispiel der Alternative von Dannenhoefer aussieht und so über die Datei mitgegeben werden kann. Wollte dafür aber auch nicht extra wieder einen Beitrag aufmachen. :-/ Wenn es trotzdem, wie auch immer, bei anderen richtig dargestellt wird ist mottco auf jeden Fall wieder eine Option.

Bei Dannenhoefer habe ich ehrlich gesagt danach mehr Fragezeichen im Kopf als vorher. Ich verstehe nicht so recht wie das ganze funktionieren soll. Wird automatisch bei einer Änderung der Zelle die bedingte Formatierung neu berechnet oder muss man das Makro anstoßen damit es das tun kann? Über einen Listener der alle betreffenden Zellen überwacht? Da habe ich letztens was probiert und die Reaktionszeit war extrem langsam. Oder macht das Sinn es über ein Ereignis anzustoßen, zum Beispiel Tabellenereignisse und dann Formel/Inhalt geändert?

Sollte mottco auch auf anderen PC´s ohne mottco funktionieren würde ich es wahrscheinlich der Bequemlichkeit halber darüber machen sofern es nicht deutlich langsamer ist als die Methode über das Makro. Könnte mir gut vorstellen, dass mottco quasi das macht was man so manuell in das Makro schreiben würde, also quasi nur eine nutzerfreundliche Bedienoberfläche bietet. Dazu habe ich aber leider auch nichts gefunden. Weißt du das zufällig?
balu hat geschrieben:Aber die Funktionsweise einer Bedingten Formatierung hast Du wohl anscheind noch nicht so wirklich begriffen, und deshalb noch mal ein kleiner Crash-Kurs.

Wenn die Bed-For nur eine (1) Bedingung hat und zwar mit was ganz simplen;
1. Bedingung:
Zellwert ist: gleich: 5
Zellvorlage: Beispiel
Dann wird die Zellvorlage NUR DANN, und zwar ausdrücklich NUR DANN angewendet, wenn der Zellwert 5 ist. Wenn der Zellwert nicht 5 ist, wird auch KEINE Zellvorlage angewendet.

Und das heißt, wenn die dementsprechende Zelle von Hand auf einen Grünen Zellhintergrund formatiert wurde, und die Zellvorlage auf einen Hellroten Zellhintergrund eingestellt wurde, wird die Zelle Hellrot wenn der Zellwert 5 ist. Und wenn der Zellwert nicht 5 ist, so wird die Zelle wieder Grün.

Und deshalb solltest Du deine Formel in der Bed-For dementsprechend ändern, und zwar so.

Code: Alles auswählen

($G13<>"")+(VORLAGE($BU13))
JA! Genau so sieht die Formel aus. Nicht mehr, und nicht weniger.
Und als Zellvorlage wählst Du die Standard aus, damit immer diese angewendet wird falls die Bedingung nicht zutrifft.

Ob sich jetzt diese Formel in der Bedingten Formatierung bei dir positiv bemerkbar macht, weiß ich nicht, konnte ich nicht gegentesten.

Viel Glück und Erfolg.
Erwischt, das ist ehrlich gesagt so eine Sache mit der ich mich nicht beschäftigen wollte. Für mich war es bequemer die quasi endgültige "Sonst"-Bedingung mit in die Formel zu integrieren. Ist aber irgendwo dämlich weil die Funktion ja angeboten wird und so ins Leere läuft. Werde die Formel am Donnerstag korrigieren und deine zweite Formel mit anwenden.
balu hat geschrieben:Aber einen Rüffel muss ich dir dennoch verpassen.
Es ist schon eine Frechheit im Nachhinein deinen Eröffnungsbeitrag zu ändern :twisted: . Denn so wird allein schon mein erster Beitrag aus jedem Zusammenhang gerissen. Aber dabei solls jetzt auch bleiben, habe nämlich keinen Bock mehr mich deswegen aufzuregen. Jedoch möchte ich eine Rückmeldung von dir haben ob Du jetzt mit meinen Änderungen zu frieden bist.
Tut mir sehr leid, es war nicht meine Absicht den Zusammenhang kaputt zu machen. Dachte durch das "EDIT: Siehe 2. Post von mir für eine Beispieldatei und eine (hoffentlich) etwas direktere und bessere Problemformulierung!" und das "EDIT: Codebox nach Hinweis eingefügt" wird deutlich, dass ich das erst nach deinem Hinweis geändert habe und so jedem klar ist warum du das geschrieben hast. Fand es eher unhöflich das unkorrigiert so stehen zu lassen obwohl mir gesagt wurde wie es richtig ist. Besonders weil es sonst für alle die es in Zukunft lesen dann auch schwer lesbar ist. War auf jeden Fall überhaupt nicht meine Absicht, dass dein Kommentar dadurch kaputt gemacht wird, habe es eher aus Respekt und Höflichkeit geändert.

Gruß
Sven
Dateianhänge
Beispieldatei korrigiert.ods
(24.94 KiB) 59-mal heruntergeladen
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Ist die Lösung für die bedingte Formatierung gut? Oder wird Performance (evtl.) zu schlecht?

Beitrag von balu »

Hallo Sven,

Danke für deine Lobende Worte. :D
Das verstehe ich ehrlich gesagt nicht ganz, warum ist das ein Problem? Verstehe nicht so richtig worauf du damit hinaus möchtest.
Ich wollte damit sagen, das Formeln, und vor allem umfangreichere Formeln, einfach nicht in eine Bed-For gehören. Das hattest Du ja auch schon festgestellt. Stellenweise kann man aber auch auf die Bed-For verzichten, wenn man in der Zellformel mit =VORLAGE() arbeitet, so wie Du es auch schon versucht hattest. Und mit soclchen Zellformeln habe ich nicht nur einen Kalender erstellt, der ohne jegliche Bed-For auskam. Das ist bei einem Kalender auch überhaupt gar kein Problem, da in den einzelnen Zellen Formeln zur Berechnung drinstehen, wo man dann einfach =VORLAGE() nit integriert.

Bei dir kann man aber in den allermeisten Fällen keine =VORLAGE() in der Zelle integrieren, da dort von Hand iregendetwas eingetragen wird. Denn eine Zelle kann entweder nur Handeintragungen haben, oder Formeln. Beides kann man nicht kombinieren. Und das ist das "anders gelagerte Problem". Verstehst Du es jetzt besser?


Mottco habe ich ja wie gesagt auch im Einsatz und bin sehr begeistert davon. Ich habe es in diesem Fall nicht benutzt weil ich die Datei ja für andere zugänglich machen möchte. Ich habe zwar im Internet gesucht aber dazu keine Info gefunden. Meine Befürchtung war, dass die Bedingungen dann nur funktionieren wenn mottco installiert ist und man kann natürlich keinem zumuten sich irgendwelche addons zu ziehen nur um die Tabelle richtig nutzen zu können wenn es auch anders geht. Würde das denn funktionieren?
Da kann ich dich absolut beruhigen, auch ohne Mottco auf einem anderen Rechner wird dann die Bedingte Formatierung funktionieren. Und das wahrlich dolle an der ganzen Sache ist, eine Calc-Datei wo die Bedingte Formatierungen mit mottco erstellt wurde und als .xls gespeichert wird, funktioniert auch unter Excel. Hatten wir hier mal getestet. Unser Moderator Stephan ist ja der Programmierer davon, und er kann dir das notfalls auch bestätigen. Wie gesagt, die Bed-For funktioniert dann auch in Excel, jedoch kann man sie dort nicht ändern (zumindest bis Excel 2003, ab 2007 mit mehr als 3 Bedingungen in der Berd-For sieht das aber schon wieder anders aus), und in anderen AOO (oder OOo) ohne mottco kann man sie auch nicht ändern, aber sie funktioniert.

Falls Du deine Datei auch Excel Usern zur Verfügung stellen willst, so muss ich dich schon jetzt warnen: In diesem Falle musst Du Abstand von VORLAGE nehmen, egal ob in einer Formelzelle oder in der Bed-For. Denn VORLAGE gibt es nicht in Excel, was zu Fehlermeldungen und funktionseinschränkungen der Datei führt.

Tut mir sehr leid, es war nicht meine Absicht den Zusammenhang kaputt zu machen.
Ist schon gut. Hatte mich ja nur kurzzeitig geärgert.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten