Si llevas una gestoría o un despacho profesional en España, esta escena te suena: una colaboradora abre ChatGPT, copia un Excel con nombres de clientes y DNIs, y pide "resúmeme estos movimientos". La IA responde en treinta segundos. La conciliación que llevaba seis horas, hecha. Y la fuga de datos personales, también.
El problema no es la IA. La IA va a quedarse. El problema es que el archivo entero acaba en servidores de OpenAI sin base legitimadora, sin DPA firmado, sin transferencia internacional documentada. Una sanción de la AEPD por un incidente así se mueve hoy entre 5.000 € y 40.000 € según volumen y reincidencia.
La solución es trivial: anonimiza el Excel antes de pegarlo. Sustituye DNIs, IBANs, nombres y CIFs por pseudónimos reversibles. La IA hace su análisis con los pseudónimos. Tú revierte al volver. El cliente nunca sabe que estuvo en internet.
En este post te enseño cómo hacerlo paso a paso, con la herramienta que usamos nosotros (Anoply, transparencia: somos del mismo grupo). Si prefieres montártelo a mano con Python o macros, también te doy las pistas al final.
Paso 1 — Identifica qué datos hay que anonimizar
No todo lo que parece personal lo es. En un libro de IVA típico, lo que hay que esconder antes de mandar a una IA:
- Nombre completo del cliente o proveedor (Juan Martínez Soler →
[PERSONA_001]) - DNI / NIE / CIF (12345678Z →
[DNI_001]) - IBAN (ES76 0049… →
[IBAN_001]) - Número de Seguridad Social (en nóminas)
- Email y teléfono si están en columnas auxiliares
- Dirección postal (si la hay)
Lo que no hace falta anonimizar normalmente:
- Importes y fechas (excepto fechas que actúen como identificador único, e.g. fecha de nacimiento)
- Códigos de cuenta contable (430000xxxxx)
- Conceptos genéricos ("Pago factura", "Recibo nómina")
- Razones sociales públicas con NIF visible — aquí depende: para análisis financiero suele ser admisible (la empresa es pública); para análisis comercial sensible, mejor anonimizar.
Regla práctica: si un humano que no es del despacho leyera el archivo y pudiera identificar a tu cliente, hay PII. Si solo ve
[PERSONA_001],[IBAN_001],[FECHA_001], no.
Paso 2 — Anonimiza con Anoply (en 60 segundos)
Hay tres formas de hacerlo, ordenadas de más fácil a más artesanal:
2A) Con Anoply (recomendado — 60s)
- Abre anoply.eu/anonymize en tu navegador.
- Arrastra tu
.xlsx. El archivo no se sube a ningún servidor — todo el procesamiento pasa dentro de tu pestaña como módulo WebAssembly. Verificable: F12 → pestaña Red, no verás ninguna petición saliente con el contenido. - Anoply detecta automáticamente DNIs, NIEs, CIFs, IBANs, NSS, emails, teléfonos, fechas y nombres en español. Te muestra una tabla con las detecciones agrupadas por columna y por tipo.
- Revisa el panel derecho. Desmarca tipos que no quieras tocar. Si una columna entera debe anonimizarse (e.g. "Nombre cliente"), márcala como forzada desde el header.
- Pulsa Anonimizar y descargar. Mete una passphrase larga (la necesitarás para revertir). Te llegan dos archivos:
tu_archivo_anonimizado.xlsx— el que vas a pegar en ChatGPTtu_archivo.anpx— el mapa cifrado para revertir luego
Tu Excel anonimizado conserva fórmulas, tablas, formato de fechas, estilos y gráficos byte a byte. Solo cambian las celdas con datos personales.
2B) Find-and-Replace manual en Excel (15-30 min, riesgoso)
- Crea una columna nueva con los nombres únicos.
- Asigna pseudónimos: PERSONA_001, PERSONA_002, etc.
- Usa Buscar y reemplazar (Ctrl+L) iterando uno por uno.
- Repite para DNIs, IBANs y CIFs.
- Riesgos: olvidos (un Juan Martínez en una celda de texto libre que no detectas), errores tipográficos, y sobre todo la pérdida de reversibilidad: si reemplazas valores por pseudónimos sin guardar el mapeo, no puedes volver atrás.
2C) Python + pandas (técnico — 2h primera vez, ~5 min después)
import pandas as pd
import re
import json
df = pd.read_excel("libro_iva.xlsx")
mapa = {}
contador = {"DNI": 0, "IBAN": 0, "NOMBRE": 0}
def sustituir(texto, tipo):
if texto in mapa:
return mapa[texto]
contador[tipo] += 1
token = f"[{tipo}_{contador[tipo]:03d}]"
mapa[texto] = token
return token
# Detección con regex (España)
DNI_RE = re.compile(r"\b\d{8}[A-Z]\b")
IBAN_RE = re.compile(r"\bES\d{22}\b")
for col in df.columns:
df[col] = df[col].astype(str).apply(
lambda x: DNI_RE.sub(lambda m: sustituir(m.group(), "DNI"), x)
)
df[col] = df[col].apply(
lambda x: IBAN_RE.sub(lambda m: sustituir(m.group(), "IBAN"), x)
)
df.to_excel("libro_iva_anonimizado.xlsx", index=False)
with open("mapa.json", "w") as f:
json.dump(mapa, f, ensure_ascii=False)
Problemas reales del approach Python: la detección de nombres en español necesita NER (spaCy con modelo es_core_news_lg), la reversión preserva mayúsculas/minúsculas malamente, y destrozas el formato del Excel (fórmulas, tablas, gráficos: todo plano). Para casos puntuales sirve; para uso recurrente, no.
Paso 3 — Pasa el Excel anonimizado a ChatGPT (o Claude, o el modelo que sea)
Abre tu IA favorita y sube el _anonimizado.xlsx directamente, o copia las celdas relevantes:
"Tengo un libro de IVA con movimientos del trimestre. ¿Puedes cuadrar las facturas emitidas vs cobradas y darme las cuentas atrasadas más de 60 días?"
La IA va a trabajar con [PERSONA_001], [CIF_001], [IBAN_001] — no tiene ni idea de quiénes son. Te devolverá un análisis con esos mismos pseudónimos. Eso es exactamente lo que quieres: utilidad analítica con cero exposición de PII.
Importante — el prompt:
Añade siempre esto al final del prompt:
"Los identificadores
[PERSONA_NNN],[CIF_NNN], etc., son pseudónimos. No intentes adivinar los originales, no los modifiques, mantenlos literales en cualquier salida o tabla que generes."
Esto evita que un modelo "demasiado servicial" intente "restaurar" los nombres inventando datos plausibles.
Paso 4 — Modifica el archivo en ChatGPT si hace falta
Aquí está la potencia: puedes hacer que la IA añada columnas, fórmulas, pivot tables, cuadres sobre el Excel anonimizado. Cuando lo descargues y lo revierta, todo lo que añadió la IA se preserva. Anoply no vuelve a parsearlo desde cero — solo reemplaza los tokens por los originales y deja intacto lo demás.
Paso 5 — Revierte el Excel modificado
Vuelve a anoply.eu/revert:
- Sube el
.xlsxmodificado por la IA. - Sube el
.anpxoriginal que descargaste en el paso 2. - Mete la passphrase.
- Descargas el archivo final con los pseudónimos sustituidos por los nombres reales y todas las modificaciones de la IA preservadas.
Total del flujo: entre 60 y 120 segundos por documento, dependiendo del tamaño.
¿Es esto RGPD-compliant?
Sí, técnicamente y legalmente. Lo que estás haciendo se llama pseudonimización reversible y está reconocida explícitamente en el Art. 4(5) del RGPD como una medida de seguridad adecuada que reduce el riesgo del tratamiento. La AEPD ha publicado guías específicas sobre cuándo es suficiente (la mayoría de casos de gestoría) y cuándo necesitas además anonimización irreversible (datos cedidos a terceros para fines distintos del original).
Qué cubre la pseudonimización con Anoply:
- ✅ Cumples Art. 4(5) RGPD y LOPDGDD
- ✅ Reduces materialmente el riesgo de la transferencia internacional a OpenAI/Anthropic
- ✅ El mapa de reversión queda separado y bajo tu control exclusivo (Anoply no lo tiene)
- ✅ Si OpenAI sufre una brecha, lo que se filtra son pseudónimos, no datos identificativos
Qué NO cubre (y necesitas además):
- El DPA con tu cliente que autoriza el tratamiento del libro contable como tal (esto ya lo tienes firmado si llevas la contabilidad)
- El registro en tu RAT del tratamiento "análisis automatizado con IA"
- La valoración del riesgo si manejas categorías especiales (salud, religión, datos sindicales en nóminas)
Para esto último, consulta con tu DPO. Anoply te da el cumplimiento técnico; la base jurídica la pones tú.
¿Cuánto tarda en pagar la pena montarlo?
En Sinnvoll Analítica (la gestoría que usa Anoply a diario) la cuenta sale así:
- Antes: cuadre de movimientos contables de un cliente medio = 6 horas manuales puntando.
- Después: anonimizar (1 min) + ChatGPT cuadra (4 min) + revertir (1 min) + revisar resultado (30 min) = menos de 40 minutos.
- Coste de Anoply: 4,95 €/mes, ilimitado.
- Ahorro mensual (10 cuadres/mes × 5h ahorradas × 35 €/h coste interno) = 1.750 € de tiempo recuperado.
El ROI es ridículo. La razón real por la que la mayoría de despachos aún no lo hace no es económica — es que nadie les ha contado que se puede hacer bien.
¿Tienes el caso de uso pero quieres probar antes de pagar? Tres días gratis sin tarjeta en anoply.eu. Procesas documentos ilimitados y decides después.
Si tienes dudas sobre un escenario específico (nóminas con datos médicos, libros con cesión a terceros, ficheros del CRM con consentimientos parciales), escríbenos a hola@anoply.eu — contesta una persona real, no un bot.