Bedingte Formatierung beim 4. Eintrag?

731
James

Ich weiß, wie man die Zellenfarbe für einen duplizierten Eintrag ändert, aber wie kann ich die Farbe bei jedem 4. Eintrag ändern? Der Wert ist eine unbekannte Kombination aus Zahl und Buchstaben, die jedes vierte Mal hervorgehoben werden soll, wenn dieselbe Kombination eingegeben wird.

Vielen Dank, dass Sie sich für mich entschieden haben. Ich habe ein Beispiel hochgeladen, wie das fertige Blatt aussehen soll, Link unten.

Ich habe die vierte Wiederholung der Buchstaben- / Zahlenkombination C020, G020, B004 & F028 manuell hervorgehoben

Wie Sie sehen, werden die Wiederholungen nicht unbedingt in derselben Zeile oder nach 4 Spalten ausgeführt.

http://s000.tinyupload.com/?file_id=56226468952646159686

0
Bedeutet das, dass die fünfte Wiederholung nicht hervorgehoben werden sollte? Es sollte 4 Wiederholungen hervorheben, dann 8 Wiederholungen und so weiter? pat2015 vor 5 Jahren 0
Können Sie Beispieldaten bereitstellen? Bitte werfen Sie einen Blick auf [ask] und nehmen Sie an unserer [Tour] teil, um zu erfahren, wie Sie Ihre Frage verbessern können. Burgi vor 5 Jahren 0
Dank pat2015, das ist richtig, 5. bis 7. wäre nicht hervorgehoben, 8. wäre usw. und so weiter James vor 5 Jahren 0
Welches Programm verwenden Sie? Haben Sie beim Überprüfen der Zeilennummer nach einem Vielfachen von 4 gesucht? fixer1234 vor 5 Jahren 0
Hallo fixer1234 Ich benutze Excel 2016, die relevanten Daten befinden sich in der ausgegrauten Spalte, die Wiederholung tritt möglicherweise nicht für 15 Tage / Spalten auf, es kann am 7., 10. oder 10. usw. vorkommen, es ist nicht einheitlich. Momentan verwenden wir 2 Excel-Tabellen, die nebeneinander geöffnet sind, und überprüfen jeden Eintrag manuell, um das vierte Ereignis derselben Daten hervorzuheben. James vor 5 Jahren 0
Wenn Sie nur jeden vierten Eintrag von Wiederholungen markieren möchten, können eine Helper-Spalte und eine Formel dazu hilfreich sein oder die Zeilennummer auf ein Vielfaches von 4 testen, wie in fixer1234 angegeben. Wenn Sie jedoch für jede bestimmte vierte Wiederholung eine andere Farbe wünschen, kann diese komplex werden und möglicherweise eine VBA-Lösung (Programmierlösung) erfordern. pat2015 vor 5 Jahren 0
Fortsetzung ... zB 1,2,2,1,1,1 (4. 1 so Rot), 2,3,2 (4. 2 So Rot) und so weiter. Wenn Sie jedoch eine Farbe für die 4. 1 und eine andere für die 4. 2 wünschen, ist sie komplex. Bitte erläutern Sie Ihre Frage ausführlich. Geben Sie weitere Informationen, mögliche Beispieldaten und erwartete Ergebnisse an. Fügen Sie auch einen Ansatz oder eine Formel hinzu, den Sie bisher ausprobiert haben und der nicht funktioniert hat. pat2015 vor 5 Jahren 0
Vielen Dank, pat2015. Ich werde Helfer-Säulen untersuchen und die ursprüngliche Frage ausführlicher bearbeitet haben. James vor 5 Jahren 0
Willst du es auch über die Spalten? ZB Spalten CEG & I, dh Eintrag B004 kommt 3 Mal in Col C vor, der vierte in Col E (das sollte hervorgehoben werden) und so weiter? pat2015 vor 5 Jahren 0
Hallo pat2015 Einträge sollten sich nicht in derselben Spalte wiederholen, wenn sie fehlerhaft sind. (Wir verwenden die doppelte Regel, um das zu überprüfen.) Wiederholte Einträge werden sich wahrscheinlich in verschiedenen Zeilen befinden. James vor 5 Jahren 0

