Cómo comparar dos listas en Excel

Una tarea muy común es comparar dos listas en Excel para conocer las semejanzas o las diferencias entre ambas listas. Aunque ya he publicado otros artículos sobre este tema, en esta ocasión utilizaré el Formato condicional para hacer dicha comparación.

Comparar dos listas con formato condicional

Vamos a suponer las siguientes dos listas en Excel:

Cómo comparar dos listas en Excel

El primer ejemplo será conocer los elementos de la Lista 2 que están presentes en la Lista 1 y para ello debemos seguir los siguientes pasos:

Regla de formato condicional para comparar dos listas en Excel

  1. Seleccionar el rango de datos B2:B11
  2. En la ficha Inicio pulsamos el botón Formato Condicional y seleccionamos la opción Nueva regla.
  3. Dentro de la lista de tipos de regla seleccionamos la opción Utilice una fórmula que determine las celdas para aplicar formato.
  4. En el cuadro de fórmula colocamos lo siguiente: =COINCIDIR(B2, $A$2:$A$11, 0) > 0
  5. Hacemos clic en el botón Formato y seleccionamos un color de relleno.

Al momento de aplicar esta regla de formato condicional obtenemos el siguiente resultado:

Cómo comparar dos columnas en Excel

Puedes observar que las celdas de la Lista 2 que tienen el fondo de color verde son precisamente aquellos valores que también están presentes en la Lista 1. Es evidente que las celdas que no tienen el fondo de color verde son las que no forman parte de la Lista1 sin embargo vamos a hacer el ejemplo de ese caso en particular.

Nuestro segundo ejemplo es conocer los elementos de la Lista 2 que no están en la Lista 1. En este segundo ejemplo seguimos los mismos pasos que en el ejemplo anterior pero utilizamos la siguiente fórmula: =ESERROR(COINCIDIR(B2, $A$2:$A$11, 0)).

Ejemplos comparar listas en Excel

Observa el resultado de aplicar esta regla de formato condicional:

Comparar dos tablas en Excel

En este segundo ejemplo, las celdas que tienen el fondo de color son aquellos valores de la Lista 2 que no están presentes en la Lista 1. Con ambos ejemplos hemos analizado los dos casos posibles: encontrar los valores de la Lista 2 que son similares a los de la Lista 1 y también encontrar aquellos que son diferentes.

Si quieres hacer las comparaciones tomando como referencia la Lista1 los pasos serán los mismos que en los ejemplos anteriores a excepción de que iniciaremos seleccionando el rango de la Lista 1 y que debemos cambiar las fórmulas utilizadas en la regla de formato condicional de la siguiente manera:

  • Para encontrar valores de la Lista 1 que están presentes en la Lista 2: =COINCIDIR(A2, $B$2:$B$11, 0) > 0
  • Para encontrar valores de la Lista 1 que no están en la Lista 2: =ESERROR(COINCIDIR(A2, $B$2:$B$11, 0))

Comparar listas en Excel

Comparar dos listas utilizando fórmulas

Otro método que ya he presentado con anterioridad para comparar dos listas en Excel es utilizar  solamente fórmulas de Excel. Para conocer más detalle de este método consulta el artículo Comparar listas en Excel.

Comparar dos listas con la consolidación de datos

Un tercer método que puedes utilizar para comparar dos listas en Excel es a través de la consolidación de datos. La ventaja de este método es que no solamente puedes comparar dos listas sino que se puedes comparar tres o más listas. Lee todo el detalle sobre este método en el artículo Comparar listas consolidando datos.

Cualquiera de los tres métodos que he presentado hoy te ayudará a comparar dos listas en Excel y conocerás fácilmente sus similitudes y diferencias.

Artículos relacionados
Formato condicional en Excel

