En el formato condicional, quiero detectar si la fila sobre la celda actual está oculta o visible. ¿Cómo puedo detectar si una celda es visible o no?
El único truco que se me ocurre es:
- Crea una columna con todos los
1
valores. - Use una fórmula como
subtotal(109,c2:c2)=1
(es decir, solo en la celda que quiero verificar) para determinar si está visible u oculto.
¿Hay alguna manera de hacer esto sin una columna temporal que debe dejarse visible cuando se muestra la fila?
Para evitar un problema XY , lo que quiero hacer es tener una columna que sea la categoría de la fila. La primera fila VISIBLE con una categoría particular debe tener un estilo diferente; Las filas posteriores con la misma categoría son ligeramente diferentes. En ASCII:
cat. item
+AAA+ aaaa
(AAA) bbbb
(AAA) cccc
+BBB+ dddd
(BBB) eeee
(BBB) ffff
Si mi filtro oculta la fila, dddd
entonces quiero que la fila eeee
tenga el +BBB+
estilo.
Este hilo es un poco viejo, pero en caso de que sea útil para alguien, aquí hay una forma de formatear condicionalmente los duplicados en una tabla filtrada sin tener que usar VBA.
Haz otra columna y pon una fórmula como esta
=IF(SUBTOTAL(103, [@ColumnWithOnlyOnesInIt])=1, [@ColumnYouWantToCheckForDuplicates], "")
Coloque el formato condicional duplicado normal en la columna que desea verificar.
La fórmula del paso 2 copiará el valor de la columna que desea verificar, pero solo cuando la fila sea visible. De esa forma, cuando se verifican los duplicados, solo se obtienen los aplicables a la tabla filtrada. Creo que esto puede no funcionar para ceros (o "" o lo que elija como el valor "else" en su declaración if). Por lo tanto, es posible obtener un valor de línea cero en su lista que esté resaltado como duplicado. Aparte de eso, estoy teniendo buena suerte con este método.
fuente
Propondría usar la siguiente fórmula (en un rango, por ejemplo, $ A: $ A):
Lo que eso hace:
Si ambos
A1=OFFSET(A1;-1;0)
SUBTOTAL(103;OFFSET(A1;-1;0))=1
entonces el resultado es Verdadero, por lo tanto, la celda es un duplicado de una celda visible justo arriba y, por ejemplo, debe estar atenuada.
Nota al margen: el uso de la
OFFSET
función hace que el formato condicional no se rompa cuando se inserta una fila adicional.fuente
Aquí está la solución que acabo de usar:
Creé una nueva columna C (y OCULTÉ el original (Columna B)). En la nueva columna utilicé la fórmula = SUBTOTAL (9, B2) ¿QUÉ SUMA la UNA fila en la que está interesado. Luego lo copié todas las filas!
Ahora, cuando filtras con filtro avanzado. Los valores son todos CERO en esta columna a menos que sean visibles (no filtrados).
Entonces, el normal = SUMIF () funciona como un campeón. Simplemente no use accidentalmente la columna oculta para sumar. Suma la columna SUBTOTAL () que acabas de crear.
fuente