Dos exportaciones, la misma quincena, los mismos catorce pagos. El libro de ventas suma 32.648,75. El banco suma 33.139,35. Alguien tiene que explicar los 490,60 antes del jueves.
El instinto es ordenar las dos listas y leerlas una al lado de la otra. Funciona con veinte filas y falla en silencio con dos mil, y falla de una manera concreta: el ojo empareja lo que se parece, que es exactamente la prueba equivocada, porque dos de los cinco problemas de este archivo son invisibles a la vista. Un identificador lleva un espacio final. Otro es número en un lado y texto en el otro. Los dos se ven perfectos en pantalla y ninguno cuadrará jamás.
Este artículo trata de hacerlo bien: qué compara realmente cada técnica, cuáles te mienten y cómo, y cómo acabar con una columna de diferencias que otra persona puede revisar en vez de con la sensación de que probablemente esté bien.
Qué necesitas. Las secciones 1 a 12 funcionan en cualquier versión de Excel de este siglo, y en Google Sheets con las excepciones señaladas.
BUSCARX,COINCIDIRXyFILTRARson Microsoft 365 y Excel 2021 o posterior. Power Query en la sección 13 es Excel 2016 y posteriores en Windows, y 2021 y posteriores en Mac.
1) Dos Exportaciones, Un Número Que No Cuadra
🎯 Escenario: Cierre de mes. El libro dice que se facturaron y cobraron 32.648,75 en las tres primeras semanas de julio. El extracto bancario del mismo periodo suma 33.139,35. Nadie duda de ninguno de los dos sistemas. Alguien tiene que ponerle nombre a la diferencia.
Libro Mayor de Ventas de Julio Junto al Extracto Bancario, Catorce Filas Cada Uno
Dos listas que deberían describir la misma quincena de dinero. Las columnas A a C son el libro de ventas tal como lo exporta el sistema contable, de más antiguo a más reciente. Las columnas D a F son la exportación del banco, en el orden en que se liquidaron los pagos — que no es el orden del libro, así que leer una fila de izquierda a derecha compara dos facturas sin relación. El libro suma 32.648,75 y el banco suma 33.139,35: una diferencia de 490,60. Tres cosas de esta cuadrícula explican esa diferencia y otras dos la hacen parecer peor de lo que es: la referencia bancaria de la fila 4 lleva un espacio final, y la referencia de la fila 9 es texto con un cero delante en el lado del libro y un número normal en el lado del banco. Todas las fórmulas del artículo asumen esta disposición, con las referencias del libro en A2:A15 y las del banco en D2:D15.
fxLas celdas con fórmulas están resaltadas en verde
Pasa el mouse sobre las celdas con fórmulas para ver la fórmula y resaltar las celdas referenciadas
Empieza por la aritmética que enmarca el trabajo:
| Comprobación | Fórmula | Resultado |
|---|---|---|
| Total del libro | =SUMA(C2:C15) | 32.648,75 |
| Total del banco | =SUMA(F2:F15) | 33.139,35 |
| Diferencia | =SUMA(F2:F15)-SUMA(C2:C15) | 490,60 |
| Filas por lado | =CONTARA(A2:A15) y =CONTARA(D2:D15) | 14 y 14 |
Catorce filas por lado es el detalle que manda a casi todo el mundo por el camino equivocado. Que los recuentos coincidan parece querer decir "no falta nada, así que algo estará mal tecleado" — y aquí significa que falta una fila en cada lado, que no es lo mismo en absoluto.
La diferencia son tres problemas independientes que casualmente suman un solo número:
- 1.505,00 que el banco recibió y el libro nunca registró.
- 960,40 que el libro facturó y el banco nunca recibió.
- 54,00 en una fila que existe en los dos sistemas y en la que ambos discrepan sobre el importe.
1.505,00 − 960,40 − 54,00 = 490,60. Ninguna explicación única iba a justificar eso, que es la primera regla de la conciliación: una diferencia global es un síntoma, no una causa. No puedes dividir 490,60 entre nada útil. Solo puedes encontrar las filas.
2) Decide Qué Pregunta Estás Haciendo
Tres preguntas distintas se llaman "comparar dos listas", y cada una quiere una fórmula distinta. Elegir mal es el motivo más común de que una comparación devuelva disparates.
| La pregunta | Qué significa | La herramienta |
|---|---|---|
| ¿Son idénticas las dos listas, fila a fila? | La posición importa. La fila 5 debe ser igual a la fila 5. | =A2=D2, IGUAL, Ir a → Diferencias entre filas |
| ¿Qué elementos están en una lista y no en la otra? | La posición da igual. Solo pertenencia. | CONTAR.SI, COINCIDIR+ESNOD, BUSCARX, anti-combinación |
| Para lo que está en las dos, ¿coinciden los valores? | Primero emparejar, después restar. | BUSCARX/INDICE+COINCIDIR, y una columna de diferencias |
Una conciliación es casi siempre la segunda pregunta seguida de la tercera. El banco no te debe sus filas en tu orden, y nunca te las mandará así. Cualquier fórmula que dé por hecho lo contrario está respondiendo a la primera pregunta sobre datos en los que la posición no significa nada.
3) =A2=D2 Casi Nunca Es La Fórmula Que Quieres
Escribe =A2=D2 en este archivo y arrástralo hacia abajo y salen cuatro VERDADERO — las filas 3, 8, 11 y 15, donde INV-2288, INV-2293, INV-2296 e INV-2300 caen por casualidad frente a sí mismos. Cuatro de catorce. Es peor que ninguno, porque se lee como una coincidencia parcial cuando es pura casualidad: la fórmula compara posiciones, y estas dos listas están en órdenes distintos. Ordena cualquiera de las dos columnas y los cuatro VERDADERO se mudan a otro sitio.
Sí tiene un uso real: dos versiones de la misma exportación, donde el orden de las filas significa algo y quieres saber qué cambió entre el viernes y el lunes. Para ese trabajo es la herramienta correcta, y Excel tiene un atajo: selecciona las dos columnas y pulsa F5 → Especial → Diferencias entre filas (Ctrl+\ en Windows); Excel selecciona cada celda de la segunda columna que difiere de su vecina. Coloréalas y tienes un registro de cambios en dos pulsaciones.
Antes de fiarte de = en ningún sitio, entiende qué compara de verdad:
- Ignora las mayúsculas.
="abc"="ABC"esVERDADERO. Si las mayúsculas importan — códigos de producto dondeab12yAB12son cosas distintas — usa=IGUAL(A2;D2). - Los espacios no.
="INV-2291"="INV-2291 "esFALSO.=no recorta nada, nunca. - Texto y número son valores distintos.
=("300412"=300412)esFALSO. Este pilla a mucha gente porque las dos celdas se leen300412en pantalla. - Una celda vacía es igual a cero. Si
D9está en blanco,=C9=D9con0enC9devuelveVERDADERO. En una conciliación eso convierte una cifra que falta en una cifra conforme. Protégelo con=Y(C9<>"";C9=D9).
Y una cosa que IGUAL no hace: no distingue texto de número. =IGUAL(300412;"300412") es VERDADERO, porque IGUAL convierte los dos lados a texto antes de comparar. IGUAL resuelve las mayúsculas. ESNUMERO resuelve el tipo. Son preguntas distintas y necesitas las dos.
4) La Prueba de Pertenencia: CONTAR.SI
Para la segunda pregunta — qué hay en una lista y no en la otra — el caballo de batalla es CONTAR.SI. Pon esto en H2 y arrástralo hasta H15:
=SI(CONTAR.SI($D$2:$D$15; A2)=0; "no está en el banco"; "")
Se lee tal cual suena: ¿cuántas veces aparece esta referencia del libro en cualquier punto de la columna del banco? Cero significa que el banco no la ha visto nunca. Los signos de dólar importan: el rango donde se busca no debe moverse al arrastrar, y la referencia que se busca sí. Al revés, todas las filas comprueban la fila 2.
Haz lo mismo en el otro sentido, en J2, hasta J15:
=SI(CONTAR.SI($A$2:$A$15; D2)=0; "no está en el libro"; "")
Las dos direcciones son obligatorias. Una comprobación en un solo sentido es la manera en que un pago duplicado vive seis meses en una cuenta bancaria: todas las filas del libro están en el banco, la conciliación parece limpia, y la fila bancaria de más que nadie buscó no se ve nunca.
En este archivo la columna del lado del libro marca dos filas:
| Referencia del libro | Marca | Qué es en realidad |
|---|---|---|
INV-2291 | no está en el banco | El banco sí la tiene — escrita INV-2291 , con un espacio final |
INV-2297 | no está en el banco | Falta de verdad. 960,40 facturados que nunca se cobraron |
Dos marcas, y solo una de ellas es dinero. Esa proporción es lo normal. Casi todo lo que informa una primera comparación no son datos que falten: son los mismos datos escritos de dos maneras.
5) Los Cuatro Parecidos Que Fingen Una Fila Que Falta
INV-2291 e INV-2291 son valores distintos para cualquier herramienta de comparación de Excel. Son el mismo valor para cualquier persona que los lea. En eso consiste todo el problema de comparar listas, y tiene cuatro causas habituales.
1. Espacios. Un espacio delante o detrás de un copiar y pegar, de una exportación de ancho fijo, o de un campo de nombre que alguien tecleó con la barra espaciadora. Invisible en pantalla y letal para una coincidencia.
2. El espacio de no separación, CARACTER(160). Todo lo que ha pasado por una página web o un correo en HTML los lleva. ESPACIOS no elimina CARACTER(160) — solo trata el espacio normal, CARACTER(32) — y por eso "ya lo he recortado" no tranquiliza tanto como la gente cree.
3. Texto contra número. 0300412 en una columna con formato de texto y 300412 como número de verdad en el otro archivo. El cero delante lo delata cuando lo hay; cuando no, nada en pantalla te lo dice, salvo la alineación por defecto: el texto se pega a la izquierda, los números a la derecha.
4. Mayúsculas y puntuación suelta. ab12 frente a AB12; ACME S.L. frente a ACME SL; un guion que en realidad es una raya pegada desde un documento.
Los diagnósticos ocupan una fila cada uno y responden de forma tajante:
| Fórmula | Responde |
|---|---|
=LARGO(A6) y =LARGO(D4) | 8 y 9 — el carácter de más es el espacio final |
=CODIGO(DERECHA(D4;1)) | 32 si es un espacio, 160 si es un espacio de no separación |
=ESNUMERO(D6) y =ESNUMERO(A9) | VERDADERO y FALSO — los mismos dígitos, dos tipos |
="["&A9&"]" | Pone corchetes alrededor del valor para que los espacios sueltos se vean |
=IGUAL(A2;D5) | VERDADERO/FALSO teniendo en cuenta las mayúsculas |
Y después arréglalo una sola vez, en una columna de clave, en lugar de arreglarlo dentro de cada fórmula que toca los datos:
=ESPACIOS(SUSTITUIR(LIMPIAR(A2); CARACTER(160); " "))
LIMPIAR quita los caracteres de control (códigos 0–31, la basura de una exportación mala), SUSTITUIR convierte los espacios de no separación en espacios normales, y ESPACIOS elimina los de delante y detrás y los repetidos de en medio. Si las mayúsculas son ruido y no información, envuélvelo todo en MAYUSC. Si un lado es texto y el otro numérico, fuerza un solo tipo: =A2&"" lo vuelve todo texto y =--A2 lo vuelve todo numérico y devuelve #¡VALOR! en lo que no lo sea.
Construye esa columna en las dos listas, compara las claves en vez de las celdas originales, y esa clase de falso positivo desaparece para siempre. Además se documenta sola: quien revise ve qué normalizaste, cosa que no ocurre con un arreglo escondido tres argumentos dentro de una búsqueda.
6) CONTAR.SI Tiene Sus Propias Trampas
CONTAR.SI es la primera herramienta correcta y no es una comparación literal. Cuatro comportamientos importan cuando la usas para decidir si algo existe.
Ignora las mayúsculas. =CONTAR.SI($D$2:$D$15;"inv-2288") devuelve 1. Normalmente cómodo, de vez en cuando una coincidencia falsa. El recuento que sí distingue mayúsculas es:
=SUMAPRODUCTO(--IGUAL($D$2:$D$15; A2))
Trata los comodines como comodines. *, ? y ~ en el criterio son caracteres de patrón, no literales. Un código como AB-1?0 cuadrará con cosas con las que no debería, y un SKU que contenga * cuadra con casi todo. Escápalos con una virgulilla: AB-1~?0. Si tus identificadores pueden contener comodines, no uses CONTAR.SI en absoluto: usa SUMAPRODUCTO(--IGUAL(...)) o COINCIDIR, que no buscan patrones.
Convierte los dígitos en números. Un criterio "0300412" se interpreta como el número 300412 antes de comparar. Por eso el 0300412 de texto del libro no se marca como ausente aunque el banco lo guardara como número: CONTAR.SI decidió por su cuenta que los dos son el mismo valor. Nada más en tu libro estará de acuerdo.
Solo compara los primeros 15 dígitos significativos. Los identificadores numéricos de más de 15 dígitos — números de tarjeta, algunas referencias bancarias, ciertos documentos de identidad — son indistinguibles para CONTAR.SI a partir del decimoquinto dígito. Dos cuentas distintas cuentan como una. Guarda los identificadores largos como texto y compáralos con IGUAL.
| Técnica | ¿Distingue mayúsculas? | ¿Texto = número? | Comodines | Notas |
|---|---|---|---|---|
=A2=D2 | No | No | No | Por posición |
IGUAL | Sí | Sí (convierte a texto) | No | Solo mayúsculas, no tipo |
CONTAR.SI | No | Sí (convierte a número) | Sí | Límite de 15 dígitos y de 255 caracteres de criterio |
COINCIDIR, modo exacto | No | No | Solo si lo pides (el tipo 0 sigue honrando */? en criterios de texto) | Devuelve una posición |
BUSCARX, modo_coincidencia 0 | No | No | Solo en modo comodín (2) | Devuelve un valor |
| Combinar en Power Query | Sí | No | No | La más estricta de todas |
7) COINCIDIR, ESNOD y BUSCARX
CONTAR.SI responde "cuántas". COINCIDIR responde "dónde", y su fallo es un #N/D explícito y no un cero:
=SI(ESNOD(COINCIDIR(A2; $D$2:$D$15; 0)); "no está en el banco"; "fila " & COINCIDIR(A2; $D$2:$D$15; 0))
Ese tercer argumento, el 0, no es opcional. Si se omite, COINCIDIR asume una coincidencia aproximada sobre datos ordenados y devuelve disparates con toda seguridad sobre una lista sin ordenar — el valor por defecto más caro de Excel. COINCIDIRX lo invierte: el exacto es el predeterminado, y COINCIDIRX(A2;$D$2:$D$15;0;-1) busca desde abajo cuando quieres la última aparición y no la primera.
Ahora recorre el libro con COINCIDIR y compáralo con lo que dijo CONTAR.SI:
| Referencia del libro | CONTAR.SI dice | COINCIDIR dice |
|---|---|---|
INV-2291 | no está en el banco | #N/D |
0300412 | (presente) | #N/D |
INV-2297 | no está en el banco | #N/D |
CONTAR.SI encuentra dos problemas, COINCIDIR encuentra tres, y hay que creerle a COINCIDIR. CONTAR.SI convirtió el texto 0300412 en el número 300412 y declaró que cuadraba. COINCIDIR en modo exacto no convierte nada, así que una referencia de texto y una numérica son dos valores distintos — que es exactamente lo que concluirán también BUSCARX, =, una tabla dinámica, una combinación de Power Query y la base de datos a la que esto acabe subiendo. La herramienta permisiva no está ayudando aquí: está escondiendo la única fila que romperá cualquier combinación posterior.
BUSCARX resuelve presencia y valor de una pasada, que es lo que quieres a continuación:
=BUSCARX(A2; $D$2:$D$15; $F$2:$F$15; "no está en el banco"; 0)
Cuarto argumento si_no_se_encuentra, quinto argumento modo_coincidencia 0 para exacto. En una versión antigua, lo mismo es:
=SI.ND(INDICE($F$2:$F$15; COINCIDIR(A2; $D$2:$D$15; 0)); "no está en el banco")
Usa SI.ND, no SI.ERROR. SI.ND captura "no encontrado" y nada más. SI.ERROR se traga además el #¡REF! de una columna borrada, el #¡VALOR! de un argumento roto y el #¿NOMBRE? de una errata, y los reetiqueta todos como "no está en el banco". Una conciliación que informa de filas ausentes que no faltan es peor que una que se rompe a gritos.
| Herramienta | Mejor para |
|---|---|
CONTAR.SI | Sí/no rápido, y contar duplicados — la única que te dice que una clave aparece dos veces |
COINCIDIR + ESNOD | Presencia estricta, y el número de fila cuando hay que ir a mirar |
BUSCARX / INDICE+COINCIDIR | Presencia y el valor emparejado a la vez, listos para restar |
8) Las Dos Direcciones, y El Recuento Que Demuestra Que Miraste
Dos anti-combinaciones, una en cada sentido. En Microsoft 365 cada una es una sola fórmula que derrama su propia respuesta:
=FILTRAR($A$2:$A$15; CONTAR.SI($D$2:$D$15; $A$2:$A$15)=0; "Todas las filas del libro cuadran")
=FILTRAR($D$2:$D$15; CONTAR.SI($A$2:$A$15; $D$2:$D$15)=0; "Todas las filas del banco cuadran")
CONTAR.SI con una columna entera como criterio devuelve un recuento por fila, así que FILTRAR recibe la matriz de VERDADERO/FALSO que necesita. El tercer argumento importa tanto como los dos primeros: sin él, una conciliación limpia devuelve #¡CALC!, que parece una fórmula rota en lugar de una buena noticia.
Después demuestra que la comparación fue completa, con aritmética y no con confianza:
| Comprobación | Fórmula | Debería dar |
|---|---|---|
| Filas del libro que cuadran | =SUMAPRODUCTO(--(CONTAR.SI($D$2:$D$15;$A$2:$A$15)>0)) | 12 |
| Filas del libro que no cuadran | =SUMAPRODUCTO(--(CONTAR.SI($D$2:$D$15;$A$2:$A$15)=0)) | 2 |
| Las dos suman el número de filas | =CONTARA($A$2:$A$15) | 14 |
Lo importante de la tercera línea no es el número. Es que las que cuadran más las que no deben sumar el total, en los dos lados, siempre. Cuando no ocurre, tus rangos tienen el tamaño equivocado — casi siempre porque la exportación ganó filas y $D$2:$D$15 no. Convierte las dos listas en tablas de Excel de verdad (Ctrl+T) y los rangos crecen con los datos, y las fórmulas dejan de ser una tarea de mantenimiento.
9) Los 1.240,00 Que Cuadraron Dos Veces
🎯 Escenario: Un cliente paga dos facturas del mismo importe la misma semana. La conciliación da las dos por buenas contra un único apunte bancario, informa de que todo cuadra, y el segundo pago se queda sin asignar durante un trimestre.
Hay dos facturas de 1.240,00 en el libro: INV-2287 e INV-2292. Las dos están también en el lado del banco, así que este archivo cuadra — pero cambia un poco la historia, de modo que el banco solo liquidara una de ellas, y una comparación construida sobre importes en vez de referencias informaría de que las dos cuadran. Cualquier búsqueda de Excel devuelve la primera coincidencia y no dice nada de la segunda.
Así que antes de emparejar nada, pregúntate si tu clave es única. En los dos lados:
=SUMAPRODUCTO(--(CONTAR.SI($A$2:$A$15;$A$2:$A$15)>1))
Cero significa que las referencias del libro son únicas y el emparejamiento uno a uno es seguro. Cualquier otra cosa y tienes una decisión que tomar, porque una clave duplicada no tiene una única respuesta correcta:
Numera las copias. Una clave de instancia convierte los duplicados en valores distintos:
=A2 & "-" & CONTAR.SI($A$2:A2; A2)
El rango que se expande $A$2:A2 — anclado arriba, abierto abajo — cuenta las apariciones hasta aquí, así que el primer INV-2287 es INV-2287-1 y un segundo sería INV-2287-2. Construye la misma clave en los dos lados y dos pagos contra una factura cuadran con dos líneas del libro por orden, en vez de cuadrar los dos con la primera.
O empareja al nivel en el que la clave sea única. Si el banco manda un solo apunte de liquidación por tres facturas, no existe ninguna coincidencia fila a fila, y la comparación honesta es por totales:
=SUMAR.SI($A$2:$A$15; H2; $C$2:$C$15) - SUMAR.SI($D$2:$D$15; H2; $F$2:$F$15)
con H2 conteniendo el cliente, la semana o el lote que comparten los dos lados. Agregar al nivel en el que los dos sistemas coinciden no es un apaño: suele ser la conciliación correcta, y es la que sobrevive a que el mes que viene un pago se parta o se junte.
10) Cuando La Clave Son Dos Columnas
A veces ninguna columna identifica una fila por sí sola: una entrega es fecha más almacén, una línea de parte es persona más proyecto. Hay dos maneras de resolverlo.
Una clave compuesta, en los dos lados:
=TEXTO(B2;"aaaa-mm-dd") & "|" & ESPACIOS(MAYUSC(A2))
Dos reglas la hacen segura. Pasa las fechas por TEXTO con un formato explícito — una fecha en crudo es un número de serie y =B2&"|"&A2 producirá tan tranquilo 46204|INV-2287, lo cual está bien hasta que las fechas del otro archivo son texto y producen 03/07/2026|INV-2287. Y usa siempre un separador que no pueda aparecer en los datos. Sin él, "AB"&"C" y "A"&"BC" son los dos ABC, y dos filas distintas chocan en una sola clave. La barra vertical es la elección habitual porque es rara en datos reales; el guion es mala elección en un archivo lleno de números de factura.
O sáltate la columna auxiliar y usa las funciones en plural, que aceptan pares de criterios directamente:
=CONTAR.SI.CONJUNTO($D$2:$D$15; A2; $E$2:$E$15; B2)
=SUMAR.SI.CONJUNTO($F$2:$F$15; $D$2:$D$15; A2; $E$2:$E$15; B2)
Más limpio de leer y sin columnas de más — pero fíjate en lo que haría en este archivo. Todas las filas que cuadran tienen una fecha de libro y una fecha de banco distintas, porque un pago se liquida días después de emitir la factura. Una clave de referencia más fecha informaría de que faltan las catorce filas. Elige claves en las que los dos sistemas estén de acuerdo, que normalmente es el identificador y no la fecha.
11) Comparar Importes, No Solo Claves
Las filas que existen en los dos lados también pueden discrepar. Trae el importe del otro lado y resta:
=SI.ND(BUSCARX(A2;$D$2:$D$15;$F$2:$F$15;;0) - C2; "sin fila en el banco")
En este archivo esa columna marca 0,00 en todas las filas que BUSCARX encuentra, con una excepción: INV-2288 muestra -54,00 — el libro dice 4.571,00 y el banco pagó 4.517,00. Dos dígitos intercambiados. Las tres filas que no encuentra (INV-2291, 0300412, INV-2297) vuelven como sin fila en el banco, y dos de esas tres son ortografía y no dinero — por eso la normalización de la sección 5 va antes de esta columna y no después.
Tres cosas que hay que hacer bien en una columna de diferencias:
Redondea antes de comparar. Excel guarda los números en coma flotante binaria, así que cantidades que vienen de cálculos distintos pueden diferir en 0,0000000001 y verse idénticas al céntimo. =REDONDEAR(x;2)=REDONDEAR(y;2) es la prueba de igualdad fiable para dinero, o acepta una tolerancia:
=SI(ABS(banco-libro)<=0,005; "conforme"; "revisar")
Marca por tamaño, no por cero. =SI(diferencia<>0;"revisar";"") señala cada resto de redondeo de un archivo grande. Un umbral — más de medio céntimo, o más del 1% del importe del libro — pone la atención de quien revisa donde está el dinero.
Deja que la diferencia diga su causa. Tres patrones se identifican solos:
| La diferencia | Casi siempre es |
|---|---|
| Divisible entre 9 (54,00, 90,00, 4.500,00) | Dos dígitos transpuestos — 4.571 tecleado como 4.517 |
| Exactamente el doble del importe de una fila | Un cambio de signo: un abono metido como cargo |
| Igual al importe de una fila | Una fila que falta o que está duplicada, no un importe mal tecleado |
=RESIDUO(diferencia;9)=0 sobre la columna de diferencias no cuesta nada y responde a la pregunta de "¿esto es una errata o una factura que falta?" antes de que nadie abra el otro sistema.
Y las fechas necesitan el mismo cuidado que los importes. =ESNUMERO(B2) te dice si una fecha es una fecha de verdad o texto que lo parece; las fechas de texto nunca cuadran con las de verdad, y 01/07/2026 significa dos días distintos según la configuración regional que escribiera el archivo. Compara fechas como números de serie, o no las compares.
12) Verlo En Vez De Leerlo
Una columna de marcas es el rastro de auditoría. El color es cómo una persona encuentra la fila en tres segundos.
Selecciona A2:A15 y ve a Inicio → Formato condicional → Nueva regla → Utilice una fórmula:
=CONTAR.SI($D$2:$D$15; $A2)=0
Fíjate en la referencia mixta: $A2 — columna bloqueada, fila libre — para que la regla compruebe cada fila contra su propia celda al propagarse. Este es el error de formato condicional más común del mundo: ancla también la fila y todas las celdas del rango se colorean según la fila 2.
La regla integrada Resaltar reglas de celdas → Valores duplicados parece un atajo para esto, y tiene dos límites que conviene conocer antes de fiarse. No distingue mayúsculas, así que AB12 y ab12 se resaltan como duplicados. Y marca los duplicados dentro de la selección además de los que cruzan de una columna a otra, así que seleccionar las dos columnas resalta las dos filas de 1.240,00 del libro por ser duplicados entre sí, que no es lo que pediste. Es un buen vistazo de diez segundos y una mala conciliación.
Un color no se puede sumar, ni filtrar de forma fiable por nadie que no seas tú, ni explicar en una nota al pie el mes que viene. Color para el ojo, columna para el registro — y si solo uno de los dos sobrevive en el archivo que envías, que sea la columna.
13) Cuando Las Listas Llegan Cada Semana: Power Query
🎯 Escenario: La comparación que hiciste una vez en julio ya es un trabajo de todos los lunes, y la exportación del banco ha ganado cuatro filas durante el fin de semana de las que los rangos fijos de las fórmulas no saben nada.
Todo lo anterior es una comparación puntual. En cuanto esto se convierte en un trabajo de todos los lunes, las fórmulas tienen la forma equivocada: alguien tiene que volver a arrastrarlas sobre una exportación nueva, con los rangos silenciosamente mal la primera semana que el banco mande más filas.
Carga las dos listas como consultas (Datos → Desde tabla/rango), después Inicio → Combinar consultas, elige la columna clave en cada una y escoge el tipo de combinación:
| Combinación | Devuelve |
|---|---|
| Anti izquierda | Filas del libro sin correspondencia en el banco — un clic, sin fórmulas |
| Anti derecha | Filas del banco sin correspondencia en el libro — la otra dirección |
| Interna | Solo las filas que están en los dos lados, listas para una columna de diferencias |
| Externa izquierda | Todas las filas del libro más su correspondencia bancaria cuando existe |
Dos consultas anti y una interna responden a todo este artículo, y el mes que viene el trabajo es Actualizar todo.
Dos cosas que hacer dentro de la consulta primero, porque Power Query es el comparador más estricto de todo este arsenal:
- Normaliza la clave: Transformar → Formato → Recortar y Limpiar, en los dos lados, antes de combinar. La comparación se hace sobre el valor tal como está guardado, y no se perdona ningún espacio final.
- Haz que los tipos de datos coincidan. El texto
0300412y el número entero300412no producen ninguna correspondencia, y Power Query no te avisa: la columna combinada simplemente vuelve vacía. Una combinación que no devuelve nada casi siempre es un choque de tipos, no datos que falten.
El artículo de Power Query de este blog cubre el editor a fondo; esto es solo su rincón de conciliación.
14) Cuál Usar en Cada Caso
| Situación | Usa | Por qué |
|---|---|---|
| Dos versiones de la misma exportación, con el orden significativo | =A2=D2, o Ir a Especial → Diferencias entre filas | La comparación por posición es la pregunta real |
| "¿Está este identificador en la otra lista?" | =CONTAR.SI(otra;A2)=0 | Lo más corto que funciona, y además cuenta duplicados |
| Lo mismo, pero con identificadores texto-contra-número o con comodines | =ESNOD(COINCIDIR(A2;otra;0)) | Estricto: sin conversiones ni patrones |
| Presencia y el valor del otro lado | BUSCARX(...;"no encontrado";0) | Una sola pasada, listo para restar |
| Identificadores sensibles a mayúsculas | SUMAPRODUCTO(--IGUAL(rango;A2)) | La única opción de recuento exacto |
| Claves duplicadas en alguno de los lados | Clave de instancia A2&"-"&CONTAR.SI($A$2:A2;A2) | Convierte un lío de muchos a muchos en parejas |
| Un lado agrega lo que el otro detalla | SUMAR.SI.CONJUNTO por la clave común | Empareja al nivel en el que los dos sistemas coinciden |
| La lista de diferencias, como lista | FILTRAR(...; CONTAR.SI(...)=0; "ninguna") | Derrama la respuesta; nada que arrastrar |
| La misma comparación cada semana | Power Query, Anti izquierda + Anti derecha | Actualizar, no reconstruir |
Por encima de la tabla, una regla: normaliza primero, compara después. Todas las técnicas de este artículo dan la respuesta equivocada sobre claves sin normalizar, y la dan con total seguridad.
Práctica
Reconstruye la cuadrícula de arriba — el libro en A1:C15, el banco en D1:F15, con el espacio final realmente escrito en D4 y D6 realmente como número — y trabaja estos puntos.
- La diferencia. Suma las dos columnas de importes y confirma 32.648,75, 33.139,35 y una diferencia de 490,60. Después encuentra las tres filas que la explican y comprueba que vuelven a sumar 490,60 exactos.
- La pregunta equivocada. Arrastra
=A2=D2por todo el archivo y cuenta losVERDADERO. Explica en una frase por qué la respuesta cambiaría si alguien ordenara la columna D. - Las dos direcciones. Escribe las dos columnas de marcas con
CONTAR.SI. Anota qué filas caza cada una, y qué fila no aparece en ninguna de las dos. - La discrepancia. Añade una columna con
ESNOD(COINCIDIR(...))junto a la deCONTAR.SIdel libro. Encuentra la fila en la que discrepan y usaESNUMEROsobre las dos versiones de esa referencia para demostrar cuál tiene razón. - El carácter invisible. Usa
LARGOyCODIGO(DERECHA(...;1))sobreD4para identificar qué lleva al final. Después construye la columna de clave de la sección 5 en las dos listas y repite la comparación: dos marcas deberían quedarse en una. - La prueba. Escribe el trío cuadran / no cuadran / total de la sección 8 para los dos lados y confirma que cada pareja suma 14. Después borra una fila del banco y mira cuál de los tres números se mueve.
- La transposición. Construye la columna de diferencias con
BUSCARX, encuentra el-54,00y prueba=RESIDUO(54;9)=0. Después rompeINV-2296tecleando 5.240,00 en el lado del banco y comprueba si la misma prueba lo sigue identificando. - El duplicado. Añade un segundo apunte bancario de 1.240,00 sin referencia, intenta conciliar solo por importe y mira cómo cuadra dos veces con
INV-2287. Vuelve a construirlo con la clave de instancia de la sección 9.
Resumen
Comparar dos listas parece un problema de fórmulas y en realidad es un problema de datos. Las fórmulas son cortas — CONTAR.SI para pertenencia, COINCIDIR para presencia estricta, BUSCARX para presencia y valor a la vez — y ninguna de ellas es donde se va el tiempo. El tiempo se va en que INV-2291 e INV-2291 son la misma factura para una persona y dos valores distintos para una hoja de cálculo, y en que 0300412 y 300412 son el mismo número de cuenta para todo el mundo menos para el software.
Por eso el orden del trabajo es fijo: normalizar, comparar, conciliar. Una columna de clave construida con ESPACIOS(SUSTITUIR(LIMPIAR(...);CARACTER(160);" ")) en los dos lados, con los tipos forzados a coincidir, elimina la mayor parte de lo que informaría una primera pasada. Solo entonces una columna de comparación significa algo — y tiene que recorrer las dos direcciones, porque una fila que falta en el libro es un problema distinto de una fila que falta en el banco, y solo una de las dos se ve desde cada lado.
Fíate de las herramientas estrictas antes que de las cómodas. CONTAR.SI es lo más rápido de escribir e ignora las mayúsculas, respeta los comodines, convierte dígitos en números y deja de distinguir identificadores numéricos a partir de los quince dígitos. Cada uno de esos comportamientos convierte una diferencia en una coincidencia silenciosa, que es la dirección del error que cuesta dinero. Cuando CONTAR.SI y COINCIDIR discrepan sobre una fila, COINCIDIR te está diciendo lo que concluirá cualquier otro sistema.
Y comprueba que los duplicados no te puedan emboscar antes de emparejar una sola fila. SUMAPRODUCTO(--(CONTAR.SI(rango;rango)>1)) en las dos columnas de clave cuesta diez segundos y decide todo el enfoque: claves únicas significan emparejamiento uno a uno, duplicados significan clave de instancia o agregación. Dos facturas de 1.240,00 no son un problema hasta que algo intenta emparejarlas con un solo apunte bancario, y para entonces la conciliación ya te ha dicho que cuadra.
Por último, aprende cuándo dejar de escribir fórmulas. Una comparación que harás una vez es una columna de CONTAR.SI y veinte minutos. Una comparación que harás todos los lunes durante los próximos dos años son dos consultas anti y un botón de actualizar — y la diferencia entre esas dos respuestas no es habilidad, es cuántas veces más va a tener alguien que hacer esto.
