Categorías
Tutoriales

Usar la función CONCATENAR con BUSCARV para comparar dos listados

La función CONCATENAR es una de esas funciones simples pero muy poderosas de Excel.

CONCATENAR une en una misma cadena de texto tantos “trozos” o argumentos como queramos añadirle (con un límite de 255 trozos). En la actualidad, esta función está siendo actualizada como CONCAT pero aún el uso de CONCATENAR es masivo y es el nombre más conocido para esta función.

Sintaxis de la función CONCATENAR

La sintaxis de CONCATENAR es extremadamente simple, basta con añadir los trozos de texto separados por punto y coma, teniendo en cuenta que si no hacemos referencia a valores de celdas sino a textos escritos, tienen que estar entre comillas.

Pero en esta entrada no queremos centrarnos en el funcionamiento de CONCATENAR sino más bien en uno de los múltiples usos que podemos darle: puntear dos listados para encontrar sus registros en común así como sus diferencias.

Aquí SÍ tienes una entrada del blog en la que hablamos a fondo de la función CONCATENAR

Para ello, vamos a usar la función CONCATENAR junto con BUSCARV ¿Y qué podemos decir sobre la función BUSCARV? Pues que quizá sea la más útil de las funciones que contiene Excel, no obstante, vamos a dar por hecho que ya conoces cómo encontrar registros con la función BUSCARV y vamos directos a su aplicación:

¿Cómo comparar o “puntear” dos listados similares?

Supongamos que nos encontramos ante dos listados de movimientos contables o de facturas y cobros y pagos, con bastante similitud entre ellos:

Facturas y cobros de clientes

El problema es que en los cobros no tenemos informada la factura de cliente.

Ordenar por número de cliente o incluso por importe y ver las coincidencias manualmente:

Comparar facturas con cobros

Pero este sistema deja de ser agradable y sencillo si el listado fuera más largo:

Listado de facturas y cobros extenso

Y resultaría mucho peor aún si entre los cobros se mezclasen los de otros conceptos además de los pagos de los clientes, con lo que el listado se volvería muy difícil de cuadrar manualmente.

Podríamos pensar en utilizar la función BUSCARV para enlazar las coincidencias del número de cliente en uno y otro listado y así relacionar facturas con cobros, el problema viene si tenemos la aparición de un número de cliente más de una vez (como el cliente 142 o el 5321 en el ejemplo)

Usar CONCATENAR para diferenciar líneas uniendo varias informaciones

En ocasiones como esta y con listados de esta naturaleza, una de las soluciones que podemos aplicar de forma muy sencilla es el uso de la función CONCATENAR para crear una cadena de texto identificativa de cada línea que nos permita diferenciarla del resto de registros y poder evaluar si una línea de factura tiene una correspondencia exacta en las líneas de pagos.

Lo que haremos será unir (concatenar, de hecho) en un mismo campo, en una misma celda, la información del número de cliente y el importe, de manera que tendremos una combinación que será mucho más difícil que se encuentre repetida (en el ejemplo, es más raro que el mismo número de cliente tenga varias facturas con el mismo importe) y que podremos identificar fácilmente en ambos listados para poder controlar si falta el cobro. Vamos a ver cómo hacerlo:

  • Separamos un poco los dos listados, insertando alguna columna más para poder trabajar y en una de esas columnas para cada listado (columnas A y H en el ejemplo), ponemos el título “CONCATENAR” porque ahí es donde pondremos el nuevo campo que identifica a cada cobro y cada factura con su cliente asociado:
Añadir campo identificador a dos listados
  • Juntamos en una misma celda la información del cliente y el importe y los separamos mediante un guión usando la función CONCATENAR de la siguiente forma: =CONCATENAR( celda en la que se encuentra el cliente ; guión entre comillas dobles ; celda en la que se encuentra el importe)

La sintaxis exacta a utilizar en la celda A4 sería:

=CONCATENAR(D4;”-”;E4)

Y en la celda H4 usaríamos:

=CONCATENAR(J4;”-”;K4)

Función CONCATENAR para diferenciar registros de un listado
  • Arrastramos las fórmulas en la columna A y en la H tantas filas como sea necesario:
Dos listas con campos diferenciados

Y con esto ya tenemos un dato único en ambos listados que diferencia cada cobro y cada cliente.

Aplicar BUSCARV para encontrar la coincidencia entre los datos diferenciados

Ya podemos usar BUSCARV en el primer listado de facturas para ver cuáles de ellas tienen un cobro por el mismo importe, del mismo cliente. Para obtener este dato, basta con aplicar BUSCARV en la columna F de la siguiente manera (ejemplo en la celda H4):

=BUSCARV(A4;H:K;4;FALSO)

Lo que hacemos es buscar el dato de la columna A que es la concatenación del número de cliente con el importe de la factura en la matriz que empieza en la columna H donde tenemos ese mismo dato que hemos obtenido usando CONCATENAR. BUSCARV trae la cuarta columna de la matriz entre H y K y nos da como resultado el importe del cobro asociado a ese cliente con el mismo importe.

Puntear facturas con cobros en Excel

Si algún punto no te queda claro en cuanto a la función BUSCARV, consulta nuestro post sobre la función BUSCARV para que no volver a tener nunca ninguna duda al usarla.

Esto último es bastante más difícil escrito que visto en la imagen de ejemplo:

Funcionamiento de CONCATENAR y BUSCARV para puntear listados

Fijaos en el detalle de que si no hubiéramos usado el guión (o cualquier otro separador) para separar el número de cliente del importe, hubiéramos podido confundir el cobro:

6-189,17 con

61-89,17

Que casualmente tienen los mismos números (hubiéramos tenido repetido el 6189,17)

Lo bueno de esta solución es aplicarla adaptándola a las necesidades y peculiaridades de los listados que haya que puntear, teniendo en cuenta las características que los hacen difíciles de comparar aunque la base de la solución es siempre la misma: concatenar varios datos que se pueden repetir para crear un identificador único que sea inconfundible y fácil de localizar para la función BUSCARV.

Si has leído hasta aquí, espero haberte ahorrado tiempo de punteo de listados 😉

2 respuestas a «Usar la función CONCATENAR con BUSCARV para comparar dos listados»

Buenas tardes:
Muchas Gracias por su ayuda, me ha servido mucho esta funcion concatenar y buscarV, pero me resulta solo con los valores exactos, hay alguna forma de encontrar los valores parecidos no exactos con los mismos criterios

Muchos saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *