Farben in einer IF-Funktion

Farben in einer IF-Funktion
Sie möchten eine IF-Anweisung (mit der Arbeitsblattfunktion) erstellen, die auf der Farbe einer Zelle basiert. Wenn A1 zum Beispiel eine grüne Füllung hat, will er das Wort „go“ zurückgeben, wenn es eine rote Füllung hat, will er das Wort „stop“ zurückgeben, und wenn es eine andere Farbe ist, gibt er das Wort „neither“ zurück. Sie brauchen also eine Erklärung für die wenn funktion mit farbe oder ziehen es vor, dafür kein Makro zu verwenden.

Leider gibt es keine Möglichkeit, diese Aufgabe akzeptabel zu erfüllen, ohne Makros in der einen oder anderen Form zu verwenden. Die nächste Nicht-Makro-Lösung besteht darin, einen Namen zu erstellen, der auf diese Weise Farben bestimmt:

    Wählen Sie die Zelle A1 aus.
Klicken Sie auf Einfügen | Name | Definieren. Excel zeigt das Dialogfeld Name definieren an.
Verwenden Sie einen Namen wie „mycolor“ (ohne die Anführungszeichen).
Geben Sie im Feld Refers To Folgendes als einzelne Zeile ein:

=IF(GET.CELL(38,Blatt1!A1)=10, „GO“,IF(GET.CELL(38,Blatt1!A1))
=3, „Stop“, „Weder noch“))))

Klicken Sie auf OK.

Wenn dieser Name definiert ist, können Sie in jeder Zelle folgendes eingeben:

=mycolor

Das Ergebnis ist, dass Sie Text basierend auf der Farbe der Zelle sehen, in der Sie diese Formel platzieren. Der Nachteil dieses Ansatzes besteht natürlich darin, dass er es Ihnen nicht erlaubt, auf andere Zellen als diejenige zu verweisen, in der die Formel platziert ist.

Die Lösung besteht also darin, eine benutzerdefinierte Funktion zu verwenden, die (per Definition) ein Makro ist. Das Makro kann die Farbe, mit der eine Zelle gefüllt ist, überprüfen und dann einen Wert zurückgeben. Das folgende Beispiel gibt beispielsweise eines der drei Wörter zurück, basierend auf der Farbe in einer Zielzelle:

FunktionsprüfungColor1(Bereich)
Wenn range.Interior.Color = RGB(256, 0, 0, 0) dann
CheckColor1 = „Stop“ = „Stop“.
ElseIf range.interior.color = RGB(0, 256, 0) dann
CheckColor1 = „Go“ (Überprüfen)
Sonst
CheckColor1 = „Weder noch“.
Ende wenn
Ende Funktion

Dieses Makro wertet die RGB-Werte der Farben in einer Zelle aus und gibt eine Zeichenkette basierend auf diesen Werten zurück. Auf diese Weise können Sie die Funktion in einer Zelle nutzen:

=CheckColor1(B5)

Wenn Sie es vorziehen, Indexfarben anstelle von RGB-Farben zu überprüfen, dann funktioniert die folgende Variante:

FunktionsprüfungColor2(Bereich)
Wenn range.Interior.ColorIndex = 3 dann
CheckColor2 = “ Stopp „.
ElseIf range.Interior.ColorIndex = 4 dann
CheckColor2 = „Go“ = „Go“.
Sonst
CheckColor2 = „Weder noch“.
Ende wenn
Ende Funktion

RGB-Ansatz

Unabhängig davon, ob Sie den RGB-Ansatz oder den Farbindex-Ansatz verwenden, sollten Sie überprüfen, ob die in den Makros verwendeten Werte die tatsächlichen Werte für die Farben in den Zellen, die Sie testen, widerspiegeln. Mit anderen Worten, Excel ermöglicht es Ihnen, verschiedene Grün- und Rottöne zu verwenden, so dass Sie sicherstellen müssen, dass die in den Makros verwendeten RGB-Werte und Farbindexwerte mit denen der Farbtöne in Ihren Zellen übereinstimmen.

Makro

Eine Möglichkeit, dies zu tun, ist die Verwendung eines sehr einfachen Makros, das nichts anderes tut, als einen Farbindexwert zurückzugeben:

Funktion GetFillColor(Rng Als Bereich) Solange
GetFillColor = Rng.Interieur.ColorIndex
Ende Funktion

Nun können Sie in Ihrem Arbeitsblatt Folgendes verwenden:

=GetFillColor(B5)

Das Ergebnis ist der Farbindexwert der Zelle B5 wird angezeigt. Angenommen, die Zelle B5 ist mit einer der von Ihnen erwarteten Farben (rot oder grün) formatiert, können Sie den Indexwert wieder in die früheren Makros einfügen, um die gewünschten Ergebnisse zu erzielen. Sie können diesen Schritt jedoch einfach überspringen und sich auf den von GetFillColor zurückgegebenen Wert verlassen, um auf diese Weise eine IF-Formel zusammenzustellen:

=IF(GetFillColor(B5)=4, „Go“, IF(GetFillColor(B5)=3, „Stop“, „Neither“))))

Sie sollten bedenken, dass diese Funktionen (ob Sie nun die RGB-Farbwerte oder die Farbindexwerte betrachten) die explizite Formatierung einer Zelle untersuchen. Sie berücksichtigen keine implizite Formatierung, wie sie beispielsweise durch bedingte Formatierung erfolgt.