martes, 23 de octubre de 2012

Detectar diferencias entre 2 columnas en Excel


Es muy frecuente que los usuarios de Excel necesiten detectar diferencias entre dos columnas o tablas de Excel. Esto se puede hacer de varias formas, pero en este caso, vamos a hacer que la detección se haga mediante "formato condicional" y que las diferencias encontradas en una columna B respecto de una columna A se marquen con un color de fondo distinto.


Nos podemos encontrar con varios casos o varias necesidades distintas:

Detectar diferencias entre pares de celdas de una misma fila


En primer lugar, debemos seleccionar el rango de celdas al cual queremos aplicar la detección de diferencias. Es decir, seleccionamos el rango C3:C9 porque queremos saber si en esa columna ha cambiado algún valor comparado con su pareja en la columna 1. ¡¡Atención, se debe seleccionar con el ratón de arriba hacia abajo, para que quede activa la celda de arriba y después funcione el formato condicional!!


Vamos a la ficha Inicio / Formato condicional.../Nueva regla... / Utilice una fórmula que determine... y escribimos en el campo "Dar formato a los valores donde esta fórmula sea verdadera" la siguiente fórmula:  


El siguiente paso es dar el formato deseado desde el botón que encontraremos más abajo y presionamos "Aceptar". El resultado será similar al siguiente:


...viendo que han quedado resaltadas las celdas de la columna 2 que suponen una diferencia respecto de sus parejas en la columna 1.

Detectar diferencias en cualquier parte de las columnas

En al caso anterior, sólo se detectaban diferencias entre parejas de celdas. Aunque en la columna 2 hubiesen los mismos valores que en la columna 1, tan sólo con cambiarlos de orden, ya se detectaban diferencias.

Ahora necesitamos detectar si en la columna 2 aparece algún valor que no esta en la columna 1, no importándonos la coincidencia de orden de los demas valores. Dicho sobre un ejemplo, en la siguiente tabla, necesitamos que aparezcan resaltados los valores "S" y "P" de la columna  2, puesto que no existían en la columna 1. Los demás valores de la columna 2, aunque en distinto orden, sí existían en la columna 1:


Para conseguir que los valores "S" y "P" de la columna  2 queden resaltados, debemos seleccionar los datos de la columna 2 de la misma forma que lo hicimos en el otro ejercicio y vamos al mismo cuadro de diálogo. Posteriormente, la fórmula a introducir sería:


...y el resultado...



Explicación para la función BUSCARV:

El primer argumento de la función BUSCARV es la primera celda de la columna 2 donde se van a resaltar las diferencias (¡¡NO debe ser una referencia absoluta. Es decir, no debe tener los sígnos de dólar!!). El segundo argumento es el rango de celdas donde se buscarán las diferencias en la columna 1. El tercer argumento es un 1 porque necesitamos que se busque en la única columna del rango (la B). El cuarto argumento indica que se buscará una coincidencia exacta aunque no esté la columna B ordenada.

Explicación para la función SI.ERROR:

El primer argumento de la función SI:ERROR es la propia función BUSCARV. Esto es, SI:ERROR evaluará lo que se obtenga con BUSCARV. El segundo argumento de la función SI:ERROR es un valor lógico (VERDADERO = 1) que obtendremos si BUSCARV da un error (si NO encuentra lo que busca y por lo tanto hay una diferencia).



Si desea llevar a la práctica todo lo que le hemos ofrecido en este artículo, puede asistir a nuestros cursos prácticos de Excel o puede solicitarlos in company:







6 comentarios:

  1. La ultima formula no me funcionaba tal y como la pones. Cambié el ultimo argumento de la formula por FALSO y ya me funciona.

    ResponderEliminar
    Respuestas
    1. La fórmula está comprobada. Es necesario que devuelva VERDADERO para que el formato condicional funcione.
      Puedes enviar el archivo a josempomares@temporaconsultores.com y te digo donde tienes el error.

      Eliminar
  2. Hola buen día, tengo una duda sobre el tema, aunque un poco mas compleja.
    tengo dos columnas A y B con valores que en su total deben ser iguales (partida doble en contabilidad), necesito encontrar las diferencias entre las dos columnas pero hay valores en B que sumados son iguales en A.

    ¿Qué podría hacer en éste caso?

    Les agradezco mucho.

    ResponderEliminar
  3. Estoy usando Excel 2007 Profesional version inglesa, la formula seria la siguiente =iserror(vlookup(c3,$b$3:$b$9,1,false),true), pero me dice que agregue demasiados argumentos, le elimine el ultimo argumento y me funciono, la formula quedo de esta manera =iserror(vlookup(c3,$b$3:$b$9,1,false))

    ResponderEliminar
    Respuestas
    1. hola para la version en ingles la formula es:
      =IFERROR(VLOOKUP(C6,$B$3:$B$9,1,FALSE),TRUE)
      la formula SI.ERROR se traduce en IFERROR, en tu caso estas usando la function ISERROR la cual funciona porque devuelve true si ocurre un error y False si la formula esta correcta.

      Eliminar