Cada mes exportas la lista de clientes del programa de facturación o la de suscriptores de tu boletín, y necesitas saber qué ha cambiado respecto al mes anterior: quién es nuevo, quién ya no está y a quién se le ha modificado el correo. Con dos archivos de cientos de filas, comparar a mano no es una opción.
Aquí tienes un método ordenado para detectar altas, bajas y cambios con fórmulas de Excel, con datos de ejemplo y los errores que más resultados falsos provocan.
Antes de empezar: elige una clave única
Para comparar dos listas necesitas un campo que identifique a cada cliente sin ambigüedad y que no cambie con el tiempo. Es la clave. Las opciones habituales, de mejor a peor:
- Un código de cliente (C-001, C-002…). Es lo ideal: no se repite y no cambia aunque el cliente actualice su correo.
- El correo electrónico. Sirve en listas de suscriptores, pero si alguien cambia de correo aparecerá como una baja y un alta.
- El nombre. Es la peor opción: hay nombres repetidos y la misma persona puede estar escrita de varias formas.
Copia las dos versiones de la lista en el mismo libro, en hojas llamadas Anterior y Actual. Trabajar en un único archivo simplifica las fórmulas y evita referencias a libros cerrados.
Los datos de ejemplo
Hoja Anterior (datos en A2:C5):
| A: ID | B: Nombre | C: Correo |
|---|---|---|
| C-001 | Cliente A | clientea@ejemplo.com |
| C-002 | Cliente B | clienteb@ejemplo.com |
| C-003 | Cliente C | clientec@ejemplo.com |
| C-004 | Cliente D | cliented@ejemplo.com |
Hoja Actual (datos en A2:C5):
| A: ID | B: Nombre | C: Correo |
|---|---|---|
| C-001 | Cliente A | clientea@ejemplo.com |
| C-002 | Cliente B | ventas.b@ejemplo.com |
| C-004 | Cliente D | cliented@ejemplo.com |
| C-005 | Cliente E | clientee@ejemplo.com |
A simple vista: C-005 es un alta, C-003 es una baja y C-002 ha cambiado de correo. Veamos cómo lo detecta Excel.
Detectar altas y bajas con CONTAR.SI
Altas: están en Actual pero no en Anterior
En la hoja Actual, escribe en D1 el encabezado «Estado» y en D2 esta fórmula. Después cópiala hacia abajo:
=SI(CONTAR.SI(Anterior!$A$2:$A$5;A2)=0;"Alta";"Ya existía")
CONTAR.SI cuenta cuántas veces aparece el ID en la hoja Anterior. Si el resultado es cero, el cliente es nuevo. Solo C-005 aparece como «Alta».
Bajas: estaban en Anterior y ya no están
Haz lo mismo en la hoja Anterior, buscando en la otra dirección:
=SI(CONTAR.SI(Actual!$A$2:$A$5;A2)=0;"Baja";"Sigue")
C-003 queda marcado como «Baja». Con tus datos reales, ajusta los rangos hasta la última fila o, mejor, convierte cada lista en una tabla con Ctrl+T para que los rangos crezcan solos.
Detectar cambios en los datos
Que un cliente siga en la lista no significa que sus datos sean los mismos. Para comprobar el correo, trae el valor anterior con BUSCARV y compáralo con el actual. Esta fórmula, en la columna D de la hoja Actual, sustituye a la de altas y lo resuelve todo de una vez:
=SI(CONTAR.SI(Anterior!$A$2:$A$5;A2)=0;"Alta";SI(BUSCARV(A2;Anterior!$A$2:$C$5;3;FALSO)=C2;"Sin cambios";"Cambio de correo"))
Primero comprueba si el ID existe en la lista anterior. Si existe, busca el correo que tenía (columna 3 del rango) y lo compara con el de la fila actual. Resultado: C-001 y C-004 «Sin cambios», C-002 «Cambio de correo» y C-005 «Alta».
Revisar varios campos
Para controlar también el nombre, añade otra columna con la misma idea, cambiando el número de columna y la celda comparada:
=SI(CONTAR.SI(Anterior!$A$2:$A$5;A2)=0;"";SI(BUSCARV(A2;Anterior!$A$2:$C$5;2;FALSO)=B2;"";"Cambio de nombre"))
Ten en cuenta que la comparación con = no distingue mayúsculas: «Cliente b» y «Cliente B» se consideran iguales. Para un correo es justo lo que quieres.
Listas automáticas de altas, bajas y cambios en Excel 365
Si tienes Excel 365 o Excel 2021, FILTRAR te devuelve cada grupo completo, con todas sus columnas, en una hoja de resumen. Altas:
=FILTRAR(Actual!A2:C5;CONTAR.SI(Anterior!A2:A5;Actual!A2:A5)=0;"Sin altas")
Bajas:
=FILTRAR(Anterior!A2:C5;CONTAR.SI(Actual!A2:A5;Anterior!A2:A5)=0;"Sin bajas")
Cambios de correo, usando BUSCARX:
=FILTRAR(Actual!A2:C5;SI.ERROR(BUSCARX(Actual!A2:A5;Anterior!A2:A5;Anterior!C2:C5)<>Actual!C2:C5;FALSO);"Sin cambios")
SI.ERROR evita que las altas, que no existen en la lista anterior y darían #N/A, rompan el resultado. Deja espacio libre debajo de cada fórmula: si las celdas de destino están ocupadas, verás el error #¡DESBORDAMIENTO!.
Listas de correos sin código de cliente
En una lista de suscriptores lo habitual es que la única clave sea el correo. Antes de comparar, normalízalo, porque «Ana@Ejemplo.com » y «ana@ejemplo.com» son el mismo correo para ti, pero no siempre para Excel:
- Inserta una columna auxiliar junto al correo en las dos hojas.
- Escribe
=MINUSC(ESPACIOS(B2)), suponiendo que el correo está en B, y cópiala hacia abajo. - Usa esa columna como clave en las fórmulas de
CONTAR.SIde los apartados anteriores. - Revisa las altas y bajas que coincidan en nombre: pueden ser la misma persona con un correo nuevo.
ESPACIOS elimina los espacios sobrantes y MINUSC pasa todo a minúsculas, de modo que la comparación es mucho más fiable.
Errores habituales y cómo evitarlos
- Duplicados en una de las listas. Si un cliente aparece dos veces, los recuentos dejan de ser claros y
BUSCARVsolo mira la primera coincidencia. Límpialos antes con nuestra herramienta para quitar duplicados. - IDs con formatos distintos. «C-001» y «C001», o 1 y «0001», no coinciden. Unifica el formato antes de comparar.
- Rangos que no llegan al final. Si añades filas y no amplías el rango, los nuevos clientes aparecerán siempre como altas o bajas falsas.
- Olvidar FALSO en BUSCARV. Sin ese último argumento, la búsqueda es aproximada y puede devolver datos de otro cliente.
- Trabajar sobre el archivo original. Haz una copia. Son datos personales: guárdalos con cuidado y no los compartas más de lo necesario.
Cuando las listas tienen muchas columnas (teléfono, dirección, categoría, comercial asignado…), crear una fórmula por campo se vuelve tedioso. Para esos casos puedes usar nuestra herramienta gratuita para comparar archivos Excel: subes la versión anterior como original y la nueva como modificada, y obtienes un archivo con los cambios entre ambas. Después puedes usar las fórmulas de este artículo para clasificar lo que te interese.
Conclusión
Comparar dos listas de clientes se reduce a tres preguntas: quién es nuevo, quién se ha ido y qué ha cambiado. Con una clave única, CONTAR.SI responde a las dos primeras y BUSCARV o BUSCARX a la tercera. Si normalizas los correos, eliminas duplicados y fijas bien los rangos, tendrás un control mensual fiable que puedes repetir en pocos minutos.
Preguntas frecuentes
¿Qué pasa si un cliente cambia de correo y no tengo un código de cliente?
Excel lo verá como una baja (el correo antiguo) y un alta (el nuevo). No hay fórmula que adivine que son la misma persona; revisa manualmente las altas y bajas que tengan el mismo nombre o teléfono.
¿Puedo comparar listas que están en dos archivos distintos?
Sí, las fórmulas admiten referencias a otro libro, pero ambos deben estar abiertos para actualizarse sin problemas. Es más cómodo copiar las dos hojas en el mismo libro antes de empezar.
¿Las fórmulas distinguen mayúsculas en los correos?
No. Ni CONTAR.SI ni la comparación con = distinguen mayúsculas, lo cual es conveniente porque los correos no las tienen en cuenta en la práctica. Los espacios sí cuentan, por eso conviene usar ESPACIOS.
¿Funciona con listas de miles de filas?
Sí. CONTAR.SI y BUSCARV manejan sin problema decenas de miles de filas, aunque el cálculo puede tardar algo más. Si el libro va lento, copia los resultados y pégalos como valores cuando termines.
Prueba nuestras herramientas gratuitas
Compara, convierte, combina y limpia tus hojas de cálculo desde el navegador, sin instalar nada.