Dans le formatage conditionnel, je veux détecter si la ligne au-dessus de la cellule actuelle est masquée ou visible. Comment puis-je détecter si une cellule est visible ou non?
Le seul hack auquel je peux penser est:
- Créez une colonne avec toutes les
1
valeurs. - Utilisez une formule comme
subtotal(109,c2:c2)=1
(c'est-à-dire juste sur la cellule que je veux vérifier) pour déterminer si elle est visible ou masquée.
Existe-t-il un moyen de le faire sans une colonne temporaire qui doit être visible lorsque la ligne est affichée?
Pour éviter un problème XY , ce que je veux faire, c'est avoir une colonne qui est la catégorie de la ligne. La première ligne VISIBLE avec une catégorie particulière doit avoir un style différent; les rangées ultérieures de la même catégorie sont légèrement différentes. En ASCII:
cat. item
+AAA+ aaaa
(AAA) bbbb
(AAA) cccc
+BBB+ dddd
(BBB) eeee
(BBB) ffff
Si mon filtre masque la ligne avec, dddd
je veux que la ligne avec eeee
ait le +BBB+
style à la place.
Ce fil est un peu ancien, mais au cas où il serait utile à quiconque, voici un moyen de formater conditionnellement les doublons sur une table filtrée sans avoir à utiliser VBA.
Faire une autre colonne et y mettre une formule comme celle-ci
=IF(SUBTOTAL(103, [@ColumnWithOnlyOnesInIt])=1, [@ColumnYouWantToCheckForDuplicates], "")
Mettez la mise en forme conditionnelle en double normale sur la colonne que vous souhaitez vérifier.
La formule de l'étape 2 copiera la valeur de la colonne que vous souhaitez vérifier, mais uniquement lorsque la ligne est visible. De cette façon, lorsque les doublons sont vérifiés, vous n'obtenez que ceux applicables à la table filtrée. Je pense que cela peut ne pas fonctionner pour les zéros (ou "" ou tout ce que vous choisissez comme valeur "else" dans votre instruction if). Il peut donc être possible d'obtenir une valeur de ligne zéro dans votre liste qui est mise en surbrillance comme doublon. A part ça, j'ai de la chance avec cette méthode.
la source
Je proposerais d'utiliser la formule suivante (sur une gamme par exemple $ A: $ A):
Ce que cela fait:
Si les deux
A1=OFFSET(A1;-1;0)
SUBTOTAL(103;OFFSET(A1;-1;0))=1
alors le résultat est Vrai donc la cellule est un doublon d'une cellule visible juste au-dessus et devrait par exemple être grisée.
Sidenote: L'utilisation de la
OFFSET
fonction fait que la mise en forme conditionnelle ne se cassera pas lorsqu'une ligne supplémentaire est insérée.la source
Voici la solution que je viens d'utiliser:
J'ai créé une nouvelle colonne C (et j'ai caché l'original (colonne B)). Dans la nouvelle colonne, j'ai utilisé la formule = SOUS-TOTAL (9, B2) qui résume la ligne qui vous intéresse. Je l'ai ensuite copiée toutes les lignes!
Maintenant, lorsque vous filtrez en utilisant un filtre avancé. Les valeurs sont toutes ZÉRO dans cette colonne sauf si elles sont visibles (non filtrées).
Ensuite, le normal = SUMIF () fonctionne comme un champion. N'utilisez pas accidentellement la colonne cachée pour faire la somme. Additionnez la colonne SUBTOTAL () que vous venez de créer.
la source