33 comentarios en “Cómo comparar dos listas en Excel

  1. Eddy

    Hola Moises, me sirvió de mucho tu publicación. Solo que cuando ponía las formulas tal cual las pones aquí me marcaba error Excel, y note que era por las comas, y tuve que hacer un cambio. Quedando así:

    =ESERROR(COINCIDIR(B2; $A$2:$A$11; 0))

    Con el punto y coma ya me lo acepto y si dio el resultado esperado.

    Saludos.

    1. Moises Autor

      Hola Eddy, en Latinoamérica utilizamos la coma (,) y Excel nos permite hacerlo debido a la configuración regional de nuestros equipos. Es probable que te encuentres en España o que tengas dicha configuración regional y por lo tanto tuviste que utilizar el punto y coma (;). No es que alguna opción esté incorrecta sino que depende del equipo que estés utilizando. Más información sobre esta diferencia en el siguiente artículo:
      http://exceltotal.com/separador-de-argumentos-de-funciones-en-excel/

  2. GUSHMACK

    Q tal Moises, estoy atorado en una formula que no hayo como hacerla te explico y ojala me puedas ayudar:
    Tengo dos listas de texto (lista1, lista2), tengo dos celdas(a1,b1), en una tercera celda quiero meter una formula que me cuente cuantos valores a1,b1 existen en lista1, lista2 que se encuentren en la misma fila y que terminando de analizar ambas listas me cuente cuantas coincidieron con el criterio de las celdas a1,b1

    Si me entendiste? te agradezco de antemano tu ayuda

  3. federico

    hola Moisés ¿como va eso? yo tengo una duda, ¿es posible comparar dos listas y que me indique si al menos alguno de los elementos de una celda están en otra de otra columna? me paso a explicar mejor, supongamos que tengo en A1: juan pérez y en C5: pérez, ¿es posible que una formula me indique que se repite parte del texto? ¿o solo es para repetición exacta de texto? muchas gracias!!

    1. Moisés Ortíz Autor

      Hola Federico, solo aplica para comparación exacta del texto.
      Si quieres buscar una palabra dentro de otro texto debes utilizar otro método. Te dejo un ejemplo:
      http://exceltotal.com/contar-caracteres-con-excel/

      Considera la sección: Contar apariciones de una cadena de texto

  4. Jose

    Hola Moisés,
    Te comento mi problema,estoy intentado hacer un excel con dos hojas, en la que en la primera hoja tengo una columna con los productos que vendo (una lista de unos 900 productos) y una segunda columna con los códigos asociados (EAN), en la segunda hoja tengo los productos de un proveedor con las mismas columnas mas una tercera indicando si hay stock con un SI o NO (pero con 8500 productos).

    pues bien, quería obtener dos resultados:

    El primero es que me indique en mi columna de códigos EAN si encuentra el producto en la lista del proveedor, para la cual he seguido tus indicaciones en este post y he obtenido los resultados marcándome la celda correspondiente en un color determinado.

    El segundo es que quería que me indicara si hay stock del producto o no (que estaría en la tercera columna en la misma fila del código asociado. Pero esto ya no soy capaz de hacerlo…

    Hay alguna forma de que pueda obtener los resultados siendo por ejemplo, que el primer caso me marque la celda en un color y para el segundo caso me marque esa misma celda si NO hay stock tachándola (o de alguna forma similar)??

    Gracias de antemano y un saludo.

    1. Moisés Ortíz Autor

      Hola José, para el segundo caso te sugiero utilizar la función BUSCARV de manera que busques la coincidencia de códigos asociados pero obtengas la columna stock de manera que puedas saber si es un SI o un NO. Te dejo un artículo que explica más sobre esta función:
      http://exceltotal.com/la-funcion-buscarv-en-excel/

      Una vez que te familiarices con esta función podrás crear una regla de formato condicional (como en el ejemplo del artículo) que te permita darle un formato especial a la celda ya sea “tachando” el texto o dándole algún color diferente.

      1. Jose

        Gracias por la ayuda, he seguido tus indicaciones y todo perfecto.

        Un saludo

  5. Leo

    MUCHAS GRACIAS POR TU AYUDA CON ESE EJEMPLO PUDE RESOLVER MI PROBLEMA

  6. angelica

    excelentes opciones y ayudas Moises, no han sido lo que necesito pero me han dado ideas de como hacer las cosas. gracias.

  7. Samuel Rosales

    Me sirvió de mucho tu articulo, solo que tengo un problema, todo funciona comparando numero con números pero al momento de buscar por ejemplo A-383 no lo encuentra, aunque este en la misma hoja de calculo. así que tengo que buscarlo con ctrl b. Son 2000 facturas que pedí al departamento de contabilidad y lo que quiero es cruzar la información y saber en que paquete me entregaron facturas en especifico, el problema surgió con este tipo de arreglos de (letra-numero). Ojala puedas ayudarme. Saludos

    1. Moisés Ortíz Autor

      Hola Samuel, el método detallado en este artículo funciona para cualquier cadena de texto sin importar que tenga el formato letra-número. Ya lo he probado con valores como el que mencionas (A-383) y funciona correctamente así que es probable que tengas algún problema con alguna de las fórmulas.

  8. mar

    Buen aporte, gracias!!

  9. Luis Peña

    Muchas gracias, me sirvio para encontrar alumnos no matriculados en una BD, saludos

  10. juseff

    Buenos dias, te felicito por la labor que estas haciendo, excelente pagina, me ha servido mucho este método de comparación, gracias.

  11. maru vega

    Excelente pagina! muchas gracias por compartir estos temas con ejemplos tan prácticos. Saludos!

  12. Salvador

    Hola Moises, he estado realizando los pasos tal como estan ahi y no me dan, no me sombrea los valores que estan en las dos listas. Es que solo sirve para texto, estoy haciendo con numeros.

    Gracias

    1. Moisés Ortíz Autor

      Hola Salvador, funciona con números perfectamente.
      Lo único que se me ocurre es que no estés colocando adecuadamente las referencias absolutas ($) y por eso no se hace correctamente la comparación.

  13. Miguel Padilla B

    Saludos,
    Primero que todo quiero agradecer por la información que suministra en el foro pues es acertada y de importancia, la de este en particular cumplió con mis expectativas.
    Ademas de agradecer por esto, si me gustaría entender el porque de la sintaxis de la función ” =COINCIDIR(B2, $A$2:$A$11, 0) > 0″ del primer caso, según entiendo el primer paramento es lo que se desea buscar, el segundo es la matriz donde se espera encontrar, y tercero define si la búsqueda es exacta,mayor o menor que dicho valor en el parámetro 1, sin embargo, no entiendo porque en el primer parámetro es suficiente escribir la celda “B2″ para que haga la comparación entre las demás celdas que pertenecen a la columna B, me queda la duda si tal vez el operador “> 0″ en la formula tenga que ver con esto, de no ser así entonces también quisiera entender cual es la función de dicho operador.
    Agradecería su explicación pues de esta manera podría aplicar con mayor propiedad lo aprendido.
    Gracias por su atención y su amable ayuda. Cordialmente,
    Miguel Padilla B

    1. Moisés Ortíz Autor

      Hola Miguel, al colocar como primer argumento una referencia a la celda B2, la función COINCIDIR tomará el valor de dicha celda, es decir, comparará la cadena de texto “Caro” con cada una de las celdas del rango A2:A11. Por otro lado, la comparación lógica “> 0″ nos asegura que se ha encontrado el valor buscado ya que la función devuelve la posición del elemento dentro de la matriz. Esta comparación la podríamos sustituir por una validación de error, ya que la función COINCIDIR devuelve error cuando no encuentra un valor.

  14. CECILIA

    HOLA BUENOS DÍAS
    TENGO UN PROBLEMA NECESITO UNA FORMULA PARA COMPARAR DOS LISTAS QUE SON CÓDIGOS DE ARTÍCULOS CON PRECIO, ALGUNOS CÓDIGOS SE REPITEN EN AMBAS LISTAS ES AHÍ QUE NECESITO EL DATO DE LOS COSTOS QUE TENGO PARA PODER SACAR DIFERENCIAS DE DIFERENTES BACHES DE DATOS.
    OJALA Y PUEDAS AYUDARME.
    Y MUCHAS GRACIAS..

    1. Moisés Ortíz Autor

      Hola Cecilia, la opción que se me ocurre es crear una columna auxiliar donde coloques la concatenación del código y el costo. Posteriormente compara las dos columnas auxiliares para saber cuáles son iguales o diferentes.

  15. ana

    Muchas gracias por la información, es de gran ayuda.
    Mi problema es que quería buscar en una lista una celda con un formato determinado.
    Me explico tengo una columna con formatos condicionales, y en otra hoja necesito saber cuales son las referencias que tienen esos formatos consicionales. ¿cómo puedo hacer un si( esta celda tiene este formato ; valor1; valor2)
    GRacias

  16. Betty

    La fórmula de comparación de columnas no me funcionaba, pero le cambié las comas por punto y coma y funcionó perfecto. Mil gracias

    1. Moisés Ortíz Autor

      Hola Betty, gracias por tu comentario.
      Eso se debe a que tu equipo tiene una configuración regional diferente al mío. Yo utilizo comas porque vivo en México y mi equipo tiene esa configuración regional.

  17. patricio

    Hola Moises te planteo una duda. quiero hacer una prueba lógica en una celda analizando otras dos celdas. Estas dos celdas que se van a analizar ya tienen pruebas logicas cada una de ellas. al plantear la nueva funcion logica, excel arroja un resultado pero es equivocado. se puede plantear una prueba logica en base a otras pruebas logicas?? se entiende?
    saludos

    1. Moisés Ortíz Autor

      Hola Patricio, es totalmente factible evaluar el resultado de múltiples pruebas lógicas dentro de otra fórmula.

  18. Katiuska

    Hola Moises, gracias por tu invaluable ayuda. Una pregunta como creo una tercera lista con los valores que no fueron encontrados en la lista a comparar, de modo que una lista la tengo en colores identificados los valores (la fórmula que aquí planteas) y la tercera lista contiene los datos sin color. Gracias.

    1. Moisés Ortíz Autor

      Hola Katiuska, no existe un método fácil de lograrlo. Mi preferencia sería crear una macro para hacer ese tipo de trabajo, pero también lo podrías lograr utilizando el método de “Consolidación de datos” que es la tercera opción mostrada en este artículo. Una vez que tienes la lista de todos los elementos y la “suma” de las listas en las que aparece cada uno de ellos podrás aplicar un filtro para obtener aquellos valores que deseas.

  19. rafael castillo

    Saludos Moises: tengo una columna alfa numerica, 123….AVcnmm; quisiera eliminar la parte numerica para adaptar la columna a un listado de codigos arancelarios. Cual seria la mejor manera de hacerlo?
    Gracias

    1. Moisés Ortíz Autor

      Hola Rafael, no existe una función de Excel que haga ese tipo de extracción así que tendrás que crear una macro para realizar ese trabajo. Te recomiendo leer el siguiente artículo, donde hago precisamente lo opuesto a lo que necesitas, es decir, una macro que extrae los números. En tu caso deberás eliminar dichos caracteres en lugar de extraerlos pero la lógica de solución será similar:
      http://exceltotal.com/macro-para-extraer-numeros-de-una-celda/