2 Antworten auf die Frage

0
Scott

Ich verstehe nicht genau, was Sie wollen, denn die von Ihnen bereitgestellte Beispiel-Kalkulationstabelle scheint nichts mit Ihrer Frage zu tun zu haben. Sie sagen "die relevanten Daten befinden sich in der ausgegrauten Spalte", aber ich sehe keine wiederholten Werte in den ausgegrauten Spalten. Meinen Sie "RETURN", "RETURN / DC", "TOTAL" und "TOTAL / DC", die sich ausschließlich in den nicht ausgegrauten Spalten wiederholen ?

Aber die Daten, die Sie in (verwirrender / unklarer) Erzählform präsentieren, geben mir etwas, mit dem ich arbeiten kann. Ich gehe davon aus, dass die Zahlen in Zeile 1 liegen. Beginnen Sie mit der Technik zum Erkennen doppelter Einträge:

=COUNTIF($A1:B1,B1) 

Gibt an, wie oft der Wert in dieser Zelle bisher in der Zeile angezeigt wurde, einschließlich der aktuellen Zelle. Dies ist 1 für das erste Auftreten eines Werts und 2 oder mehr für Duplikate. Sie möchten jedoch nicht testen, ob diese Anzahl größer als 1 ist. Sie möchten testen, ob es ein Vielfaches von 4 ist. Testen Sie also

=MOD(COUNTIF($A1:B1,B1),4)=0 

Verwenden Sie einfach die obige Formel für Ihr bedingtes Format, beginnend mit der zweiten Zelle .

Im Folgenden

  • Zeile 1 sind Ihre Daten (aus der Frage), die auf der Grundlage der zweiten Formel oben bedingt formatiert sind.
  • Zeile 2 ist die erste Formel oben und
  • Zeile 3 ist die zweite Formel oben.

Tabellenkalkulation mit OP-Daten

Zeile 2 zeigt also die Anzahl der Wiederholungen in Zeile 1, und Zeile 3 zeigt die Spalten, bei denen Zeile 2 ein Vielfaches von 4 ist (und die Spalten, bei denen Zeile 1 farbig ist).

Hallo Scott, danke für deine Hilfe, die erste Zeile sieht am nächsten aus, was ich suche. Ich habe oben in der ursprünglichen Frage einen Link mit dem gewünschten Ergebnis gepostet. James vor 5 Jahren 0
0
pat2015

Nach meinem Verständnis schlage ich eine Lösung vor, die etwas VBA UDF und eine Helper-Kolonne verwendet.

Ein leicht vereinfachtes Blattbeispiel ist unten angegeben. Die relevanten Daten befinden sich in den Spalten C, E, G & I. Rechts neben jeder dieser Spalten befindet sich eine Hilfsspalte, die Sie gegebenenfalls ausblenden möchten.

Drücken Sie in Ihrem Arbeitsblatt zuerst ALT+ F11, um den VBA-Editor aufzurufen. Fügen Sie ein Modul aus dem Menü Einfügen ein und fügen Sie den folgenden UDF-Code (User Defined Function) ein.

Function prmarr(ParamArray arg()) As Variant  Dim arr1 cnt = 0  For i = LBound(arg) To UBound(arg)  cnt = cnt + arg(i).Rows.Count ' get total rows from all ranges  Next i  ReDim arr1(cnt) ' re dim the array for those many total rows  cnt = 0 ' reuse the counter now  'create a one dimentional list of array from all of the above ranges For i = LBound(arg) To UBound(arg) For Each cell In arg(i) arr1(cnt) = cell.Value cnt = cnt + 1 Next cell Next i  prmarr = arr1 ' pass this array as return parameter End Function 

