Como testar uma fórmula do Excel sugerida por IA com vazios, zero, texto e datas
Não confie em uma fórmula do Excel sugerida por IA depois de testá-la apenas com linhas normais. Use uma pequena planilha sintética para testar vazios, zero, texto e datas e depois compare os resultados esperados com um script simples em Python.
Conteúdo verificado 2026.09.21Inclui arquivos de exemplo
Ver o sumário
A tradução foi feita com IA. Confira o código, as unidades e os valores junto com o original. A revisão por falantes nativos de cada idioma ainda não foi concluída. English
Para quem éProfissionais que usam um assistente de chat com IA para criar fórmulas do Excel e querem testá-las antes de aplicá-las a arquivos reais de trabalho.
Preparação
Excel ou outro aplicativo de planilha compatível com fórmulas comuns do Excel
Python 3.12
01Por que uma fórmula que funciona em uma linha ainda pode estar errada
Um assistente de chat com IA pode sugerir uma fórmula do Excel que parece correta com dados comuns, mas que se comporta de forma diferente quando uma célula está vazia, o denominador é zero, aparece texto onde deveria haver um número ou uma data está armazenada como número de série do Excel. Esses casos importam porque erros em planilhas nem sempre aparecem como #DIV/0! ou #VALUE!. Uma fórmula também pode retornar um número aparentemente plausível que esteja logicamente errado.
O exemplo abaixo é sintético. Suponha que a coluna A contenha um valor antigo, a coluna B um valor novo e a coluna C deva calcular a variação percentual como (novo - antigo) / antigo. A regra de trabalho é manter vazios como vazios, marcar denominadores zero e valores não numéricos como CHECK e não tratar datas como medições numéricas comuns.
02Crie uma pequena planilha com casos extremos intencionais
Antes de aplicar a fórmula a uma pasta de trabalho real, crie uma pequena planilha de teste. Use as linhas abaixo para visualizar juntos valores normais e casos comuns de falha.
Linha
A: Valor antigo
B: Valor novo
Resultado esperado
2
100
120
20%
3
50
50
0%
4
25
blank
5
0
10
CHECK
6
pending
10
CHECK
7
100
n/a
CHECK
8
2026-10-01
2026-10-08
CHECK
As duas primeiras linhas estabelecem o comportamento normal: (120 - 100) / 100 = 0.20, ou 20%, e (50 - 50) / 50 = 0%. As demais linhas são testes, e não dados normais de produção.
03Peça uma fórmula à IA e examine as suposições
Uma solicitação simples a um assistente de chat com IA poderia ser: calcule a variação percentual de A2 para B2 e deixe o resultado vazio se ocorrer um erro.
Essa fórmula funciona para 100 até 120 e para 50 até 50. Porém, IFERROR esconde vários problemas diferentes atrás do mesmo resultado vazio. Um denominador zero, uma entrada de texto ou outro erro de fórmula podem desaparecer em vez de serem identificados para revisão. Mais importante ainda, o Excel armazena datas internamente como números de série. Se A2 e B2 contiverem datas reais do Excel, a subtração e a divisão podem produzir uma porcentagem numérica em vez de um erro evidente.
Isso significa que um cálculo bem-sucedido não é evidência suficiente de que as entradas pertencem ao tipo de dado esperado.
04Torne a fórmula mais explícita e teste cada linha
Para as regras definidas, uma fórmula mais explícita seria:
Essa versão diferencia vazios, entradas não numéricas e denominador zero. Assim, as linhas 2 a 7 se comportam como previsto. Formate os resultados numéricos da coluna C como Percentage se quiser mostrar 0.20 como 20%.
A linha 8 revela uma limitação importante. Datas do Excel são números internamente, portanto ISNUMBER retorna TRUE para uma data real. A fórmula defensiva ainda pode calcular usando datas. Uma fórmula genérica não consegue determinar de forma confiável se um número de série representa uma medição numérica intencional ou uma data indesejada apenas pelo valor.
05Confira a regra esperada com Python
Como segunda verificação, salve os casos sintéticos em formula_cases.csv com as colunas row,old_value,new_value. Mantenha 2026-10-01 e 2026-10-08 exatamente como estão. O script abaixo, baseado apenas na biblioteca padrão, aplica a regra esperada de forma independente: vazios permanecem como blank, datas em formato ISO são marcadas como CHECK, valores não numéricos são marcados como CHECK, valores antigos iguais a 0 são marcados como CHECK e números válidos são usados no cálculo da variação percentual.
python
from pathlib import Path
from decimal import Decimal, InvalidOperation
from datetime import date
import csv
import sys
INPUT_PATH = Path("formula_cases.csv")
OUTPUT_DIR = Path("outputs")
REPORT_PATH = OUTPUT_DIR / "formula_check_report.txt"
if not INPUT_PATH.is_file():
sys.exit("Missing input file: formula_cases.csv")
if OUTPUT_DIR.exists():
sys.exit("Stop: outputs folder already exists. Remove or rename it manually first.")
def is_iso_date(value):
try:
date.fromisoformat(value)
return True
except ValueError:
return False
def check_change(old_text, new_text):
old_text = old_text.strip()
new_text = new_text.strip()
if old_text == "" or new_text == "":
return "blank"
if is_iso_date(old_text) or is_iso_date(new_text):
return "CHECK"
try:
old = Decimal(old_text)
new = Decimal(new_text)
except InvalidOperation:
return "CHECK"
if old == 0:
return "CHECK"
change = (new - old) / old * Decimal("100")
return f"{change:.2f}%"
results = []
with INPUT_PATH.open("r", encoding="utf-8", newline="") as file:
reader = csv.DictReader(file)
required = {"row", "old_value", "new_value"}
if reader.fieldnames is None or not required.issubset(reader.fieldnames):
sys.exit("CSV must contain: row, old_value, new_value")
for record in reader:
result = check_change(record["old_value"], record["new_value"])
results.append(
f"Row {record['row']}: "
f"old={record['old_value']!r}, "
f"new={record['new_value']!r} -> {result}"
)
OUTPUT_DIR.mkdir()
REPORT_PATH.write_text("\n".join(results) + "\n", encoding="utf-8")
print(f"Created: {REPORT_PATH}")
Para as sete linhas sintéticas, os resultados esperados em Python são 20.00%, 0.00%, blank, CHECK, CHECK, CHECK e CHECK. Compare os resultados linha por linha em vez de verificar apenas se o Excel mostra um erro.
06Erros comuns ao verificar fórmulas sugeridas por IA
Testar apenas uma linha normal e depois copiar a fórmula para milhares de linhas.
Usar IFERROR para esconder todas as falhas sem diferenciar dados ausentes de dados inválidos.
Esquecer que uma divisão por zero exige uma regra de trabalho explícita.
Supor que células com aparência numérica ou formato numérico sempre contêm o tipo de dado esperado.
Esquecer que datas do Excel são armazenadas como números e podem participar de operações aritméticas.
Comparar porcentagens exibidas sem conferir se o valor interno é 0.20, 20 ou outra escala.
Alterar a fórmula até os erros visíveis desaparecerem em vez de definir primeiro os resultados esperados.
Python é útil aqui porque permite implementar a mesma regra de forma independente. Não basta reproduzir a fórmula do Excel caractere por caractere. Se as duas implementações compartilharem a mesma suposição incorreta, a verificação cruzada pode repetir exatamente o mesmo erro.
07Use uma lista final para testar a fórmula
Escreva a regra de cálculo desejada em linguagem simples antes de aceitar uma fórmula.
Crie linhas de teste com valores normais, vazios, zero, texto e datas.
Calcule manualmente os resultados simples esperados.
Decida se erros devem ficar vazios, ser sinalizados ou interromper o processo em vez de serem ocultados automaticamente.
Confirme como datas e outros tipos especiais do Excel são representados.
Confira a regra com um cálculo independente quando o resultado for importante.
Só então aplique a fórmula ao conjunto completo de dados.
A principal lição é que verificar uma fórmula não é apenas um problema de sintaxe, mas também de tipos de dados e regras de trabalho. Uma fórmula gerada por IA é uma implementação provisória. Os testes com casos extremos mostram se essa implementação realmente corresponde ao comportamento necessário.
Registro de execução e verificação
2026-09-21 · hand-checked example · Python 3.12
Foi verificado manualmente que (120 - 100) / 100 = 0.20, ou 20%.
Foi verificado manualmente que (50 - 50) / 50 = 0, ou 0%.
Foi verificado que uma entrada vazia deve produzir blank segundo a regra sintética definida.
Foi verificado que um valor antigo igual a 0 não pode ser usado como denominador e, portanto, deve ser marcado como CHECK.
Foi verificado que pending e n/a são entradas não numéricas e devem ser marcadas como CHECK.
Foi verificado que a regra em Python detecta explicitamente as datas ISO 2026-10-01 e 2026-10-08 e marca a linha como CHECK.
Foi verificado que o script lê formula_cases.csv, grava apenas outputs/formula_check_report.txt e para se a pasta outputs já existir.
Limites da verificação
O código foi revisado e o pequeno exemplo foi conferido manualmente, mas eu não executei o código.
O exemplo em Python reconhece datas ISO como 2026-10-01, mas não tenta reconhecer todos os formatos regionais possíveis.
O Excel armazena datas reais como números de série, portanto ISNUMBER sozinho não consegue distinguir uma data de uma medição numérica comum.
A exportação para CSV pode alterar a forma como datas e formatação de células são representadas, portanto a verificação por CSV não inspeciona a formatação original das células do Excel.
Pastas de trabalho reais podem exigir testes adicionais para valores de erro, porcentagens, fórmulas que retornam strings vazias, formatos numéricos regionais e regras de validação específicas do domínio.
Transforme “automatize isso” em uma descrição de tarefa executável. Anexe uma amostra sintética sem dados sensíveis e um resultado esperado verificado manualmente para completar uma solicitação de script que totaliza registros de trabalho por equipe.
Verifique uma função de agregação com quatro linhas que você pode calcular manualmente e 12 unit tests. Verifique não apenas valores normais, mas também entrada vazia, zero, decimais e entrada inválida.
Separe um resumo plausível em fatos, cálculos e interpretações. Recalcule proporções e médias a partir de dados mensais sintéticos e reescreva frases com fontes ausentes ou causas exageradas como afirmações que possam ser verificadas.
Trate uma regex gerada por IA como um rascunho, não como uma regra final. Monte uma pequena tabela de testes sintéticos, compare os resultados esperados com as correspondências reais, revise o padrão e salve um relatório de revisão antes de usá-lo em dados reais.