wake-up-neo.com

Bedingte Formatierungsdatenleisten von Excel basierend auf Farbe

Ich kann keine Möglichkeit finden, die Farbe einer Excel-Datenleiste basierend auf dem Wert zu ändern. Aktuelle Formatierungsoptionen lassen nur unterschiedliche Farben basierend auf positiven/negativen Werten zu. Ich verwende derzeit Excel 2010.

Ich möchte, dass die Farbe eines Datenbalkens als "rot" angezeigt wird, wenn der Wert zwischen 0 und 0,3 liegt, "gelb", wenn der Wert zwischen 0,3 und 0,6 liegt, und "grün", wenn der Wert zwischen> 0,6 liegt.

Würde mich wirklich über jede Info freuen, die die Leute teilen könnten.

Vielen Dank,

TB

8
TheBlake

Datenbalken unterstützen nur eine Farbe pro Satz. Die Idee ist, dass die Länge der Datenleiste einen Hinweis auf hoch, mittel oder niedrig gibt. 

Bedingte Farben können mit Farbskalen erzielt werden. 

Was Sie beschreiben, klingt wie eine Kombination aus beiden, aber das gibt es in Excel nicht, und ich sehe keine einfache Möglichkeit, es zu hacken. 

Sie könnten eine Art "In-Cell-Diagramm" verwenden, das populär war, bevor Sparklines kamen. Verwenden Sie eine Formel, um ein Zeichen zu wiederholen (im Screenshot ist es das mit Marlett-Schrift formatierte Zeichen g), und ändern Sie die Schriftfarbe anschließend mit der bedingten Formatierung. 

enter image description here

Verwenden Sie das Unicode-Zeichen 2588 mit normaler Schrift, um ein besseres "Bar"-Feeling zu erzeugen.

enter image description here

Bearbeiten: Nicht jedes Unicode-Zeichen wird in jeder Schriftart dargestellt. In diesem Fall zeigt der Unicode 2588 gut mit der Schriftart Arial, nicht jedoch mit dem Standard-Calibri von Excel. Wählen Sie Ihre Schriftarten entsprechend aus. Das Dialogfeld Einfügen> Symbol hilft bei der Suche nach geeigneten Zeichen.

enter image description here

10
teylyn

Dieser Artikel beschreibt einen Trick, der die Aufgabe erfüllt:

http://www.Excel-user.com/2012/05/conditional-formatting-bar-chart.html

 enter image description here

1
Tohid

Ich setze eine bedingte Formatierung in der Zelle neben der Datenleiste ein, die die Farbe basierend auf dem Wert in der Zielzelle ändert (grün, gelb, rot, orange). Ich schleife dann durch den VBA unten, um die Farbe der Datenleiste basierend auf der bedingten Formatierung in der benachbarten Zelle zu aktualisieren.

Dim intCount As Integer
Dim db As DataBar

On Error Resume Next
For intCount = 9 To 43 'rows with data bars to be updated
    Worksheets("Worksheet Name").Cells(intCount, 10).FormatConditions(1).BarColor.Color = Worksheets("Worksheet Name").Cells(intCount, 11).DisplayFormat.Interior.Color
Next intCount
0

In Ihrem Fall ist das Markieren der Zelle besser geeignet, da wir keine Datenleiste mit mehreren Farben bilden können 
Bedingte Formationg> Regeln verwalten ...> Neue Regel 
Wählen Sie unter "Regeltyp auswählen" die Option "Formel zum Bestimmen der zu formatierenden Zellen verwenden" und legen Sie Ihre Regeln dort fest
enter image description here

0
keong kenshih

Anstatt eine bedingte Formatierung für einen Zellbereich zu erstellen, formatierte ich jede Zelle einzeln mit VBA basierend auf den beiden folgenden Subs. Das Ergebnis wird im Link unter dem Code angezeigt. Hoffe das hilft.

' The purpose of this sub is to add a data bar to an individual cell
' The value in the cell is expected to be decimal numbers between -1 and 1
' If the value is greater than or equal to -0.1 and less than or equal to 0.1, then display green bars
' If the value is less than -0.1 and greater than -.2, OR greater than 0.1 and less than 0.2 then yellow bars
' All other scenarios display red bars
Sub Add_Data_Bar(rngCell As Range, dblValue As Double)

' Clears existing conditional formatting from the cell
' Adds a new data bar to the cell
With rngCell.FormatConditions
    .Delete
    .AddDatabar
End With

    ' Creates a databar object for the databar that has been added to the cell
    Dim dbar As Databar
    Set dbar = rngCell.FormatConditions(rngCell.FormatConditions.Count)

        ' Sets the databar fill type to display as gradient
        dbar.BarFillType = xlDataBarFillGradient

        ' Sets the databar border style
        dbar.BarBorder.Type = xlDataBarBorderSolid

        ' Sets the databar axis position
        dbar.AxisPosition = xlDataBarAxisMidpoint

        ' Sets the minimum limit of the data bar to -1
        With dbar.MinPoint
            .Modify newtype:=xlConditionValueNumber, newvalue:=-1
        End With

        ' Sets the maximum limit of the data bar to +1
        With dbar.MaxPoint
            .Modify newtype:=xlConditionValueNumber, newvalue:=1
        End With

            ' Sets the color based on what value has been passed to the sub
            ' Green
            If dblValue <= 0.1 And dblValue >= -0.1 Then

                With dbar
                    .BarColor.Color = RGB(99, 195, 132) ' Green
                    .BarBorder.Color.Color = RGB(99, 195, 132)
                End With

            ' Yellow
            ElseIf (dblValue > 0.1 And dblValue <= 0.2) Or (dblValue < -0.1 And dblValue >= -0.2) Then

                With dbar
                    .BarColor.Color = RGB(255, 182, 40) ' Yellow
                    .BarBorder.Color.Color = RGB(255, 182, 40)
                End With

            ' Red
            Else

                With dbar
                    .BarColor.Color = RGB(255, 0, 0) ' Red
                    .BarBorder.Color.Color = RGB(255, 0, 0)
                End With

            End If

End Sub


' Applies the databar formatting to each cell in a range
‘ Call this on the Worksheet_Change event so that the formatting updates when data is refreshed
Sub Loop_Through_Range()

' Range to be looped through
Dim rng As Range
Set rng = Sheet1.Range("A2:A22")

' Range for For Loop
Dim cell As Range

    ' Loops through each cell in your range
    For Each cell In rng.Cells
        Call Add_Data_Bar(cell, cell.Value)
    Next

End Sub

Arbeitsblattansicht

0
JR Massel