Validating Excel Column Schemas
Markdown--- name: validating-excel-column-schemas description: Valida archivos Excel contra un esquema fijo de 16 columnas (A:P), verificando encabezados exactos, orden, formatos de dato, valores permitidos, campos obligatorios y reglas condicionales entre columnas. Úsalo cuando el usuario solicite revisar la estructura o los datos de una hoja Excel según este esquema de clientes/organizaciones (TIPO DOC., NUMERO DOC., DIGITO VERIF., TIPO ORGANIZACIÓN, etc.). --- # Validación de columnas y datos de Excel
Inspeccionar un archivo Excel (solo lectura) y detectar todas las anomalías de:
- Encabezados ausentes, incorrectos, duplicados o fuera de orden.
- Datos en columnas distintas a las esperadas, o fuera del rango
A:P. - Celdas vacías en campos obligatorios.
- Tipos de dato incompatibles con el formato requerido.
- Valores fuera de catálogos permitidos.
- Incumplimiento de reglas condicionales (
TIPO ORGANIZACIÓN→DIGITO VERIF., nombres/apellidos).
No modificar, corregir ni reordenar el archivo original salvo petición explícita.
- Identifica el archivo y todas las hojas con datos.
- Fila 1 = encabezados; fila 2 en adelante = registros.
- Compara
A1:P1exactamente contra el esquema (ver tabla abajo), carácter por carácter, incluyendo tildes y mayúsculas. - Recorre cada fila de datos aplicando reglas de tipo, obligatoriedad, catálogo y condicionales.
- Revisa si hay datos no vacíos en columnas
Qen adelante. - Produce la tabla de anomalías + resumen final (
VÁLIDO/NO VÁLIDO).
No declares VÁLIDO sin haber recorrido todas las filas y hojas.
| Col | Encabezado exacto | Tipo | Obligatorio | Regla |
|---|---|---|---|---|
| A | TIPO DOC. | Texto o entero | Sí | Solo 3,6,4,7,10 |
| B | NUMERO DOC. | Texto | Sí | Conservar ceros iniciales |
| C | DIGITO VERIF. | Entero | Sí | Si D=2 → C=0; si D=1 → C≠0 |
| D | TIPO ORGANIZACIÓN | Entero | Sí | Solo 1 o 2 |
| E | TIPO CONTRIB. | Entero | Sí | Solo 7,9,14,112,117 |
| F | REGIMEN | Entero | Sí | Solo 1 o 2 |
| G | PRIMER NOMBRE | Texto | Condicional | D=1→opcional; D=2→obligatorio |
| H | SEGUNDO NOMBRE | Texto | Condicional | igual que G |
| I | PRIMER APELLIDO | Texto | Condicional | igual que G |
| J | SEGUNDO APELLIDO | Texto | Condicional | igual que G |
| K | RAZON SOCIAL | Texto | Sí | No vacío |
| L | EMAIL | Texto | Sí | No vacío (sin validar formato) |
| M | DIRECCION | Texto | Sí | No vacío |
| N | TELEFONO | Texto | Sí | Conservar ceros/prefijos |
| O | PAIS CODIGO | Entero | Sí | Sin catálogo definido |
| P | CODIGO CIUDAD | Entero | Sí | Sin catálogo definido |
Reglas de interpretación de tipos:
- Texto almacenado como número en columna de texto → anomalía de formato (no convertir silenciosamente).
- Entero: sin decimales;
"7"texto no vale como entero salvo enTIPO DOC.. - Vacío = sin valor o solo espacios en blanco.
- No aceptar
7.0como entero válido si no está almacenado como entero real. - Si no se puede determinar el formato interno con certeza, repórtalo como limitación, no como válido por defecto.
Progreso:
- Identificar hojas con datos
- Validar encabezados A1:P1 (nombre + posición exacta)
- Detectar datos fuera de A:P
- Validar tipo de dato por celda, todas las filas
- Validar obligatoriedad (vacíos) por celda
- Validar catálogos (TIPO DOC., TIPO ORGANIZACIÓN, TIPO CONTRIB., REGIMEN)
- Validar regla condicional DIGITO VERIF. vs TIPO ORGANIZACIÓN
- Validar regla condicional nombres/apellidos vs TIPO ORGANIZACIÓN
- Construir tabla de anomalías con celdas exactas
- Construir resumen y veredicto final
Notas de ejecución:
- Evalúa todas las columnas de una fila; no te detengas en la primera anomalía.
- Una celda puede acumular varias anomalías (tipo + catálogo); repórtalas todas.
- Filas totalmente vacías entre registros: ignóralas, no son anomalía.
- Columnas vacías dentro de A:P: no reajustes posiciones; valida contra la posición real y reporta encabezados faltantes/fuera de orden.
- Si
TIPO ORGANIZACIÓNes inválido o vacío: reporta esa anomalía, pero no asumas regla condicional de nombres/dígito; valida igual el resto de columnas independientes. - Fórmulas: usa el valor calculado disponible; si no hay resultado confiable, repórtalo como "no se pudo validar".
- No inventes reglas no especificadas (formato de email, longitud de teléfono, catálogos de país/ciudad).
Tabla Markdown:
| Hoja | Celda | Columna esperada | Valor encontrado | Tipo de anomalía | Detalle |
|---|
- Celda = dirección exacta (
C8,Q2). - Datos fuera de A:P → columna esperada =
FUERA DE RANGO A:P. - Vacíos → mostrar
(vacío). - No omitir anomalías repetidas entre filas.
- Minimizar exposición de datos sensibles ajenos a la anomalía reportada.
Resumen final (siempre incluir):
- Archivo, hojas revisadas, filas examinadas por hoja.
- Total de anomalías y conteo por categoría (estructura/encabezados, vacíos, formato, catálogo, condicionales).
- Veredicto:
VÁLIDOsolo si cero anomalías; si no,NO VÁLIDO.
Ejemplo 1 — Valor no permitido:
Input: A4 = 5 (entero)
Output: fila de anomalía — "Valor no permitido. Los valores permitidos son 3, 6, 4, 7 y 10."
Ejemplo 2 — Campo obligatorio vacío:
Input: L8 vacío (EMAIL)
Output: Clientes | L8 | EMAIL | (vacío) | Campo obligatorio vacío | EMAIL no puede estar vacío.
Ejemplo 3 — Regla DIGITO VERIF.:
Input: D2=2, C2=4
Output: anomalía en C2 — "Para TIPO ORGANIZACIÓN=2, DIGITO VERIF. debe ser 0."
Ejemplo 4 — Nombres condicionales:
Input: D3=2, H3 vacío
Output: anomalía en H3 — "SEGUNDO NOMBRE obligatorio cuando TIPO ORGANIZACIÓN=2."
Ejemplo 5 — Encabezados invertidos:
Input: A1="NUMERO DOC.", B1="TIPO DOC."
Output: dos filas de anomalía, una por celda, indicando el encabezado esperado en cada posición.
Ejemplo 6 — Dato fuera de rango:
Input: Q2 = "Observaciones adicionales"
Output: Clientes | Q2 | FUERA DE RANGO A:P | Observaciones adicionales | Dato fuera de rango | Solo se permiten columnas A:P.
Ejemplo 7 — Sin anomalías: Output: "Resultado: VÁLIDO — Se revisaron todas las hojas, encabezados, tipos, obligatorios, catálogos y condicionales. No se encontraron anomalías."
- Verificar tildes, mayúsculas y espacios exactos en encabezados; no normalizar antes de comparar.
- Tratar
NUMERO DOC.yTELEFONOsiempre como texto, preservando ceros iniciales. - Reportar cada incumplimiento de forma explícita, aunque varias celdas compartan el mismo motivo.
- Usar la lista de comprobación final antes de entregar el resultado.
- Todas las hojas con datos revisadas
- Encabezados exactos y en orden A:P
- Todas las filas de datos revisadas
- Tipos de dato y obligatoriedad verificados
- Catálogos permitidos verificados
- Reglas condicionales (DIGITO VERIF., nombres/apellidos) aplicadas
- Celdas fuera de A:P inspeccionadas
- Cada anomalía con referencia de celda exacta
- Total del resumen coincide con anomalías listadas
- Archivo original sin cambios
- No declarar
VÁLIDOsin revisar todas las filas/hojas. - No convertir tipos silenciosamente para "hacer pasar" una celda.
- No inventar validaciones de formato de email, teléfono o catálogos de país/ciudad.
- No ignorar celdas fuera de A:P.
- No asumir reglas condicionales cuando
TIPO ORGANIZACIÓNes inválido/vacío. - No desplazar columnas para compensar columnas vacías dentro de A:P.