Beachten Sie, dass dies ein sehr einfacher VBA-Code ist und dass im Code keine Validierungen oder Fehlerüberprüfungen enthalten sind. Wenn Sie ein horizontales Array oder überlappende Arrays oder mehrdimensionale Arrays übergeben, kann dies fehlschlagen. Es wird davon ausgegangen, dass Sie nur ein Spaltenarray übergeben, um ordnungsgemäß zu funktionieren.

Diese Funktion nimmt eine variable Anzahl von Spaltenfeldbereichen auf und gibt ein eindimensionales Feld zurück, das alle Zellwerte enthält, aus denen die Gesamtzahl der Vorkommen des aktuellen Werts seit der Startzelle ab der ersten Datenspalte gezählt wird.

Da in Ihrem Excel ein VBA-Code enthalten ist, müssen Sie die Datei als .XLSM Macro Enabled Excel-Arbeitsblatt speichern.

Setzen Sie in D1 die folgende Formel und ziehen Sie sie bis zu den beabsichtigten Zeilen nach unten.

=COUNTIF($C$1:C1,C1) 

Nun, während Sie durch nachfolgende Helfer-Spalten fortschreiten. Jede Helper-Spalte erfordert eine geringfügige Änderung der Formel. Obwohl die Struktur gleich bleibt, nimmt die Anzahl der Argumente zu.

Geben Sie in F2 die folgende Formel ein und drücken Sie CTRL+ SHIFT+ ENTERinnerhalb der Formelleiste, um eine Array-Formel zu erstellen. Excel wird die Formel jetzt in geschweifte Klammern einschließen, um anzuzeigen, dass es sich um eine Array-Formel handelt. In diesem Schritt ist das Erstellen einer Array-Formel erforderlich, andernfalls führt dies zu einem falschen Ergebnis.

=SUM(IF(prmarr(C$1:C$9,E$1:E1)=E1,1,0)) 

Verstehe diese Formel. Sie übergeben C1: C9 und E $ 1: E1 als Parameter an die UDF, dh vorherige Spalte (n) + erster Spaltenwert bis zum Testbedingungswert und prüfen, ob eine Übereinstimmung mit der aktuellen Zelle besteht. Wenn ja, wird SUMME die Gesamtzahl dieses Werts seit Beginn der ersten Spalte erzeugen. Ziehen Sie es bis zu den vorgesehenen Zeilen nach unten.

Auf ähnliche Weise wird jetzt die Formel der Formelformel in H1

=SUM(IF(prmarr(C$1:C$9,E$1:E$9,G$1:G1)=G1,1,0)) 

Und so weiter.

Füllen Sie dies für alle Spalten aus.

Jetzt kommt der Bedingte Formatierungsteil.

Wählen Sie in diesem Fall die allererste Zelle, dh C1. Gehen Sie zu Bedingte Formatierung -> Neue Regel -> Verwenden Sie eine Formel, um die zu formatierenden Zellen festzulegen.

Füge jetzt in der Regel die folgende Formel ein

=MOD(D1,4)=0 

Wählen Sie die Hintergrundfarbe Ihrer Wahl aus und klicken Sie auf OK, um die Formatierung auf Zelle C1 anzuwenden.

Wenn Sie nun C1 auswählen, doppelklicken Sie auf Format Painter, und malen Sie diese Formatierung in alle anwendbaren Datenspalten.

Beachten Sie, dass.

  • Excel hat möglicherweise eine Begrenzung, wie viele Parameter an eine UDF übergeben werden können. Ich bin mir nicht sicher, ob und wie es angewendet werden kann, wenn es als deklariert wirdParamArray as Variant
  • Ich schlage vor, dass Sie es zunächst in einem Test-Arbeitsblatt mit Beispieldaten testen, die verschiedene Bedingungen simulieren, um eine Bestätigung zu erhalten, dass dies wie erwartet funktioniert, bevor Sie es auf Ihr Produktionsblatt anwenden.
  • Wenn Sie immer noch Probleme haben oder wenn es Fehler gibt, aktualisieren Sie hier, und ich werde versuchen, das Problem zu beheben, wenn die Zeit es zulässt.