Descobri que as fórmulas e os intervalos da formatação condicional serão ajustados automaticamente quando você copiar, excluir ou mover dados em uma planilha. Embora essa seja uma boa idéia, ela tende a quebrar as coisas para mim de maneiras bem estranhas.
Para evitar isso, tentei escrever regras que se aplicavam a toda a planilha e excluíssem os cabeçalhos das colunas para destacar os dados que eu queria verificar.
Exemplo: =AND(A$1="Check This Column For Blanks),ISBLANK(A1))
aplicado a=$1:$1048576
No entanto, mesmo com a regra explicitamente aplicada a toda a planilha, ela ainda estava se ajustando automaticamente (e quebrando de maneiras estranhas ao fazê-lo) enquanto eu trabalhava na planilha.
Como posso evitar isso?
Respostas:
Quando preciso de um intervalo que não seja alterado em nenhuma circunstância, incluindo mover, inserir e excluir células, usei um intervalo nomeado e a
INDIRECT
função.Por exemplo, se eu quiser que um intervalo sempre se aplique às células
A1:A50
, defini um intervalo nomeado por meio do Gerenciador de nomes:No Gerenciador de nomes, adicione um novo intervalo (clique em Novo) e, no campo Refere-se a:, use a função INDIRETO para especificar o intervalo de células que você deseja, por exemplo,
=INDIRECT("A1:A50")
ou=INDIRECT("Sheet!A1:A50")
. Como o intervalo é tecnicamente apenas um argumento de texto, nenhuma quantidade de células reorganizadas fará com que o Excel atualize-o.Além disso, isso funciona no mínimo no Excel 2010 e no Excel 2013. Embora minha captura de tela seja de 2013, eu usei essa técnica exata em 2010 no passado.
Ressalvas
Lembre-se de que essa invariância também pode enganá-lo. Por exemplo, se você alterar o nome da planilha, o intervalo nomeado será interrompido.
Percebi um pequeno impacto no desempenho ao usar essa estratégia em um número significativo de células. Um modelo usado no trabalho usa essa técnica com intervalos nomeados que abrangem vários milhares de intervalos de células diferentes, e o Excel sente um pouco lento quando eu atualizo as células nesses intervalos. Isso pode ser minha imaginação, ou pode ser o fato de o Excel estar fazendo chamadas de função adicionais para INDIRECT.
fonte
INDIRECT
função por conta própria?Descobri que as regras são muito fáceis de violar, mas aqui está algo que você pode tentar que parece não violar nenhuma regra.
Você pode alterar o texto dentro das células. Se você precisar adicionar uma linha, adicione seus dados no final da sua tabela e reordene-os. Se você precisar excluir uma linha, remova apenas o texto / números e reordene a tabela.
Isso funciona para mim quando tenho uma formatação condicional aplicada às colunas e geralmente defino a formatação para toda a coluna, por exemplo. $ F: $ F. Ainda deve funcionar se você estiver formatando para um intervalo parcial, apenas certifique-se de que, ao terminar de adicionar / remover e recorrer, todos os dados que você deseja formatar ainda estejam dentro dos parâmetros originais do intervalo.
É uma enorme frustração para mim também.
Eu espero que isso ajude.
fonte
Não tenho tanta certeza e enfrento o mesmo problema com frequência.
Eu diria que o campo 'Aplicar a' no painel Formatação condicional (CF) sempre funcionará dinamicamente. Portanto, SEMPRE converterá qualquer referência ao formato
=$A$1:$A$50
.É uma dor.
fonte
Descobri que o uso da
INDIRECT
função e daROW
função na regra Formatação condicional elimina o problema do Excel criando novas regras e alterando o intervalo.Por exemplo, eu queria adicionar uma linha entre linhas na minha planilha de registro de cheques quando o mês mudou de uma linha para a seguinte. Então, minha fórmula na regra CF é:
onde a coluna C da minha planilha contém a data. Não precisei fazer nada de especial no intervalo (não tive que definir um nome de intervalo etc.).
Portanto, no exemplo do pôster original, em vez de "A1" ou "A $ 1" na regra CF, use:
fonte
Eu experimentei um problema muito semelhante. Fiz algumas macros para adicionar linhas, copiar fórmulas e ajustar as colunas e os tamanhos das linhas para formatar a aparência da planilha. Descobri que esse problema ocorre em uma de duas ocasiões.
1) Quando algo do INSIDE o "aplica-se a" é cortado / colado fora deste intervalo.
2) Quando houver células mescladas dentro de "aplica-se a", e qualquer uma das linhas ou colunas será ajustada.
Aparece durante o problema de célula mesclada, que o excel precisa unir tudo, recalcular sua aplicação condicional, ajustar todas as células (adicionar ou excluir linhas ou não) e depois ressurgi-las novamente. É invisível para nós, mas parece que é assim que é aplicado.
Pensamento que pode nos ajudar a encontrar a solução para isso.
-T
fonte
Eu tenho uma solução simples para isso.
Basta ir para uma célula que esteja dentro do intervalo (a que não está quebrada no intervalo), clique em Pincel e cole em toda a coluna. Novamente, ele mostrará Onde está quebrado, você só precisa fazer um Pincel para a célula que tenha quebrado o intervalo. Agora, isso também pode parecer um pouco demorado, você pode criar uma macro simples para isso.
fonte
Na fórmula Formatação condicional, use a
R1C1
notação com aINDIRECT
função:Exemplo 1:
If same row column A = 1
...Exemplo 2:
If same row column A = 2 AND next row column A = 3
...fonte
Se o caso de uso for gerar uma planilha de relatório, isso deve funcionar bem:
Você pode ignorar a utilidade excessiva do Excel com algumas etapas de instalação únicas, se também estiver disposto a executar manualmente uma atualização simples dos dados finais depois de fazer toda a entrada de dados.
Supondo que seus dados sejam organizados normalmente (em linhas):
Input
. Não aplique nenhuma formatação condicional a ele. Sinta-se à vontade para mudar os valores para o conteúdo do seu coração (por exemplo, excluir / inserir / copiar / colar)Output
). Copie manualmente sua formatação global, como larguras de coluna e formatação de cabeçalho (não o conteúdo dos cabeçalhos, apenas a formatação).$A$1
na fórmula a seguir com a localização do início da sua linha de cabeçalho, em seguida, copiar em todas as colunas e linhas que deseja saída:=IF(LEN(OFFSET(Input!$A$1,ROW()-1,COLUMN()-1))>0,OFFSET(Input!$A$1,ROW()-1,COLUMN()-1),"")
(aIF(LEN(...)>0,...,"")
declaração é necessário porque Excel também prestativamente determina os tipos de dados para você e usos0
para as células vazias de outra forma, e os-1
termos vêm de semântica offset versus ordinal)Output
planilha.Isso copia sua
Input
planilha de dados paraOutput
planilha sem nenhuma referência de célula que o Excel automatizasse automaticamente para que você possa definir com segurança sua formatação condicional naOutput
planilha.Você só precisa estender manualmente o intervalo ao qual a fórmula é aplicada na
Output
planilha, à medida que o tamanho dos seusInput
dados muda.Eu sugiro que você evite mesclar células.
PS Esta pergunta já foi feita várias vezes (também se aplica ao Planilhas Google, que é um clone do Excel), para que você possa encontrar uma solução melhor para o seu caso de uso, examinando-as:
fonte
Se você colar sem formato (
Paste > Paste Special > Unicode Text
ou similar), a formatação especial não será copiada e, como tal, o intervalo "Aplica-se a" não deve ser alterado.Você pode excluir linhas / colunas, mas se as inserir, o intervalo "Aplica-se a" será dividido.
Você estende a área selecionando a última linha / coluna e "copie e arraste" no pequeno quadrado no canto inferior esquerdo do "cursor". Dessa forma, o intervalo "Aplicar a" deve permanecer intacto. (Observe que isso não estenderá nenhuma fórmula em linhas ou colunas, como a inserção faz.)
É, no entanto, uma dor total lembrar de colar sem formato, etc. Normalmente, não faço.
Às vezes, também defino um nome para a área que quero formatar. Ele não será usado na regra, mas você pode limpar a regra removendo todas as regras, exceto uma, e usar o nome da área na seção "Aplica-se a".
Eu testei em um Mac usando o Excel 16.3 (acho que o Office 2016 ... hmm).
fonte