Cómo probar una fórmula de Excel sugerida por IA con celdas vacías, cero, texto y fechas
No conviene confiar en una fórmula de Excel sugerida por IA después de probarla solo con filas normales. Usa una pequeña hoja sintética para probar celdas vacías, cero, texto y fechas, y contrasta después los resultados esperados con un script sencillo de Python.
Contenido revisado 2026.09.21Incluye archivos de ejemplo
Ver el índice
La traducción se ha realizado con IA. Comprueba el código, las unidades y los valores junto con el original. La revisión por hablantes nativos de cada idioma aún no se ha completado. English
Para quién esPersonas que usan un asistente de chat con IA para crear fórmulas de Excel y quieren probarlas antes de aplicarlas a archivos de trabajo reales.
Preparación
Excel u otra hoja de cálculo compatible con fórmulas habituales de Excel
Python 3.12
01Por qué una fórmula que funciona en una fila aún puede estar mal
Un asistente de chat con IA puede sugerir una fórmula de Excel que parece correcta con datos normales, pero que se comporta de otra forma cuando una celda está vacía, el denominador es cero, aparece texto donde se esperaba un número o una fecha está almacenada como número de serie de Excel. Estos casos importan porque los errores de una hoja de cálculo no siempre aparecen como #DIV/0! o #VALUE!. Una fórmula también puede devolver un número aparentemente razonable que sea incorrecto desde el punto de vista lógico.
El ejemplo siguiente es sintético. Supongamos que la columna A contiene un valor anterior, la columna B un valor nuevo y la columna C debe calcular el cambio porcentual como (nuevo - anterior) / anterior. La regla de trabajo es que los vacíos se mantengan vacíos, los denominadores cero y los valores no numéricos se marquen como CHECK y las fechas no se traten como mediciones numéricas normales.
02Crea una pequeña hoja con casos límite deliberados
Antes de aplicar la fórmula a un libro real, crea una hoja pequeña de prueba. Usa las siguientes filas para ver juntos valores normales y casos habituales de fallo.
Fila
A: Valor anterior
B: Valor nuevo
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
Las dos primeras filas establecen el comportamiento normal: (120 - 100) / 100 = 0.20, es decir, 20%, y (50 - 50) / 50 = 0%. Las demás filas son pruebas, no datos normales de producción.
03Pide una fórmula a la IA y revisa sus supuestos
Una petición sencilla a un asistente de chat con IA podría ser: calcula el cambio porcentual de A2 a B2 y deja el resultado vacío si se produce un error.
Esta fórmula funciona para 100 a 120 y para 50 a 50. Sin embargo, IFERROR oculta varios problemas distintos detrás del mismo resultado vacío. Un denominador cero, una entrada de texto u otro error de fórmula pueden desaparecer en lugar de quedar identificados para revisión. Más importante aún, Excel almacena internamente las fechas como números de serie. Si A2 y B2 contienen fechas reales de Excel, la resta y la división pueden producir un porcentaje numérico en lugar de un error evidente.
Por tanto, que el cálculo se complete correctamente no demuestra que las entradas pertenezcan al tipo de datos previsto.
04Haz la fórmula más explícita y prueba cada fila
Para las reglas indicadas, puede usarse una fórmula más explícita:
Esta versión distingue entre vacíos, entradas no numéricas y denominador cero. Por tanto, las filas 2 a 7 se comportan como se pretende. Aplica formato Percentage a los resultados numéricos de la columna C si quieres mostrar 0.20 como 20%.
La fila 8 revela una limitación importante. Las fechas de Excel son números internamente, por lo que ISNUMBER devuelve TRUE para una fecha real. La fórmula defensiva todavía puede calcular con fechas. Una fórmula genérica no puede determinar de forma fiable si un número de serie representa una medición numérica válida o una fecha no deseada únicamente a partir de su valor.
05Contrasta la regla prevista con Python
Como segunda comprobación, guarda los casos sintéticos en formula_cases.csv con las columnas row,old_value,new_value. Mantén 2026-10-01 y 2026-10-08 tal como aparecen. El siguiente script, basado únicamente en la biblioteca estándar, aplica la regla de forma independiente: los vacíos se mantienen como blank, las fechas ISO se marcan CHECK, los valores no numéricos se marcan CHECK, un valor anterior igual a 0 se marca CHECK y los números válidos se usan para calcular el cambio porcentual.
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 las siete filas sintéticas, los resultados esperados de Python son 20.00%, 0.00%, blank, CHECK, CHECK, CHECK y CHECK. Compara los resultados fila por fila en lugar de comprobar únicamente si Excel muestra un error.
06Errores comunes al comprobar fórmulas sugeridas por IA
Probar únicamente una fila normal y después copiar la fórmula en miles de filas.
Usar IFERROR para ocultar todos los fallos sin distinguir entre datos ausentes y datos no válidos.
Olvidar que dividir por cero requiere una regla de trabajo explícita.
Suponer que las celdas que parecen numéricas o tienen formato numérico siempre contienen el tipo de dato previsto.
Olvidar que las fechas de Excel se almacenan como números y pueden participar en operaciones aritméticas.
Comparar porcentajes mostrados sin comprobar si el valor interno es 0.20, 20 u otra escala.
Modificar la fórmula hasta que desaparezcan los errores visibles en lugar de definir primero los resultados esperados.
Python resulta útil porque permite implementar la misma regla de forma independiente. No conviene reproducir literalmente la fórmula de Excel. Si ambas implementaciones comparten el mismo supuesto incorrecto, la comprobación cruzada puede repetir exactamente el mismo error.
07Usa una lista final para probar la fórmula
Escribe en lenguaje normal la regla de cálculo prevista antes de aceptar una fórmula.
Crea filas de prueba con valores normales, vacíos, cero, texto y fechas.
Calcula manualmente los resultados sencillos esperados.
Decide si los errores deben quedar vacíos, marcarse o detener el proceso en lugar de ocultarlos automáticamente.
Comprueba cómo se representan las fechas y otros tipos especiales de Excel.
Contrasta la regla con un cálculo independiente cuando el resultado sea importante.
Solo después aplica la fórmula al conjunto completo de datos.
La idea principal es que verificar una fórmula no es solo un problema de sintaxis, sino también de tipos de datos y reglas de trabajo. Una fórmula generada por IA es una implementación provisional. Las pruebas con casos límite permiten comprobar si esa implementación coincide con el comportamiento que realmente necesitas.
Registro de ejecución y verificación
2026-09-21 · hand-checked example · Python 3.12
Se comprobó manualmente que (120 - 100) / 100 = 0.20, es decir, 20%.
Se comprobó manualmente que (50 - 50) / 50 = 0, es decir, 0%.
Se comprobó que una entrada vacía debe producir blank según la regla sintética indicada.
Se comprobó que un valor anterior de 0 no puede usarse como denominador y por eso debe marcarse CHECK.
Se comprobó que pending y n/a son entradas no numéricas y deben marcarse CHECK.
Se comprobó que la regla de Python detecta explícitamente las fechas ISO 2026-10-01 y 2026-10-08 y marca la fila como CHECK.
Se comprobó que el script lee formula_cases.csv, escribe únicamente outputs/formula_check_report.txt y se detiene si la carpeta outputs ya existe.
Límites de la verificación
El código fue revisado y el pequeño ejemplo se comprobó manualmente, pero yo no ejecuté el código.
El ejemplo de Python reconoce fechas ISO como 2026-10-01, pero no intenta reconocer todos los formatos regionales posibles.
Excel almacena las fechas reales como números de serie, por lo que ISNUMBER por sí solo no puede distinguir una fecha de una medición numérica ordinaria.
Exportar a CSV puede cambiar cómo se representan las fechas y el formato de las celdas, por lo que una comprobación con CSV no inspecciona el formato original de Excel.
Los libros reales pueden necesitar pruebas adicionales para errores, porcentajes, fórmulas que devuelven cadenas vacías, formatos numéricos regionales y reglas de validación específicas del dominio.
Las explicaciones y los ejemplos son de elaboración propia. Puedes consultar los comportamientos y conceptos relacionados en las siguientes fuentes oficiales.
Convierte “automatiza esto” en una descripción de tarea ejecutable. Adjunta una muestra sintética sin datos sensibles y un resultado esperado comprobado manualmente para completar una solicitud de script que totalice registros de trabajo por equipo.
Comprueba una función de agregación con cuatro filas que puedes calcular manualmente y 12 unit tests. Verifica no solo valores normales, sino también entrada vacía, cero, decimales y entrada no válida.
Divide un resumen plausible en hechos, cálculos e interpretaciones. Recalcula proporciones y promedios a partir de datos mensuales sintéticos y reescribe las frases con fuentes faltantes o causas exageradas para convertirlas en afirmaciones comprobables.
Trata una expresión regular generada por IA como un borrador, no como una regla terminada. Crea una pequeña tabla de pruebas sintéticas, compara las coincidencias esperadas con las reales, corrige el patrón y guarda un informe de revisión antes de usarlo con datos reales.