Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Farbskala // Bedingte Formatierung

Farbskala // Bedingte Formatierung
19.04.2013 21:43:35
Björn
Moin zusammen,
vielleicht kann mir jemand bei meinem kleinen Problem, etwas unter die Arme greifen. Ich verzweifel so ein bissl grade.
Thematik:
Ich möchte eine Farbskala auch auf eine Zelle mit Textinhalt legen.
Leider funktiert dies anscheinend nur mit Wertformaten.
Ergo, habe ich mir eine Farbskala von 1-15 erstellt.
Um dann die einzelnen Farben, separat als bedingte Formatierung zu hinterlegen.
Sprich, sozusagen 15 bedingte Formatierungen, farblich abgestuft. Vorlage vorgenannte Farbskala.
1. Frage gibt es evtl. eine einfachere Lösung auf eine Zelle mit Textinhalt eine Farbskala zu legen.
2. Wie kann ich die einzelnen Farbwerte (Rot,Grün,Blau) einer Farbskala auslesen.
Anfangs, Mittel, und Endwert lassen sich noch in dem Dialog der Farbskala ablesen.
Alles dazwischen leider nicht.
bsp Datei ist beigefügt.
https://www.herber.de/bbs/user/84958.xlsx
Ich hoffe mal auf eure Ideen.
Vielen lieben Dank
Grüße
Björn

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbskala // Bedingte Formatierung
20.04.2013 00:52:48
fcs
Hallo Björn,
2 mal schlechte Nachricten.
Die bedingten Formatierungen mit Farskala, Ampel und Symbolen funktionieren nur mit Zellen, die Zahlenwerte enthalten.
Die Farbwerte kann man nicht auslesen.
Man kann die Zwischenwerte für die 3 Einzelfarben aber durch lineare Interpolation zwischen den Fixwerten ermitteln.
Farben sehen dann etwa wie folgt aus.
Userbild
Gruß
Franz
Beisiel für Berechnung
E     F      G     H   I       J        K
5  rot   grün   blau
6  248    105    107           20.04.2013    0
7  249    121    110           21.04.2013    1
8  250    138    113           22.04.2013    2
9  251    154    116           23.04.2013    3
10  252    170    120           24.04.2013    4
11  252    186    123           25.04.2013    5
12  253    203    126           26.04.2013    6
13  254    219    129           27.04.2013    7
14  255    235    132           28.04.2013    8
15  233    229    132           29.04.2013    9
16  210    222    132           30.04.2013   10
17  188    216    132           01.05.2013   11
18  166    209    132           02.05.2013   12
19  144    203    132           03.05.2013   13
20  121    196    132           04.05.2013   14
21   99    190    132           05.05.2013   15
Benutzte Formeln:
E7:  =RUNDEN(E$6+($K7-$K$6)*(E$14-E$6)/($K$14-$K$6);0)
E8:  =RUNDEN(E$6+($K8-$K$6)*(E$14-E$6)/($K$14-$K$6);0)
E9:  =RUNDEN(E$6+($K9-$K$6)*(E$14-E$6)/($K$14-$K$6);0)
E10:  =RUNDEN(E$6+($K10-$K$6)*(E$14-E$6)/($K$14-$K$6);0)
E11:  =RUNDEN(E$6+($K11-$K$6)*(E$14-E$6)/($K$14-$K$6);0)
E12:  =RUNDEN(E$6+($K12-$K$6)*(E$14-E$6)/($K$14-$K$6);0)
E13:  =RUNDEN(E$6+($K13-$K$6)*(E$14-E$6)/($K$14-$K$6);0)
E15:  =RUNDEN(E$14+($K15-$K$14)*(E$21-E$14)/($K$21-$K$14);0)
E16:  =RUNDEN(E$14+($K16-$K$14)*(E$21-E$14)/($K$21-$K$14);0)
E17:  =RUNDEN(E$14+($K17-$K$14)*(E$21-E$14)/($K$21-$K$14);0)
E18:  =RUNDEN(E$14+($K18-$K$14)*(E$21-E$14)/($K$21-$K$14);0)
E19:  =RUNDEN(E$14+($K19-$K$14)*(E$21-E$14)/($K$21-$K$14);0)
E20:  =RUNDEN(E$14+($K20-$K$14)*(E$21-E$14)/($K$21-$K$14);0)
Die Formeln für Rot kann man dann nach rechts kopieren

