Na formatação condicional, desejo detectar se a linha acima da célula atual está oculta ou visível. Como posso detectar se uma célula está visível ou não?
O único truque que consigo pensar é:
- Crie uma coluna com todos os
1
valores. - Use uma fórmula como
subtotal(109,c2:c2)=1
(ou seja, apenas na célula que desejo verificar) para determinar se está visível ou oculta.
Existe uma maneira de fazer isso sem uma coluna temporária que precisa ser deixada visível quando a linha é mostrada?
Para evitar um problema XY , o que eu quero fazer é ter uma coluna que seja a categoria da linha. A primeira linha VISÍVEL com uma categoria específica deve ter um estilo diferente; linhas posteriores com a mesma categoria são ligeiramente diferentes. Em ASCII:
cat. item
+AAA+ aaaa
(AAA) bbbb
(AAA) cccc
+BBB+ dddd
(BBB) eeee
(BBB) ffff
Se meu filtro ocultar a linha dddd
, quero que a linha eeee
tenha o +BBB+
estilo.
Esse segmento é um pouco antigo, mas, caso seja útil para alguém, aqui está uma maneira de formatar condicionalmente duplicatas em uma tabela filtrada sem precisar usar o VBA.
Faça outra coluna e coloque uma fórmula assim
=IF(SUBTOTAL(103, [@ColumnWithOnlyOnesInIt])=1, [@ColumnYouWantToCheckForDuplicates], "")
Coloque na formatação condicional duplicada normal na coluna que deseja verificar.
A fórmula da etapa 2 copiará o valor da coluna que você deseja verificar, mas apenas quando a linha estiver visível. Dessa forma, quando as duplicatas são verificadas, você obtém apenas as aplicáveis à tabela filtrada. Eu acho que isso pode não funcionar para zeros (ou "" ou o que você escolher como o valor "else" na sua instrução if). Portanto, pode ser possível obter um valor de linha zero na sua lista destacado como duplicado. Fora isso, estou tendo boa sorte com esse método.
fonte
Eu proporia usar a seguinte fórmula (em um intervalo, por exemplo, $ A: $ A):
O que isso faz:
Se ambos
A1=OFFSET(A1;-1;0)
SUBTOTAL(103;OFFSET(A1;-1;0))=1
então o resultado é True, portanto, a célula é uma duplicata de uma célula visível logo acima e deve estar, por exemplo, acinzentada.
Nota: Ao usar a
OFFSET
função, a formatação condicional não será interrompida quando uma linha adicional for inserida.fonte
Aqui está a solução que acabei de usar:
Criei uma nova coluna C (e ocultei o original (coluna B)). Na nova coluna, usei a fórmula = SUBTOTAL (9, B2) Qual SOMA a ÚNICA linha em que você está interessado. Em seguida, copiei todas as linhas!
Agora, quando você filtra usando o filtro avançado. Os valores são todos ZERO nesta coluna, a menos que estejam visíveis (não filtrados).
Então, o normal = SUMIF () funciona como um campeão. Apenas não use acidentalmente a coluna oculta para somar. Soma na coluna SUBTOTAL () que você acabou de criar.
fonte