Excel + Auditoría de Datos
Excel + Data Auditing

Excel como Laboratorio Forense de Data Quality

Excel as a Forensic Data Quality Lab

20 casos para detectar errores invisibles, validar reglas, encontrar cruces rotos y preparar datos confiables antes de tomar decisiones.

20 cases to detect invisible errors, validate rules, find broken matches, and prepare trusted data before decisions are made.

La idea central

The core idea

Excel sigue siendo una de las herramientas más rápidas para inspeccionar datos con ojos de auditor. Con las fórmulas correctas y Power Query, puedes pasar de revisar celdas manualmente a crear controles repetibles que detecten formatos rotos, duplicados, excepciones y registros sospechosos.

Excel remains one of the fastest tools for inspecting data with an auditor’s eye. With the right formulas and Power Query, you can move from manually checking cells to creating repeatable controls that detect broken formats, duplicates, exceptions, and suspicious records.

Cómo usar estos casos sin romper nada

How to use these cases without breaking anything

Formatos Formats

1. Detectar números guardados como texto

1. Detect numbers stored as text

Un error clásico que rompe sumas y cruces (VLOOKUP/XLOOKUP). Identifica celdas que parecen números pero no lo son.

A classic error that breaks sums and lookups. Identifies cells that look like numbers but aren't.

Ejemplo baseBase example
=IF(ISTEXT([@Amount]), "Format Error", "OK")
Comparación Comparison

2. Validar coincidencias exactas (Case-Sensitive)

2. Validate exact matches (Case-Sensitive)

A diferencia del signo '=', la función EXACT diferencia mayúsculas de minúsculas al auditar contraseñas o IDs.

Unlike the '=' sign, the EXACT function differentiates uppercase from lowercase when auditing passwords or IDs.

Ejemplo baseBase example
=IF(EXACT([@System_A_ID], [@System_B_ID]), "Match", "Mismatch")
Fórmulas Ocultas Hidden Formulas

3. Detectar entradas manuales en columnas de cálculo

3. Detect manual entries in calculated columns

Encuentra dónde un usuario sobrescribió una fórmula introduciendo un número fijo o "quemado".

Finds where a user overwrote a formula by hardcoding a fixed number.

Ejemplo baseBase example
=IF(NOT(ISFORMULA([@Total_Tax])), "Manual Override!", "Formula OK")
Caracteres Characters

4. Limpiar espacios "irrompibles" fantasma

4. Clean ghost "non-breaking" spaces

La función TRIM normal no elimina el espacio web (CHAR 160). Esta fórmula sí lo detecta y lo destruye.

The standard TRIM function doesn't remove web spaces (CHAR 160). This formula detects and destroys it.

Ejemplo baseBase example
=TRIM(SUBSTITUTE([@Account_Name], CHAR(160), " "))
Outliers Outliers

5. Detectar valores atípicos (Desviación Estándar)

5. Detect outliers (Standard Deviation)

Levanta banderas en montos inusualmente altos o bajos en comparación con el comportamiento histórico normal.

Raises flags on unusually high or low amounts compared to normal historical behavior.

Ejemplo baseBase example
=IF(ABS([@Amount] - AVERAGE([Amount])) > (2 * STDEV.P([Amount])), "Outlier Alert", "Normal")
Seguridad SoD SoD Security

6. Conflicto de Segregación de Funciones

6. Segregation of Duties Conflict

Detecta si la misma persona que creó una transacción también fue quien la aprobó (Riesgo de fraude).

Detects if the same person who created a transaction was also the one who approved it (Fraud risk).

Ejemplo baseBase example
=IF([@Created_By] = [@Approved_By], "SoD Violation", "Compliant")
Lógica de Tiempo Time Logic

7. Auditar operaciones en fines de semana

7. Audit weekend operations

Revisa si se procesaron pagos, contrataciones o bajas en días no laborables (sábado=7, domingo=1).

Checks if payments, hires, or terminations were processed on non-working days (Saturday=7, Sunday=1).

Ejemplo baseBase example
=IF(OR(WEEKDAY([@Transaction_Date])=1, WEEKDAY([@Transaction_Date])=7), "Weekend Review", "Weekday")
Fraude Financiero Financial Fraud

8. Análisis Forense: Ley de Benford

8. Forensic Analysis: Benford's Law

Extrae el primer dígito significativo de un monto financiero para evaluar si los datos fueron inventados.

Extracts the first significant digit of a financial amount to evaluate if the data was fabricated.

Ejemplo baseBase example
=VALUE(LEFT(TEXT(ABS([@Amount]), "0.00"), 1))
Conciliación Reconciliation

9. Encontrar registros ausentes (Cruces)

9. Find missing records (Cross-checks)

Cruza tu tabla contra un reporte externo (ej. Banco) y señala qué registros internos no están en el otro sistema.

Cross-checks your table against an external report (e.g. Bank) and flags which internal records are missing from the other system.

Ejemplo baseBase example
=IF(ISNA(MATCH([@Invoice_ID], BankReport[Reference_Num], 0)), "Missing in Bank", "Reconciled")
Longitud Length

10. Validar formato de IDs Oficiales

10. Validate Official ID formatting

Comprueba que los documentos de identidad, SSN o números de teléfono tengan la longitud de caracteres obligatoria.

