Korrigieren der Farben von Zellen in Excel beim Ändern der Werte dieser Zellen

Korrigieren der Farben von Zellen in Excel beim Ändern der Werte dieser Zellen

Hier ist ein Beispiel mit 4 Zellen in meiner Arbeitsmappe.

26  99
2   1

Die Arbeitsmappe wird nach den Regeln 100=rot, 0=gelb eingefärbt, wobei Dinge, die näher an 0 liegen, eher gelb und Dinge, die näher an 100 liegen, eher rot sind (dies wird durch eine Regel zur bedingten Formatierung definiert, die Farben basierend auf dem Wert zuweist).

In diesem Beispiel wäre 99 sehr rot, 1 und 2 wären sehr gelb und 26 hätte einen orangefarbenen Farbton.

Ich möchte die Farbe der Zellen beibehalten, aber die Werte in den Zellen ändern. In diesem Beispiel möchte ich, dass sie

E=0.0,Q=26  E=0.0,Q=99
E=2.10e-11,Q=2  E=1.02e-08,Q=1

(Beachten Sie, dass die Werte auf der rechten Seite von q mit denen in der ersten Matrix identisch sind.)

Aufgrund der Regel zur bedingten Formatierung verschwinden meine Farben, wenn ich neue Werte einfüge.

Antwort1

Sie können immer 100 Formatierungsbedingungen basierend auf dem Wert nach dem Q=in hinzufügen E=0.0,Q=99. Hier ist ein Makro, das dies für Sie für alle von Ihnen ausgewählten Zellen erledigt, indem es jeden einzelnen Zellenwert direkt mit 1 bis 100 vergleicht oder ihn mit dem Wert nach dem vergleicht, Q=wenn dieser erste Vergleich einen Fehler ergibt.

Damit Sie die Datei nicht als XLSM speichern müssen, können Sie das Makro nach der Ausführung löschen. Selection.FormatConditions.DeleteWenn Sie auch die aktuellen Formatierungsbedingungen entfernen möchten, entfernen Sie das Apostroph aus der Zeile.

Dies setzt voraus, dass Ihre Zahl immer eine Ganzzahl zwischen 1 und 100 ist (entweder als reiner Zellenwert oder nach dem Q=). Bei Dezimalwerten funktioniert dies nicht.

Sub FormatMe()
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    'Selection.FormatConditions.Delete
    Dim addr As String
    addr = Replace(Selection.Cells(1).Address, "$", "")
    For i = 1 To 100
        With Selection.FormatConditions.Add(xlExpression, Formula1:= _
            "=OR(" & addr & " = " & i & ", IFERROR(RIGHT(" & addr & _
            ", LEN(" & addr & ") - FIND(""Q"", " & addr & ", 2) - 1) = """ & i & """, FALSE))")
           .Interior.Color = RGB(255, 255 - Int(i / 100 * 255), 0)
        End With
    Next
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Antwort2

  • Annahme: Sie möchten bedingte Formatierung verwenden (und kein VBA)
  • Annahme: Die Zelle, die Sie einfärben möchten, enthält „komplexe“ Werte wie „E=0,0,Q=26“

  • Antwort: Wählen Sie eine aus – die bedingte Formatierung von Excel ist nicht intelligent genug, um den Wert „E=0,0,Q=26“ zu „lesen“ und die Zahl 26 zu finden.

    • Die Verwendung Ihrer eigenen Formatierungsformel könnte funktionieren, aber damit lässt sich kein Farbverlauf anwenden, da nur eine Farbe pro Bedingung verwendet wird, d. h. „Wenn die Zahl 29 ist, verwenden Sie genau diese Farbe.“ (Soweit ich weiß – bitte korrigieren Sie mich)
    • Excel könnte automatisch die Zahl 26 aus Ihrer Zelle extrahieren und diese (benachbarte) Zelle könnte formatiert werden (mit Zelle F4 =NUMBERVALUE(RIGHT(F4,LEN(F4)-FIND(",",F4)-2))).
  • Mein VorschlagPräsentieren Sie Ihre Daten auf andere Weise, verwenden Sie das E und das Q als Überschriften oder etwas Ähnliches und bewahren Sie jede Zahl einfach in einer separaten Zelle auf.

Antwort3

Verwenden Sie „Werte einfügen“, damit nur die Zahlen eingefügt werden, andernfalls wird auch die Formatierung eingefügt.

verwandte Informationen