Bei der bedingten Formatierung möchte ich feststellen, ob die Zeile über der aktuellen Zelle ausgeblendet oder sichtbar ist. Wie kann ich feststellen, ob eine Zelle sichtbar ist oder nicht?
Der einzige Hack, an den ich denken kann, ist:
- Erstellen Sie eine Spalte mit allen
1
Werten. - Verwenden Sie eine Formel wie
subtotal(109,c2:c2)=1
(dh nur für die Zelle, die ich überprüfen möchte), um festzustellen, ob sie sichtbar oder ausgeblendet ist.
Gibt es eine Möglichkeit, dies ohne eine temporäre Spalte zu tun, die sichtbar bleiben muss, wenn die Zeile angezeigt wird?
Um ein XY-Problem zu vermeiden , möchte ich eine Spalte haben, die die Kategorie für die Zeile ist. Die erste SICHTBARE Zeile mit einer bestimmten Kategorie sollte einen anderen Stil haben. spätere Zeilen mit derselben Kategorie unterscheiden sich geringfügig. In ASCII:
cat. item
+AAA+ aaaa
(AAA) bbbb
(AAA) cccc
+BBB+ dddd
(BBB) eeee
(BBB) ffff
Wenn mein Filter die Zeile mit verbirgt, dddd
möchte ich, dass die Zeile mit stattdessen eeee
das +BBB+
Styling hat.
Dieser Thread ist etwas alt, aber falls er für jemanden hilfreich ist, finden Sie hier eine Möglichkeit, Duplikate in einer gefilterten Tabelle bedingt zu formatieren, ohne VBA verwenden zu müssen.
Machen Sie eine weitere Spalte und fügen Sie eine Formel wie diese ein
=IF(SUBTOTAL(103, [@ColumnWithOnlyOnesInIt])=1, [@ColumnYouWantToCheckForDuplicates], "")
Fügen Sie für die zu überprüfende Spalte eine normale doppelte bedingte Formatierung ein.
Die Formel aus Schritt 2 kopiert den Wert aus der Spalte, die Sie überprüfen möchten, jedoch nur, wenn die Zeile sichtbar ist. Auf diese Weise erhalten Sie beim Überprüfen auf Duplikate nur diejenigen, die für die gefilterte Tabelle gelten. Ich denke, dies funktioniert möglicherweise nicht für Nullen (oder "" oder was auch immer Sie als "else" -Wert in Ihrer if-Anweisung wählen). Daher ist es möglicherweise möglich, einen Zeilennullwert in Ihrer Liste zu erhalten, der als Duplikat hervorgehoben ist. Ansonsten habe ich viel Glück mit dieser Methode.
quelle
Ich würde vorschlagen, die folgende Formel zu verwenden (in einem Bereich, z. B. $ A: $ A):
Was das macht:
Wenn beides
A1=OFFSET(A1;-1;0)
SUBTOTAL(103;OFFSET(A1;-1;0))=1
dann ist das Ergebnis True, daher ist die Zelle ein Duplikat einer sichtbaren Zelle direkt darüber und sollte z. B. ausgegraut sein.
Nebenbemerkung: Wenn Sie die
OFFSET
Funktion verwenden, wird die bedingte Formatierung nicht unterbrochen , wenn eine zusätzliche Zeile eingefügt wird.quelle
Hier ist die Lösung, die ich gerade verwendet habe:
Ich habe eine neue Spalte C erstellt (und das Original versteckt (Spalte B)). In der neuen Spalte habe ich die Formel = SUBTOTAL (9, B2) verwendet, die die EINE Zeile summiert, an der Sie interessiert sind. Ich habe dann alle Zeilen kopiert!
Wenn Sie jetzt mit dem erweiterten Filter filtern. Die Werte in dieser Spalte sind alle NULL, sofern sie nicht sichtbar (nicht gefiltert) sind.
Dann funktioniert normal = SUMIF () wie ein Champion. Verwenden Sie die versteckte Spalte nur nicht versehentlich, um eine Summe zu erstellen. Summe über die soeben erstellte Spalte SUBTOTAL ().
quelle