Como saber se uma célula do Excel tem uma fórmula ou é codificada?

16

Alguém tem uma dica especial (que não seja VBA) para informar sistematicamente se uma célula tem um valor codificado ou é uma fórmula derivada?

Estou lidando com alguns dados que contêm subtotais confusos e estou tentando ver se posso separar as linhas-primas.

    
por YGA 22.11.2011 / 19:00

9 respostas

7

Use a formatação condicional. Escolha a opção "Usar uma fórmula para determinar quais células para formatar" e digite "= NOT (Cellhasformula)". Isso formatará qualquer coisa que esteja codificada.

    
por 28.03.2013 / 01:53
14

Selecione as células em questão, pressione Ctrl + G e selecione Special para obter a seguinte caixa de diálogo:

Em seguida, especifique o tipo de célula desejado e clique em OK e somente esses tipos de células permanecerão selecionados.

    
por 23.11.2011 / 00:48
8

No Excel 2013, você pode fazer:

=ISFORMULA(reference)

Aqui a documentação completa

    
por 08.02.2016 / 20:40
3
=iferror(Formulatext(cell),"Not Formula")

ou para mostrar apenas as fórmulas:

=iferror(Formulatext(cell),"")
    
por 31.03.2015 / 09:37
2

Dois outros métodos são para

  1. Use uma ferramenta de mapeamento como o meu Mappit! addin (que pode ser executado como um addin confiável)
  2. Você pode usar o muito útil XLM / Intervalo Nomes solução alternativa que oferece uma coloração em tempo real de células codificadas, fórmulas, células ligadas etc. Isto doesn não requer nenhum conhecimento de programação para implantar diferente do VBA
por 23.11.2011 / 10:59
1

Eu sei que você disse que não é VBA preferido, mas se você não tiver outras soluções, o objeto Range tem uma propriedade HasFormula.

Retorna: True se todas as células no intervalo contiverem fórmulas; False se nenhuma das células no intervalo contiver uma fórmula; null caso contrário.

Fonte: link

    
por 22.11.2011 / 20:12
1

Bem além da data original, mas se é útil para qualquer pessoa, eu consegui contornar isso selecionando o intervalo de células, usando Substituir (Ctrl + H), definindo como 'Examinar' 'Fórmulas' e substitua um igual = por um apóstrofo-igual a '=

Isso trouxe todas as fórmulas, mas obviamente também converteria coisas como se $ C $ 1 contivesse =if($A1=$B1,"Match","Different") a '=if($A1'=$B1,"Match","Different")

Observe o A1'=B1 no meio da fórmula, que pode ser problemático, mas ainda assim significa que você consegue ver as fórmulas, embora de forma não pragmática. Poderia usar a função SUBSTITUTE para alterá-la de volta, então $ D $ 1 contém =SUBSTITUTE(C1,"'=","=") , depois é só copiar para o Bloco de Notas e colar novamente em $ E $ 1

A outra maneira seria "mostrar fórmulas", mas isso mostraria fórmulas para cada célula, não apenas um intervalo selecionado.

    
por 06.04.2017 / 19:53
1
Function is_formula(c As Range) As Boolean
  is_formula = Left(c.Formula, 1) = "="
End Function
    
por 20.04.2017 / 15:57
0

Se você deseja armazenar o arquivo do Excel em um formato de pasta de trabalho livre de macro, evite tanto o VBA quanto as macros (ou seja, as abordagens XL4 / XLM sugeridas em outras respostas). Nesta resposta, fiz a suposição de um arquivo Excel sem macro.

Se você usa o MS-Excel 2013, pode usar:

=ISFORMULA(reference)

Se você usa versões mais antigas do MS-Excel (por exemplo, 2010, 2007), não há função verdadeira para determinar se uma célula contém uma fórmula. No entanto, você pode aproximá-lo usando:

=IF(OR(ISBLANK(reference);CELL("prefix";reference)<>"");FALSE;IF(CELL("type";reference)="l";TRUE;"MAYBE"))

A função acima retorna:

  • TRUE para células que contêm uma fórmula que resulta em um dado String.
  • FALSE para células que contêm um literal String ou está em branco.
  • "MAYBE" para células que contêm um booleano, um número ou uma data, independentemente de este valor ser literal ou o resultado de uma fórmula.
por 17.12.2014 / 15:46