Verifies that ID documents, SSNs, or phone numbers have the mandatory character length.

Ejemplo baseBase example
=IFS(LEN(TRIM([@SSN]))<>9, "Length Error", NOT(ISNUMBER(VALUE([@SSN]))), "Contains Text", TRUE, "Valid")
Completitud Completeness

11. Perfilar vacíos por registro individual

11. Profile blanks per individual record

Cuenta cuántas celdas obligatorias están vacías en la fila de un empleado o cliente para medir su calidad de datos.

Counts how many mandatory cells are blank in an employee or customer's row to measure data quality.

Ejemplo baseBase example
=COUNTBLANK(TableMaster[@[First_Name]:[Phone_Number]])
Lógica Cruzada Cross-field Logic

12. Detectar fechas o eventos imposibles

12. Detect impossible dates or events

Asegura que la lógica secuencial se cumpla (ej. un proyecto no puede terminar antes de haber empezado).

Ensures sequential logic is met (e.g. a project cannot end before it has started).

Ejemplo baseBase example
=IF([@End_Date] < [@Start_Date], "Logic Error: End < Start", "Chronological")
Duplicados Complejos Complex Duplicates

13. Auditar duplicados por criterios múltiples

13. Audit duplicates by multiple criteria

Un ID distinto no significa que no sea duplicado. Detecta si la misma persona fue ingresada el mismo día.

A distinct ID doesn't mean it's not a duplicate. Detects if the same person was entered on the same day.

Ejemplo baseBase example
=IF(COUNTIFS(Table1[Full_Name], [@Full_Name], Table1[Entry_Date], [@Entry_Date]) > 1, "Possible Duplicate", "Unique")
Mapeo Mapping

14. Extraer dominios para validar proveedores

14. Extract domains to validate vendors

Extrae el final de un correo electrónico para comparar si un proveedor está usando un dominio corporativo o uno gratuito (Gmail/Yahoo).

Extracts the end of an email to check if a vendor is using a corporate domain or a free one (Gmail/Yahoo).

Ejemplo baseBase example
=RIGHT([@Email], LEN([@Email]) - SEARCH("@", [@Email]))
Reglas Negativas Negative Rules

15. Auditar montos cero o negativos

15. Audit zero or negative amounts

Identifica ajustes contables o errores de sistema donde un cobro no debería ser cero o menor.

Identifies accounting adjustments or system errors where a charge shouldn't be zero or less.

Ejemplo baseBase example
=IFS([@Billed_Amount] < 0, "Negative Charge", [@Billed_Amount] = 0, "Zero Charge", TRUE, "Valid")
Fuzzy Match (PQ) Fuzzy Match (PQ)

16. Detectar nombres similares por errores de tipeo

16. Detect similar names due to typos

Power Query puede encontrar variaciones sutiles (ej. "Microsoft" vs "Micro soft") usando algoritmos de proximidad.

Power Query can find subtle variations (e.g. "Microsoft" vs "Micro soft") using proximity algorithms.

Ejemplo baseBase example
Data → Get Data → Merge Queries
* Check: "Use fuzzy matching to perform the merge"
* Adjust Similarity Threshold (e.g. 0.80)
Data Profiling (PQ) Data Profiling (PQ)

17. Activar el Perfilado de Calidad de Columnas

17. Enable Column Quality Profiling

Usa la herramienta nativa de Power Query para ver el % exacto de errores, valores vacíos y únicos en un clic.

Use the native Power Query tool to see the exact % of errors, empty, and unique values in one click.

Ejemplo baseBase example
Power Query Editor:
View tab → Check "Column Quality"
View tab → Check "Column Profile"
(Shows distributions, min, max, and distinct counts instantly)
Anti-Join (PQ) Anti-Join (PQ)

18. Encontrar registros borrados u huérfanos

18. Find deleted or orphaned records

Cruza el archivo Viejo contra el archivo Nuevo para aislar exclusivamente las filas que desaparecieron del sistema.

Cross the Old file against the New file to isolate exclusively the rows that disappeared from the system.

Ejemplo baseBase example
Power Query: Merge Queries
Join Kind: Left Anti (rows only in first)
* Compares OldTable to NewTable. Output is a list of deleted records.
Filtros Dinámicos Dynamic Filters

19. Matriz de Excepciones Dinámica (FILTER)

19. Dynamic Exceptions Matrix (FILTER)

Crea un reporte vivo que extraiga automáticamente toda la fila de datos si la columna "Estatus" marca error.

Creates a living report that automatically extracts the entire data row if the "Status" column flags an error.

Ejemplo baseBase example
=FILTER(Transactions, Transactions[Audit_Flag] <> "Valid", "No Errors Found")
Formatos Condicionales Conditional Formatting

20. Iluminar la fila completa del problema

20. Highlight the entire problem row

No pintes solo una celda. Fija la columna en el formato condicional para que toda la fila cambie de color si falla una auditoría.

Don't just paint one cell. Lock the column in conditional formatting so the whole row changes color if an audit fails.

Ejemplo baseBase example
Home → Conditional Formatting → New Rule
Formula: =$M2="Audit Flag"
Format: Red Fill, White Text
Applies to: =$A$2:$Z$10000