Markieren Sie eine Zeile, in der sich ein Wert relativ zur vorherigen Zeile ändert (Bedingte Formatierung?).

7

Ich habe eine Tabelle mit vielen Daten. Die Daten werden so gruppiert, dass alle Zeilen mit einem bestimmten Wert in einer Spalte (z. B. C) zusammengefasst werden. Ich möchte die "Grenzen" hervorheben, d. H. Die erste Zeile, in der sich der Wert in Spalte C von seinem unmittelbaren Vorgänger unterscheidet.

Zum Beispiel:

   A       B      C
1 Type   Val    Category
2 Cat    1.77     1
3 Newt   1.937    1
4 Toad   1.03     3
5 Newt   0.78     3
6 Dog    0.78     3
7 Worm   0.78     9

In diesem Beispiel soll Excel die Zeilen 2, 4 und 7 automatisch finden und hervorheben, da sich dort der Wert in C gegenüber der vorherigen Zeile ändert.

Ich habe versucht, eine bedingte Formatierungsregel mit der Formel zu verwenden $C1<>$C2 - in der Hoffnung, dass Excel die Zeilen schrittweise durchläuft und & amp; Hervorheben der Übergangszeilen - aber es hat nicht funktioniert. Irgendwelche Ideen, wie ich zu den gewünschten Ergebnissen komme?

yosh m
quelle

Antworten:

6

Was Sie vorschlagen, sollte in Kombination mit dem richtigen funktionieren " gilt für "Bereich. Zum Beispiel, wenn Ihre Daten in A1:C7 (mit Überschriften in A1:C1 ) dann :

  • Wählen Sie den Bereich ohne Überschriften aus, d. h. A2:C7
  • verwende diese Formel (mit vorangestelltem =), d.h.

    = $ C1 & lt; $ C2

  • wende das gewünschte Format an

Das sollte Zeilen 2, 4 und 7 wie erwartet formatieren

... aber ich nehme Ihre Kommentare zum Löschen von Zeilen zur Kenntnis, damit diese Version dem entgegenwirkt, ohne den Spaltenbuchstaben "festzukodieren"

=INDEX($C:$C,ROW())<>INDEX($C:$C,ROW()-1)

barry houdini
quelle
Guter Punkt zum Festlegen des korrekten Gültigkeitsbereichs. Ich hatte tatsächlich den Bereich der gesamten Tabelle ausgewählt. Aus Neugier überprüfte ich, ob die Beschränkung auf die zweite Zeile (wie von Ihnen vorgeschlagen) auch funktioniert hat - und das tat es auch. Vielen Dank.
yosh m
Nur zur Verdeutlichung - ich habe versucht, genau das zu verwenden, was Sie gesagt haben - d. H. Mein ursprünglicher Versuch mit = $ C1 & lt; $ C2 ohne INDIREKT - und es hat bei mir nicht funktioniert. Also habe ich es jetzt noch einmal versucht und - diesmal hat es funktioniert! Was habe ich das erste mal vergessen? Ich bin mir nicht sicher ... Aber Sie hatten Recht, dass INDIREKT unnötig war. Vielen Dank.
yosh m
1
Hoppla - ein Problem mit dieser Antwort: Ich bereinige die Daten manuell und wenn ich eine hervorgehobene Zeile lösche (was ich die ganze Zeit mache - die ersten Datenpunkte sind fast immer falsch), wird die neue Übergangszeile mit der einfachen NICHT hervorgehoben Regel. Mit der INDIRECT-Regel wird sie jedoch hervorgehoben (was tatsächlich das von mir benötigte Verhalten ist). Ich habe es jetzt wieder mit dem INDIREKT gemacht. Ich wäre jedoch froh, wenn ich eine weniger stumpfe Methode kennen würde, um sie zu spezifizieren. Vielen Dank.
yosh m
1
Ich habe ein bisschen mehr experimentiert und es scheint mir, dass es einen Fehler in Excel gibt. Wenn ich Ihren Ansatz verwende (d. H. Meinen ursprünglichen Versuch) und später eine Zeile lösche - Excel erzeugt aus bestimmten Gründen eine oder zwei neue CF-Regeln und die neuen Regeln decken verschiedene Bereiche ab und mindestens eine, die ich gesehen habe, ist jetzt ungültig (#REF). Mit der INDIRECT-Funktion passiert dies nicht. Ich weiß nicht warum. Es scheint mir ein Fehler in Excel zu sein.
yosh m
1
Ja, ich stimme Ihnen zu, yosh m, dass Sie Probleme bekommen werden, wenn Zeilen mit den geteilten CF-Bereichen gelöscht werden - IMO, das hat in Excel 2003 besser funktioniert, wo das nicht passieren würde ..... INDIREKT ist jedoch immer noch problematisch, wenn Sie sollten SPALTEN löschen, verschieben oder einfügen, da "C" "hardcodiert" ist, würde sich die CF nicht anpassen - Sie können das umgehen, indem Sie stattdessen INDEX verwenden, wobei diese Anpassung bei Bedarf stattfinden würde - dh Formel wäre = INDEX ($ C: $ C, REIHE ()) & lt; & gt; INDEX ($ C: $ C, REIHE () - 1)
barry houdini
1

Aha! Fand es. Diese Formel macht den Trick bei der bedingten Formatierung:

 =INDIRECT("C"&(ROW()-1))<>INDIRECT("C"&(ROW()))

Wenn es andere oder bessere Möglichkeiten gibt, würde ich es gerne hören, aber ich habe mein unmittelbares Problem damit gelöst. Vielen Dank.

yosh m
quelle
Das ist eine gute Lösung, aber Barrys Lösung sollte funktionieren
JMax
Es ist fast immer unnötig, INDIRECT für die bedingte Formatierung zu verwenden (und wahrscheinlich keine gute Idee). Ihr ursprünglicher Ansatz war fast richtig - siehe meine Antwort hier
barry houdini
1
Siehe meinen dritten Kommentar zu Ihrer Antwort. Es stellt sich heraus, dass der INDIREKTE Ansatz einen Vorteil gegenüber dem "direkten" Ansatz hat. Vielen Dank.
yosh m
0

Sie können Folgendes verwenden, um das bedingte Format aufzurufen.

Screen Shot

CharlieRB
quelle
Danke, Charlie, aber ich wollte, dass eine einzige Regel auf die gesamte Tabelle angewendet wird, damit Excel die Arbeit für mich erledigt. Inzwischen habe ich eine Lösung gefunden (siehe meine Antwort an mich selbst). Vielen Dank.
yosh m
0

Ich wollte etwas, das Kopie & amp überlebt; Einfügen, Verschieben usw. Folgendes habe ich mir ausgedacht:

=INDIRECT(ADDRESS(ROW(), COLUMN()))=INDIRECT(ADDRESS(ROW()-1, COLUMN()))
Tom
quelle