In Excel gibt es verschiedene Möglichkeiten, eine vollständige Zelle basierend auf ihrem Wert dynamisch einzufärben. Gibt es jedoch eine Möglichkeit, nur einen Teil der Zelle basierend auf ihrem Wert dynamisch einzufärben?
Angenommen, ich erstelle einen Bericht, der ungefähr so aussieht:
_________________________
| | Dec | Nov |
|_______|___________|_____|
|Gross R| $75 (-25%)| $100|
|_______|___________|_____|
|Net Inc| $55 (+10%)| $50 |
|_______|___________|_____|
In diesem Szenario möchte ich nur die Prozentwerte (-25%) und (+ 10%) einfärben, nicht die Dollarwerte $ 75 und $ 55, die sich ebenfalls in der Zelle befinden. Hinzu kommt, dass die Färbung dynamisch sein sollte (grün für positive und rot für negative Werte) und dass diese Zellen Referenzen sind (sodass die manuelle Färbung von der Tabelle abweicht).
Ich habe versucht, das eingebaute zu verwenden TEXT()
Funktion, aber das hat auch nicht funktioniert. Konkret habe ich es versucht =TEXT(A1,"$##")&" "&TEXT(A2,"[Green]0%;[Red](-0%)")
woher A1
ist der Zellbezug zum Dollarbetrag und A2
ist die Zellreferenz auf das prozentuale Delta.
Das Frustrierende ist, dass die benutzerdefinierte Formatierung [Green]0%;[Red](-0%)
Funktioniert einwandfrei, wenn es auf die gesamte Zelle angewendet wird (über den Abschnitt zur benutzerdefinierten Zahlenformatierung), aber wenn es über das Symbol angewendet wird TEXT()
Funktion funktioniert nicht mehr. Wie kann ich einen Teilwert in einer Zelle benutzerdefiniert einfärben?
Antworten:
Es gab zwei Ansätze, mit denen ich dieses Problem umgehen konnte, und keiner war wirklich optimal.
Der erste Ansatz bestand darin, die Zeichenfolgen in zwei separate Spalten zu unterteilen. Auf diese Weise konnte ich eine der zuvor beschriebenen benutzerdefinierten Formatierungen verwenden, um die Farbe festzulegen. Dies ist keine ideale Lösung, da ich beim Erscheinungsbild des Berichts Kompromisse eingehen musste, um diese zusätzliche Spalte zu berücksichtigen.
Der zweite Ansatz besteht in der Verwendung von VBA / Makros, die, obwohl ich sie in diesem speziellen Szenario vermieden habe, der Aufgabe gewachsen wären. Ich werde zwar nicht den gesamten Arbeitscode ausdrucken, aber es läuft darauf hinaus:
ActiveCell
oder eine Schleife)Instr
Funktion, um die Stelle in der Zeichenfolge zu finden, an der Sie die Farbe ändern möchtenInstr
erneut, um die Stelle in der Zeichenfolge zu finden, an der Sie die Farbe anhalten möchtenCharacters(start, length)
Funktion zum Hervorheben der genauen Zeichen, die Sie ändern möchten, wobei die zuvor gefundenen Werte übergeben werden.Font.Color = RGB(r,g,b)
quelle
Ein Beispiel mit einem Makro finden Sie hier:
Makro zum Färben eines Teils des Texts in Zellen in Excel
quelle
Fügen Sie eine Linie über dem Text ein, der hervorgehoben werden soll, stellen Sie die gewünschte Breite ein, ändern Sie die Textfarbe in Gelb (oder eine beliebige andere Farbe) und reduzieren Sie die Deckkraft der Linie nach Ihren Wünschen.
quelle