Anzeige
AW: Farbskala // Bedingte Formatierung
20.04.2013 19:13:57
Björn
hehe Vielen dank euch beiden,
hab die gestern abend noch gegrübelt wie Excel die Farbwerte ausrechnet.
Aber auf Interpolation bin ich net gekommen. Aber ich wahr in Mathe ja eh schon immer eine niete.
*lach*
Okay nochmals danke
und wünsch euch beiden ein erholsames Wochenende
Grüße
Björn

Anzeige
Die schlechten Nachrichten will ich ...
20.04.2013 02:21:35
Luc:-?
…mal Franz überlassen, Björn,
aber …
1. handelt es sich hier ja gar nicht um Texte und
2. kann man die Farben genau berechnen
…und zwar auch durch Auswertung der BedingtFormatierung wie ich dir in deiner Mappe demonstriere, denn ich arbeite gerade an dieser Problematik.
Zwar musste ich Quantil durch die genaue Zahl ersetzen, denn bisher habe ich nur niedrigsten/höchsten Wert, Zahl und primitive Formeln (Zahlen mit Operatoren) nahezu fertig, aber dieser 1.Menüpunkt der BedingtFormatierung ab Xl12 ist auch schon mein letzter (nach dem ColorScale-Objekt kommen dann nur noch die Objekte Databar und IconSets an die Reihe). Die anderen Menüpktt sind bereits fertiggestellt (muss dann noch die endgültige Ausgabeform überdenken, denn der 1.Menüpkt weicht von den anderen 5, die letztlich nur Erweiterungen der alten Typen 1 u.2 sind, erheblich ab)! Was du siehst, ist also noch nicht der letzte Stand! ;-)
Bis zur Fertigstellung kann's also noch etwas dauern, vor allem als Ergänzungstool für meinen HTML-Generator für xlTabb.
Bisher habe ich das als UDF mit 4 Ausgabeformen (je 2 Engl u.Dt) vorgesehen. Mit dieser UDF habe ich auch die Werte ermittelt (im Prinzip so wie es Franz beschreibt → erkennbar an den FarbAnteilIndizes der einen Variante).
Gruß Luc :-?

Anzeige
AW: Die schlechten Nachrichten will ich ...
20.04.2013 19:14:24
Björn
siehe Mail an Franz :)

