Ich habe eine Tabelle mit ca. 300 Zeilen. Jede Zeile hat ungefähr 15 Spalten und jede Zelle enthält einen numerischen Wert. Jede Zeile entspricht einem Produkt.
Ich möchte, dass Excel für jedes Produkt die Zellen mit den höchsten Zahlen in Rot und den niedrigsten Zahlen in Gelb mit einem Farbverlauf für dazwischen liegende Zahlen hervorhebt. Dies passiert, wenn ich eine Zeile auswähle (insbesondere die 15 Zellen in der Zeile, die meine Daten enthalten) und dann auf Bedingte Formatierung> Farbskalen> Rot-Gelb-Farbskala klicke.
Ich habe jedoch 300 Zeilen und es wird zu lange dauern, jede Zeile einzeln auszuwählen und die bedingte Formatierung festzulegen. Wenn ich dagegen den gesamten Bereich auswähle und die bedingte Formatierung anwende, berechnet Excel die Farben auf der Grundlage des gesamten Bereichs, obwohl ich möchte, dass sie zeilenweise berechnet werden. Nehmen Sie zum Beispiel diese Beispieldaten:
1 2 3
4 5 6
7 8 9
Die Ausgabe, die ich möchte, mit Y für Gelb, O für Orange, R für Rot, ist:
Y O R
Y O R
Y O R
Wenn ich jedoch den gesamten Bereich auswähle und die bedingte Formatierung anwende, erhalte ich Folgendes:
Y Y Y
O O O
R R R
Gibt es eine Möglichkeit, dies zu erreichen, ohne es zeilenweise zu tun?
quelle
Antworten:
Hier ist ein Makro, das ein bedingtes Format für jede Zeile in Ihrer Auswahl erstellt. Dies geschieht, indem das Format der ersten Zeile in JEDE Zeile in der Auswahl kopiert wird (nicht einzeln, sondern einzeln). Ersetzen Sie B1: P1 durch den Verweis auf die erste Zeile in Ihrer Datentabelle.
Markieren Sie dazu die unformatierten Zeilen in Ihrem Dataset (in meinem Fall B2: P300 ) und führen Sie das Makro aus. Beachten Sie im folgenden Beispiel, dass die maximale Anzahl in den ersten beiden Zeilen 5 bzw. 15 beträgt. Beide Zellen sind dunkelrot .
Ich bin mir aber sicher, dass es eine schnellere Lösung gibt.
quelle
Der einfachste Weg, dies zu erreichen, ist das inkrementelle Kopieren / Einfügen. Formatieren Sie zunächst eine Zeile wie gewünscht. Kopieren Sie dann die Formatierung und fügen Sie sie NUR in eine zweite Zeile ein. Kopieren Sie jetzt BEIDE Zeilen 1 und 2 und fügen Sie die Formatierung in die Zeilen 3 und 4 ein. Fügen Sie es ein paar Mal ein, um 64 oder 128 zu erhalten. Dann können Sie diese kopieren und ihre Formatierung einfügen, und Sie decken exponentiell mehr Gebiet als zuvor ab.
Es ist nicht elegant, und meiner Erfahrung nach werden die Ressourcen, die für die bedingte Formatierung von EAT-Zeilen erforderlich sind, um 2500 Zeilen aufgebraucht.
Ich wünschte nur, es gäbe Logik, die nicht für jede einzelne Zeile ein eigenes Bedingungsformat erstellt und Ressourcen verschlingt ...
quelle
Ich habe gerade dieses und andere Beispiele dafür über VBA gefunden und es hat mich zum Nachdenken gebracht, und ich habe eine relativ schnelle und schmerzlose Möglichkeit gefunden, dasselbe zu tun, ohne ein Skript zu kennen oder zu kopieren.
Wenden Sie die gewünschte bedingte Formatierung auf die gewünschte Zeile an und markieren Sie dann die gesamte Zeile. Weiter Klicken Sie mit der rechten Maustaste irgendwo entlang des Rahmens (Maus sollte das Verschieben-Symbol sein) und ziehen Sie in die nächste Zeile. Wählen Sie im Kontextmenü "Hierher nur als Format kopieren". Jetzt sollten Sie Ihr Bedingtes Format auf beide Zeilen separat anwenden. Führen Sie dies dann rekursiv aus, mit der Ausnahme, dass Sie jetzt zwei oder mehr Zeilen gleichzeitig auswählen und kopieren können.
Es ist kein One-Shot-Deal wie der obige Code, aber es ist exponentiell schneller als jeweils eine Zeile. Hoffe das hilft.
quelle
Sie können die Bedingungsformatierung auch auf eine Zeile anwenden. Markieren Sie die Zeile erneut und doppelklicken Sie auf "Format Painter", um sie zu sperren. Verwenden Sie die Abwärtspfeiltaste, um die Bedingung auf andere Zeilen anzuwenden.
Für meine Firma blockiert normalerweise Makro in Excel, so dass dies für mich funktioniert. hoffe es hilft dir auch
quelle