Validando Archivo Excel
YAML--- name: validando-archivo-excel description: Valida la estructura, el orden, los encabezados y los datos de un archivo Excel conforme a un esquema fijo de 16 columnas A:P (TIPO DOC., NUMERO DOC., DIGITO VERIF., TIPO ORGANIZACIÓN, TIPO CONTRIB., REGIMEN, nombres/apellidos, RAZON SOCIAL, EMAIL, DIRECCION, TELEFONO, PAIS CODIGO, CODIGO CIUDAD). Úsalo cuando el usuario pida revisar, validar, auditar o detectar anomalías en un archivo Excel o plantilla con esta estructura de columnas, incluyendo encabezados incorrectos/fuera de orden, celdas vacías, tipos de dato erróneos, valores fuera de lista, reglas condicionales de dígito verificador, o datos en columnas posteriores a P. ---
Validación de estructura y datos de Excel
Revisar un archivo Excel contra un esquema fijo de 16 columnas (A:P) y reportar todas las anomalías de:
- Encabezados ausentes, incorrectos, duplicados o fuera de orden.
- Celdas vacías en campos obligatorios.
- Tipos de dato incorrectos.
- Valores fuera de las listas permitidas.
- Reglas condicionales entre
TIPO ORGANIZACIÓN,DIGITO VERIF.yPAIS CODIGO. - Datos en columnas posteriores a P o fuera del rango A:P esperado.
No modificar ni corregir el archivo. Solo validar y reportar, salvo que el usuario pida explícitamente una corrección.
- Identifica archivo, hoja(s) y fila de encabezados reales (no asumas que es la fila 1).
- Compara los encabezados A:P contra el esquema exacto (ver tabla abajo).
- Valida cada fila de datos contra todas las reglas aplicables, usando referencias reales de celda.
- Revisa columnas desde Q en adelante dentro del rango usado.
- Entrega una tabla de hallazgos con celda exacta, valor encontrado, anomalía y regla incumplida.
- Si no hay anomalías, decláralo explícitamente, indicando hoja y rango revisados.
No afirmes que el archivo es válido antes de completar todas las comprobaciones estructurales y de contenido.
| Col | Encabezado exacto | Validación |
|---|---|---|
| A | TIPO DOC. | Obligatorio. Texto o entero. Valores permitidos: 3, 6, 4, 7, 10 (equivalencia "3" ≈ 3). |
| B | NUMERO DOC. | Obligatorio. Texto (nunca convertir a número; preserva ceros iniciales). |
| C | DIGITO VERIF. | Obligatorio. Entero. Sujeto a reglas condicionales (ver abajo). |
| D | TIPO ORGANIZACIÓN | Obligatorio. Entero: 1 o 2. |
| E | TIPO CONTRIB. | Obligatorio. Entero: 7, 9, 14, 112, 117. |
| F | REGIMEN | Obligatorio. Entero: 1 o 2. |
| G | PRIMER NOMBRE | Texto. Vacío permitido si D=1; obligatorio si D=2. |
| H | SEGUNDO NOMBRE | Igual que G. |
| I | PRIMER APELLIDO | Igual que G. |
| J | SEGUNDO APELLIDO | Igual que G. |
| K | RAZON SOCIAL | Obligatorio. Texto no vacío. |
| L | EMAIL | Obligatorio. Texto no vacío. |
| M | DIRECCION | Obligatorio. Texto no vacío. |
| N | TELEFONO | Obligatorio. Texto no vacío (preservar formato). |
| O | PAIS CODIGO | Obligatorio. Entero. |
| P | CODIGO CIUDAD | Obligatorio. Entero. |
Reglas de DIGITO VERIF. (en orden de prioridad)
- Si
D=2→Cdebe ser exactamente0. - Si
D=1yO=169→Cdebe ser entero entre0y9. - Si
D=1yO≠169→Cdebe ser entero entre0y99. - Si
C,DuOestán vacíos/no evaluables → reportar el error base y, si aplica, indicar que la regla condicional no pudo verificarse.
- Vacío = sin valor, nulo o solo espacios. Siempre es anomalía en campos obligatorios.
- Enteros: solo números enteros reales (rechazar
3.5,"1,2",NaN, infinito). - Texto numérico en campo entero (ej.
"169"enPAIS CODIGO): reportar como tipo incorrecto, salvo limitación real de la herramienta de lectura (explicítala, no inventes certeza). - Nunca reformatear
NUMERO DOC.niTELEFONO. - Espacios al inicio/fin en texto no son error salvo que vacíen el valor.
- No inventar reglas no especificadas (regex de email, longitud de teléfono, etc.).
Progress:
- Paso 1: Inspección inicial (hoja, rango, fila de encabezados)
- Paso 2: Validación de encabezados (orden, mayúsculas, duplicados, desplazamientos)
- Paso 3: Validación fila por fila (obligatoriedad, tipo, listas, condicionales D/G-J)
- Paso 4: Revisión de columnas posteriores a P
- Paso 5: Informe final con tabla de hallazgos y resumen por categoría
Si la fila de encabezados no puede identificarse con certeza, o hay múltiples hojas candidatas, pregunta al usuario antes de asumir.
Si un encabezado está desplazado y la correspondencia de columnas es ambigua, repórtalo primero y aclara que la validación de contenido de esas columnas puede verse afectada.
Tabla de hallazgos:
| CELDA | FILA | COLUMNA | VALOR ENCONTRADO | ANOMALÍA | REGLA ESPERADA |
|---|
Informe final debe incluir:
- Hoja y rango revisados.
- Resultado general:
CON ANOMALÍASoSIN ANOMALÍAS. - Tabla completa de hallazgos (sin muestreo).
- Resumen por categoría: estructura/encabezados, vacíos, tipo de dato, valor no permitido, regla condicional, datos fuera de A:P.
Ejemplo 1 — Valor no permitido
Input: E7 = 8
Output: E7 | 7 | TIPO CONTRIB. | 8 | Valor no permitido | Solo se permiten 7, 9, 14, 112, 117.
Ejemplo 2 — Campo obligatorio vacío
Input: B4 vacía
Output: B4 | 4 | NUMERO DOC. | Vacío | Campo obligatorio vacío | Debe contener texto no vacío.
Ejemplo 3 — Dígito verificador fuera de rango
Input: D9=1, O9=169, C9=12
Output: C9 | 9 | DIGITO VERIF. | 12 | Valor fuera de rango | Si ORGANIZACIÓN=1 y PAIS=169, debe estar entre 0 y 9.
Ejemplo 4 — Columna adicional
Input: Q1 = OBSERVACIONES
Output: Q1 | 1 | Fuera del esquema | OBSERVACIONES | Encabezado en columna adicional | No se permiten columnas posteriores a P.
Ejemplo 5 — Sin anomalías Output: "Resultado: SIN ANOMALÍAS. Se revisó la hoja [nombre] (rango A1:P[n]) y todas las comprobaciones se completaron sin encontrar errores."
- Usa siempre referencias reales de celda (
C17,Q4), nunca inventadas. - Reporta el valor tal como se encontró; representa vacíos como
Vacío. - Registra todos los hallazgos de cada fila, no solo el primero.
- Separa claramente errores de estructura de errores de contenido.
- Si una celda tiene múltiples problemas independientes, usa una fila por anomalía.
- No declarar "válido" sin completar todas las comprobaciones.
- No normalizar ni corregir encabezados o datos silenciosamente.
- No convertir
NUMERO DOC.oTELEFONOa número. - No aplicar reglas de formato no especificadas (regex, longitudes).
- No ignorar columnas posteriores a P ni encabezados vacíos/duplicados.
- No asumir la hoja o fila de encabezados sin verificarla.