OK! Nachtrag: Falls es sich mal tatsächl ...
21.04.2013 14:30:07
Luc:-?
…um Texte handeln sollte, Björn & Interessenten,
die, warum auch immer, per Farbskala bedingt formatiert wdn sollen, kann das ebenfalls realisiert wdn, indem ein Referenzbereich mit Zahlen passender Relation angelegt wird. Der muss dann im Prinzip nicht einmal formatiert wdn, kann also auch als benannte Matrixkonstante definiert wdn, (der/)die dann einem Pgm (ggf auch UDF) zur Ermittlung der Werterelationen und damit letztlich der Farbwerte übergeben wird. Über den TexteBereich wird dann eine simple Bedingtformatierung gelegt (idR vom „klassischen“ Typ1 → Menüpkt2), die normalerweise erfüllt ist (wenn bspw bestimmte Texte eingetragen wurden). Gegen die Farbwerte aus der Relationsberechnung der Referenzzahlen wird dann die Farbe des BedingtFormats des TexteBereichs per VBA-(Ereignis-)Prozedur getauscht, d.h., die ggf für den gesamten TexteBereich gültige BedingtFormatierung wird auf seine Zellen vereinzelt. Das ist ein bisschen knifflig, weil man nicht einfach den Geltungsbereich ändern kann ohne die Formatierung der anderen Zellen zu verlieren. Deshalb muss pro FolgeZelle das gleiche simple BedingtFormat mit geänderter Farbe hinzugefügt und erst zum Schluss das BedingtFormat der 1.Zelle nur auf diese beschränkt wdn.
Mit den Farbwerten kann dann je nach Vorgabe nicht nur die Zellfarbe des BedingtFormats des TexteBereichs, sondern auch wahlweise Muster-, Text- u/o Rahmenfarbe geändert wdn. Dafür nachfolgend ein Bsp auf Basis einer Ereignisprozedur…
Rem Übernimmt BedingtFormatFarben eines Referenzbereichs (speziell aus Farbskala)
'   auf BedingtFormat-(Zell-, Muster- bzw Text-)Farben des Zielbereichs (Target -
'   vorzugsweise m.Textinhalt); dabei muss b.Einsatz eigener Berechnungen anstatt
'   d.UDF GetFConForm d.Referenzbereich nicht zwingend bedingt formatiert werden,
'   da es nur auf d.Relation seiner Werte zu d.Eckwerten für d.GrdFarben ankommt.
'   Achtung! Konstanten anpass u.GetFConForm ersetz (anteilige RGB-PotenzSummen)!
'   Für weitgehende Automatik ist Umstellung auf Worksheet_Calculation erforderl!
'   Vs1.0 -LSr -cd:20130421 -1pub:20130421herber -lupd:20130421t
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const FTyp As Integer = 1, inZBedNr As Integer = 1, QBedNr As Integer = 1, _
adQBez$ = "E119:E125", adZBez$ = "G119:G125"      'Anm: --> ersetzen!
Dim tcix As Long, trix As Long, ZBedNr As Long, FWerte As Variant, _
QBez As Range, ZBez As Range, Ziel As Range, fcBer As FormatCondition
On Error Resume Next
Set ZBez = Me.Range(adZBez)
If Not Intersect(Target(1), ZBez(1)) Is Nothing And Target.Count = ZBez.Count Then
Set QBez = Me.Range(adQBez): ZBedNr = inZBedNr
FWerte = GetFConForm(QBez, QBedNr)                  'Anm: --> ersetzen!
For trix = 1 To Target.Rows.Count
For tcix = 1 To Target.Columns.Count
Set Ziel = Target(trix, tcix): Set fcBer = Ziel.FormatConditions(ZBedNr)
If trix > 1 Or tcix > 1 Then
With fcBer                              'Anm: f.Type=1 --> ggf korr!
Ziel.FormatConditions.Add .Type, .Operator, .Formula1, .Formula2
End With
Set fcBer = Ziel.FormatConditions(ZBedNr + 1)
fcBer.ModifyAppliesToRange Ziel
End If
With fcBer
.StopIfTrue = False                     'Anm: nur bei Bedarf!
Select Case FTyp
Case 1: .Interior.Color = FWerte(trix - 1, tcix - 1)
Case 2: .Interior.PatternColor = FWerte(trix - 1, tcix - 1)
Case 3: .Font.Color = FWerte(trix - 1, tcix - 1)
Case 4: .Borders.Color = FWerte(trix - 1, tcix - 1)
Case Else: GoTo ex
End Select
End With
Next tcix
Next trix
Target(1).FormatConditions(inZBedNr).ModifyAppliesToRange Target(1)
End If
ex: Set QBez = Nothing: Set ZBez = Nothing: Set fcBer = Nothing: Set Ziel = Nothing
End Sub
Wenn hier die Konstante FTyp=3 gesetzt wird, könnte man auch folgd Ergebnis erhalten:
Userbild
Auf ähnliche Weise (nur unkomplizierter) kann man übrigens auch die Farben von BedingtFormaten vor Xl12 austauschen und so dynamisch (scheinbar) beliebig viele Bedingtformate pro Zelle simulieren.
Gruß + schöSo, Luc :-?

Anzeige
Habe wohl Rechnung ohne MS-Skurrilitäten ...
21.04.2013 21:22:34
Luc:-?
…gemacht, Folks;
ModifyAppliesToRange scheint die Verbindung zur Referenz zu lösen, weshalb Vs1.0 unbefriedigend läuft. Deshalb besser diese einfachere, aber auch rigorosere Version verwenden:
Rem Übernimmt BedingtFormatFarben eines Referenzbereichs (speziell aus Farbskala)
'   auf BedingtFormat-(Zell-, Muster- bzw Text-)Farben des Zielbereichs (Target -
'   vorzugsweise m.Textinhalt); dabei muss b.Einsatz eigener Berechnungen anstatt
'   d.UDF GetFConForm d.Referenzbereich nicht zwingend bedingt formatiert werden,
'   da es nur auf d.Relation seiner Werte zu d.Eckwerten für d.GrdFarben ankommt.
'   Achtung! Konstanten anpass u.GetFConForm ersetz (anteilige RGB-PotenzSummen)!
'   Für weitgehende Automatik ist Umstellung auf Worksheet_Calculation erforderl!
'   Vs1.1 -LSr -cd:20130421 -1pub:20130421herber -lupd:20130421t
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const FTyp As Integer = 3, QBedNr As Integer = 1, ZBedNr As Integer = 1, _
adQBez$ = "A127:A133", adZBez$ = "C127:C133"      'Anm: --> ersetzen!
Dim tcix As Long, trix As Long, FWerte As Variant, QBez As Range, ZBez As Range, _
fcZBer As FormatConditions, fcZiel As FormatCondition
On Error Resume Next
Set ZBez = Me.Range(adZBez)
If Not Intersect(Target(1), ZBez(1)) Is Nothing And Target.Count = ZBez.Count Then
Set QBez = Me.Range(adQBez): Set fcZBer = Target.FormatConditions
FWerte = GetFConForm(QBez, QBedNr)                  'Anm: --> ersetzen!
For trix = 0 To Target.Rows.Count - 1               'Anm: VarLauf ggf anpassen!
For tcix = 0 To Target.Columns.Count - 1        'Anm: VarLauf ggf anpassen!
With fcZBer(ZBedNr)                         'Anm: f.Type=1 --> ggf korr!
Set fcZiel = fcZBer.Add(.Type, .Operator, .Formula1, .Formula2)
End With
With fcZiel
Select Case FTyp
Case 1: .Interior.Color = FWerte(trix, tcix)
Case 2: .Interior.PatternColor = FWerte(trix, tcix)
Case 3: .Font.Color = FWerte(trix, tcix)
Case 4: .Borders.Color = FWerte(trix, tcix)
Case Else: GoTo ex
End Select
.StopIfTrue = False                     'Anm: nur bei Bedarf!
.ModifyAppliesToRange Target(trix + 1, tcix + 1)
End With
Next tcix
Next trix
fcZBer(ZBedNr).Delete
End If
ex: Set fcZBer = Nothing: Set fcZiel = Nothing: Set QBez = Nothing: Set ZBez = Nothing
End Sub
Userbild
Luc :-?

Anzeige
AW: Habe wohl Rechnung ohne MS-Skurrilitäten ...
22.04.2013 08:32:02
Björn
Moin,
so ganz steige ich da noch nicht durch. Ist wohl zu früh am Montag morgen.
Oder was wahrscheinlicher ist...meine als mit gut bewerteten VBA Kenntnisse, sind vielleicht etwas überbewertet.
Ich werd mit Deinem Code aber nachher ein wenig rumspielen. :)
Und vielen Dank Dir für Deine Mühen
Grüße
Björn

Anzeige
Viel Spaß dabei! Meine Mühen waren ...
22.04.2013 16:30:34
Luc:-?
…ohnehin nicht umsonst, Björn,
da ich auf diese Weise noch einiges entdeckt habe, das ich bei einem anderen Projekt unbedingt noch berücksichtigen muss. Insofern kann ich mich auch bei dir bedanken… ;-)
Übrigens, sicher kann man mit dieser Methode nicht nur „farbskalige“ Datenbalken simulieren, sondern wahrscheinlich auch die entsprd Objekte der BedingtFormatierung umfärben, so dass sich ganz neue Möglichkeiten ergeben. Das mal als zusätzliche Probier-Idee… ;-)
Gruß Luc :-?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Farbskala und bedingte Formatierung in Excel


