Una hoja de cálculo no es una base de datos diminuta, y tratarla como si lo fuera causa la mayoría de los desastres. Úsala como una herramienta de cálculo visible: mantén simples los datos originales, haz explícitas las transformaciones y coloca los resúmenes encima. Este es el conjunto de recursos en el que confío para presupuestos, operaciones y análisis.
🎙️ Publicado y grabado: · Actualizado ·
Las referencias relativas se mueven; las absolutas permanecen fijas. La frase es sencilla. Lo costoso es detectar qué dato es una regla compartida por todas las filas. Si el impuesto está en B1, fíjalo como $B$1. Si el precio cambia en cada fila de C, deja C2 como referencia relativa. Presiona F4 mientras editas una referencia para alternar los signos de dólar.
Cantidad en B2 · precio unitario en C2 · tasa de impuesto en F1
=B2*C2*(1+$F$1) ✓ al copiar hacia abajo, las filas cambian; el impuesto no
=B2*C2*(1+F1) ✗ al copiar hacia abajo, F1 se convierte en F2, F3...
las referencias mixtas sirven para cuadrículas
=$A2*B$1 fija la columna A; fija la fila 1
F1 por F2, que estaba vacío. Solución: haz clic en la primera celda incorrecta, revisa la barra de fórmulas, cambia la celda de la regla a $F$1, copia hacia abajo y concilia el total general con cantidad × precio antes de impuestos.Usa XLOOKUP en lugar de VLOOKUP cuando esté disponible. Indicas directamente la columna de la clave y la columna del resultado, puede buscar hacia la izquierda y la coincidencia exacta es la opción predeterminada. Mejor aún: decide qué significa una clave ausente en vez de ocultarla con una celda vacía.
=XLOOKUP(A2, Products[SKU], Products[Price], "MISSING SKU")
#N/A cuando no se proporciona el argumento [if_not_found]
Solución: 1. copia el SKU que falla en el filtro de Products
2. compara los caracteres exactos y los tipos de datos
3. agrega el producto o corrige la entrada
4. usa "MISSING SKU", no "", para que las filas incorrectas sigan visibles
00127 como el número 127. La tabla de productos lo almacenaba como texto, por lo que la fórmula devolvió el error real #N/A. Convertir ambas columnas de claves en texto y restaurar los ceros iniciales resolvió el problema. Envolver todo en IFERROR(...,0) habría producido una línea de cero dólares que parecía válida, pero era falsa.Deja de copiar filas en una segunda pestaña llamada “Final v7”. Una vista dinámica debe ser una fórmula, no un ritual mensual. FILTER selecciona filas; SORT ordena el resultado. Mantén el origen como una tabla bien estructurada para que las filas nuevas se incorporen automáticamente.
=SORT(FILTER(Orders, Orders[Status]="Late", "No late orders"), 5, -1)
devuelve los pedidos atrasados, primero la columna 5 más reciente o mayor
#VALUE!
Los rangos de FILTER tienen alturas diferentes:
=FILTER(A2:F500, G2:G499="Late")
Solución: haz que ambos rangos terminen en la fila 500 o usa columnas de tabla.
#VALUE!; otra solución manual desplazó cada estado un cliente. Primero corrige las dimensiones, prueba un ID de pedido conocido y luego compara el número de resultados con COUNTIF(Orders[Status],"Late").Una tabla dinámica responde “¿cuánto, agrupado por qué?”. Coloca una categoría en Rows, una medida en Values y un campo opcional en Columns o Filters. Mi regla: crea la tabla dinámica antes que el gráfico. Si el resumen no tiene sentido, un gráfico pulido solo hará que el absurdo parezca convincente.
Pregunta: ingresos por región y mes
Rows: Region
Columns: Order date → group by Month
Values: Revenue → Sum not Count
Filter: Status ≠ Cancelled
Comprobación: pivot grand total = SUM source Revenue after same filter
$1,200 USD como texto. La tabla dinámica eligió Count sin avisar y mostró 184 en vez de $213,400. Solución: elimina las palabras de moneda, convierte la columna en números, actualiza la tabla dinámica, cambia “Summarize values by” a Sum y concilia el total general con el origen.Una fecha real en una hoja de cálculo es un número de serie que se muestra como fecha de calendario. El texto que parece una fecha no deja de ser texto. Esa diferencia explica los órdenes incorrectos, las tablas dinámicas mensuales vacías y las operaciones aritméticas que no funcionan. Guarda una fecha por celda, usa un formato de importación inequívoco como ISO 2026-07-24 y aplica después el formato de presentación.
=A2+30 30 días calendario después
=EDATE(A2,1) el mismo día del mes siguiente
=EOMONTH(A2,0) último día de este mes
=NETWORKDAYS(A2,B2) días laborables, ambos inclusive
#VALUE! from ="July 24, 2026"-A2
Solución: convierte el texto importado con DATEVALUE después de confirmar la configuración regional.
03/04/2026 como 4 de marzo; la oficina del Reino Unido lo leyó como 3 de abril. Las métricas de entrega se desplazaron un mes sin que apareciera ningún error de fórmula. Solución: conserva la importación original, interpreta día, mes y año de forma explícita, muestra 24 Jul 2026 y revisa algunas fechas en las que ambos primeros números sean 12 o menores.La mayoría de los “errores de búsqueda” se deben a texto sucio. TRIM elimina los espacios adicionales comunes, CLEAN quita muchos caracteres no imprimibles y SUBSTITUTE se encarga de elementos intrusos conocidos. Conserva la columna original. Crea una clave limpia en otra columna para que la transformación pueda auditarse.
=UPPER(TRIM(CLEAN(A2)))
los espacios de no separación copiados de una página web sobreviven a TRIM:
=TRIM(SUBSTITUTE(A2,CHAR(160)," "))
#N/A aunque "ACME-42" parece idéntico
Diagnóstico: =LEN(A2) and =UNICODE(RIGHT(A2,1))
Solución: elimina el carácter detectado en una columna auxiliar.
Northwind fallaba en todas las búsquedas porque el valor importado terminaba con un espacio de no separación. Al hacer clic en la celda no se veía nada extraño. LEN devolvía 10 en vez de 9. Solución: reemplaza el carácter 160, elimina los espacios sobrantes, verifica la longitud y apunta las búsquedas a la clave limpia.No pintes los errores de blanco ni empieces con IFERROR. Lee el mensaje. #N/A significa que no hay coincidencia. #VALUE! indica que el tipo de entrada es incorrecto. #REF! significa que la fórmula apunta a un lugar que ya no existe. Cada uno requiere una solución diferente.
#N/A → revisa la clave, el tipo, los espacios y su presencia en el origen
#VALUE! → busca texto donde se espera un número o una fecha
#REF! → fila, columna u hoja eliminada o movida, o dependencia cerrada
Fórmula real dañada después de eliminar la columna D:
=SUM(B2:C2)+#REF!
Solución: deshaz la acción si es posible; de lo contrario, identifica el origen previsto
en una versión anterior, restaura la referencia y prueba filas conocidas.
#REF! en todo el pronóstico. Para cumplir con una fecha límite, reemplazó los errores por cero y subestimó los costos. Recuperación correcta: deja de editar, restaura la versión anterior del archivo, compara las fórmulas, restablece la columna de tipos de cambio o el rango con nombre y agrega un total de control en ambas monedas.Las fórmulas modernas devuelven muchas celdas a partir de una sola fórmula. Eso es una matriz desbordada. La celda superior izquierda controla el resultado; las celdas circundantes deben permanecer vacías. No escribas en medio de ella. Usa el operador de desbordamiento para referirte a todo el resultado, por ejemplo, J2#.
=UNIQUE(Orders[Region]) una fórmula, muchas filas
=SORT(UNIQUE(Orders[Region]))
#SPILL! "There's already data in E7."
Solución: select the warning → Select Obstructing Cells → move or
clear those cells; unmerge cells; place formula outside a table.
Nunca borres a ciegas: primero revisa la obstrucción.
#SPILL! porque la celda E37 contenía un solo apóstrofo de una nota manual anterior. Desde la parte superior, parecía que la tecla Suprimir no hacía nada. Solución: usa “Select Obstructing Cells”, revisa E37, borra su contenido y protege el área de resultados desbordados contra la entrada manual.Estoy firmemente en contra de las fórmulas IF anidadas de doce niveles. Son código sin nombres ni pruebas, con paréntesis como camuflaje. Si las reglas de negocio forman una correspondencia, colócalas en una tabla y usa XLOOKUP. Si son rangos, guarda los umbrales en orden ascendente y usa una coincidencia aproximada. Las reglas deben estar donde otra persona pueda leerlas.
=IF(A2<10,"Tiny",IF(A2<25,"Small",IF(A2<50,"Medium",
IF(A2<100,"Large",IF(... twelve levels ...)))))
Tabla de umbrales:
Minimum | Band
0 | Tiny
10 | Small
25 | Medium
50 | Large
=XLOOKUP(A2, Bands[Minimum], Bands[Band],, -1)
Ahora, cambiar una regla significa editar una fila, no hacer cirugía.
Un libro confiable es aburrido de heredar. Los datos originales están intactos. Las reglas viven en celdas o tablas con nombre. Los errores permanecen visibles hasta resolverse. Un resumen se concilia con el origen. Antes de enviarlo, usa esta lista.
□ una tabla rectangular de datos originales; un campo por columna
□ se usan ID estables, no nombres, como claves de búsqueda
□ las celdas de reglas compartidas están fijadas con $ o tienen nombre
□ las fechas son fechas reales; los importes son números reales
□ los casos ausentes de XLOOKUP dicen "MISSING", nunca cero sin avisar
□ tablas dinámicas actualizadas y totales generales conciliados
□ #N/A, #VALUE!, #REF! y #SPILL! investigados
□ casos límite probados; IF de 12 niveles reemplazado por una tabla
□ una copia limpia abre correctamente en otra máquina