Schritt-für-Schritt-Anleitung

  1. Zellen auswählen: Markiere die Zellen, auf die du die bedingte Formatierung anwenden möchtest.

  2. Bedingte Formatierung öffnen: Gehe im Menü auf Start > Bedingte Formatierung > Farbskalen.

  3. Farbskala auswählen: Wähle eine der verfügbaren Farbskalen aus. Excel bietet Standardoptionen an, die du direkt verwenden kannst.

  4. Anpassen der Farbskala: Um eine benutzerdefinierte Farbskala zu erstellen, klicke auf Bedingte Formatierung > Neue Regel > Formatieren von Zellen, die.

  5. Formel eingeben: Gib die Formel für die gewünschten Bedingungen ein, um die Farbwerte zu definieren.

  6. Farbwerte festlegen: Nutze die Optionen für Min, Max und Mittel, um die gewünschten Farben in der Farbskala anzupassen.

  7. Übernehmen und überprüfen: Klicke auf OK, um die Regel zu speichern, und überprüfe, ob die Formatierung wie gewünscht angewendet wurde.


Häufige Fehler und Lösungen

  • Fehler: Die bedingte Formatierung funktioniert nicht mit Textinhalten.

    • Lösung: Verwende Zahlenwerte oder erstelle eine Referenztabelle mit entsprechenden Zahlen, die die Textinhalte repräsentieren.
  • Fehler: Excel zeigt die Farbskala nicht korrekt an.

    • Lösung: Überprüfe die verwendeten Formeln und stelle sicher, dass die Zellwerte im richtigen Format vorliegen.
  • Problem: Farbwerte sind nicht korrekt.

    • Lösung: Verwende die lineare Interpolation, um die genauen Farbwerte zu berechnen. Die Formeln zur Berechnung sind im Thread beschrieben.

Alternative Methoden

  1. Referenzbereich mit Zahlen erstellen: Lege einen Bereich mit Zahlen an, der die Textinhalte repräsentiert. Dies kannst du mit einer benannten Matrixkonstante tun.

  2. VBA-Makros: Verwende VBA, um die Farbwerte dynamisch zu ändern. Du kannst die Formatierung für den Textbereich anpassen, indem du auf die entsprechenden Werte zugreifst.

  3. Dynamische Farbskalen: Nutze die Funktion Farbskala in Kombination mit VBA, um die Farben basierend auf bestimmten Bedingungen automatisch zu aktualisieren.


Praktische Beispiele

  1. Farbskala für Noten: Du möchtest die Noten deiner Schüler visuell darstellen. Setze eine Farbskala von Rot (ungenügend) bis Grün (sehr gut) ein.

    =WENN(A1<4; "Rot"; WENN(A1<7; "Gelb"; "Grün"))
  2. Temperaturen darstellen: Eine Tabelle, die Temperaturen anzeigt, könnte mit einer Farbskala von Blau (kalt) bis Rot (heiß) formatiert werden.

  3. Verwendung der linearen Interpolation: Berechne die Farbwerte zwischen zwei Extremen in einer Tabelle, um eine fließende Farbskala zu erstellen.

=RUNDEN(E$6 + ($K7 - $K$6) * (E$14 - E$6) / ($K$14 - $K$6); 0)

Tipps für Profis

  • Verwendung von benannten Bereichen: Um die Verwaltung von Zellbereichen zu erleichtern, nutze benannte Bereiche für deine Farbskala.

  • Kombination mit Diagrammen: Setze die Farbskala auch in Diagrammen ein, um die Daten anschaulicher darzustellen.

  • Dynamische Anpassungen: Erstelle ein Skript, das die Farbskalen basierend auf den Änderungen in den Daten automatisch anpasst.


FAQ: Häufige Fragen

1. Frage
Wie kann ich eine Farbskala auf Textzellen anwenden?
Antwort: Du kannst eine Referenzzahlentabelle erstellen und die bedingte Formatierung entsprechend anpassen.

2. Frage
Warum werden meine Farben nicht wie erwartet angezeigt?
Antwort: Überprüfe die Formatierungseinstellungen und vergewissere dich, dass die Zellwerte im richtigen Format vorliegen.

3. Frage
Kann ich die Farbskala in vorherigen Excel-Versionen verwenden?
Antwort: Die Funktionalität der bedingten Formatierung kann in älteren Versionen eingeschränkt sein. Prüfe die Verfügbarkeit basierend auf deiner Excel-Version.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige