Mostrando las entradas con la etiqueta Comparar Listas. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Comparar Listas. Mostrar todas las entradas

viernes, octubre 06, 2006

Comparar listas en Excel

Una de los temas más corrientes en Excel es el de la comparación de listas, y su "hermano gemelo" la eliminación o prevención de duplicados.
Ya he tratado el tema en diversas oportunidades, por ejemplo
como comparar dos listas usando formato condicional o como evitar duplicados usando validación de datos. También he mostrado como usar consolidación de datos para comparar listas


En esta nota haremos una revisión ordenada del tema. Empecemos por plantearnos un ejemplo. En una misma hoja tenemos dos listas de productos





Para facilitar nuestro trabajo hemos definido dos nombres

lista1 =Hoja1!$A$2:$A$11
lista2 =Hoja1!$D$2:$D$11

1 - Encontrar duplicados usando la función COINCIDIR

En el rango B2:B11 ponemos la fórmula =COINCIDIR(A2,lista2,0); en el rango E2:E11 ponemos la fórmula =COINCIDIR(D2,lista1,0). El resultado es




Los resultados N/A identifican los valores de la lista 1 que no se encuentran en la lista 2, y viceversa. Podemos lograr un resultado más "elegante" combinando COINCIDIR con SI y ESERROR en esta fórmula

=SI(ESERROR(COINCIDIR(A2,lista2,0)),"","duplicado")

El resultado es




Podemos mejorar aún más la presentación usando formato condicional para dar un fondo de color a los duplicados. Por ejemplo, para la lista2 definimos esta condición



La dirección de la celda de referencia debe ser relativa (sin los signos $)

2 – Señalar duplicados usando formato condicional.

Como explicamos en la nota sobre el tema, usamos la función CONTAR.SI en el menú de formato condicional para comprobar si valores de la lista 1 también figuran en la lista 2. Usamos una fórmula distinta para cada lista.
En la lista 1 usamos la fórmula =CONTAR.SI(lista2,A2)>0





En la lista 2 usamos la fórmula =CONTAR.SI(lista1,A2)>0



El resultado es idéntico al método anterior



3 – Generar una lista de valores comunes a ambas listas

Digamos que ahora queremos generar una lista de valores que aparecen en ambas listas.
En nuestro ejemplo, escribimos esta fórmula en la columna F:

=SI(CONTAR.SI(lista2,A2)>0,A2,"")




Alternativamente podemos usar la fórmula =SI(CONTAR.SI(lista1,D2)>0,D2,""), que dará el mismo resultado aunque en distinto orden.

Como podemos ver en la lista de valores comunes aparecen celdas en blanco. Una alternativa para eliminar las celdas en blanco es copiar los valores de la lista a otro rango y usar la función Ir A--Especial--Celdas en Blanco, como explicamos en
esta nota.

También podemos hacerlo usando fórmulas. Para esto necesitaremos crear dos rangos de fórmulas auxiliares.
Siguiendo con nuestro ejemplo, escribimos esta fórmula en la celda H2 y la copiamos a lo largo del rango

=SI(CELDA("contenido",F2)="",0,FILA())




Esta fórmula nos permite dar un número único si en la columna F aparece un producto común a ambas listas o 0 (cero) si el resultado en F es blanco. Usamos la función CELDA y no ESBLANCO, ya ninguna de las celdas en la columna F está en blanco (todas contienen fórmulas).

El próximo paso es usar la función JERARQUIA en la columna I

=JERARQUIA(H2,$H$2:$H$11)

En esta fórmula hemos omitido el argumento opcional "orden", por lo tanto el resultado aparece en forma descendiente.




Podemos ver que para las celda con resultado 0 en la columna H, obtenemos el mismo número de orden.

El resultado en la columna I nos sirve de variable en la fórmula que escribimos en la columna J,

=INDICE($F$2:$F$11,COINCIDIR(FILA()-1,$I$2:$I$11,0))

que nos da esta lista




El problema con esta fórmula es que aparecen resultados N/A. Para evitar esto agregamos una condición a nuestra fórmula, resultando

=SI(ESERROR(INDICE($F$2:$F$11,COINCIDIR(FILA()-1,$I$2:$I$11,0))),"",INDICE($F$2:$F$11,COINCIDIR(FILA()-1,$I$2:$I$11,0)))

es decir, primero evaluamos la fórmula y si el resultado da error, la función SI da como resultado "blanco", si no se aplica la función INDICE.




4 – Generar una lista de valores únicos

Para generar una lista de valores únicos, usamos el mismo método con la diferencia que la fórmula en la columna F pasa a ser

=SI(CONTAR.SI(lista2,A2)=0,A2,SI(CONTAR.SI(lista1,D2)=0,D2,""))

donde combinamos dos condiciones para obtener los productos que sólo aparecen en una de las listas.


Por supuesto, existen otros métodos para comparar listas, incluyendo el uso de macros. Esto será tema de una futura nota.


Categorías: Funciones&Formulas_, Manejo de Datos_

Technorati Tags: ,

jueves, marzo 02, 2006

Comparar listas en Excel con Consolidación de Datos, una variante

Esta entrada es un complemento a la entrada de ayer sobre el tema. Sucede que un compañero de trabajo, después de leer la nota, me dijo que muy bien, pero él tiene las listas en una sola hoja. Cómo hace, entonces, para comparar entre ellas con el método Datos--->Consolidar?
Supongamos que tenemos estas tres listas en una sola hoja (Comparar Listas en Excelles invito a bajar el archivo con el ejemplo aquí):



Para hacer la comparación con el método explicado ayer (agregamos a cada lista el numero 1, 2 o 4 al lado del nombre de cada miembro), seguimos los siguientes pasos:
1 – Agregamos tres columnas a la izquierda de la hoja, donde se anotarán los resultados de la consolidación
2 – como siempre recomiendo, definimos nombres para los rangos de las tres listas (cómo hacerlo pueden ver en esta nota).



3 – Seleccionamos la celda A1 y activamos el menú Datos--->Consolidar. En la ventanilla "referencia" anotamos los nombres de los rangos (lista_1, lista_2). La forma más práctica de hacerlo es pulsando F3 y eligiendo el nombre.



4 – Pulsamos "aceptar" y obtenemos la tabla de resultados como en el ejemplo de ayer



El significado de los resultados, como a lo indicamos, es el siguiente:
1 = aparece en lista 1
2 = aparece en lista 2
3 = aparece en las dos listas

Para comparar entre las tres listas, definimos un nombre para el rango de la lista 3 (en nuestro ejemplo será lista_3), lo agregamos en el menú de Datos--->Consolidar



Y obtendremos una nueva lista de comparación. Sobre el significado de los resultados vean esta nota.



Categorías: Manejo de Datos_


Technorati Tags: ,


miércoles, marzo 01, 2006

Usar "Datos-->Consolidar" para comparar listas en Excel

En entradas anteriores he hablado sobre cómo comparar listas en Excel usando Formato Condicional.
Otra manera de comparar dos listas en Excel es usar Consolidación de Datos (menú: Datos ---> Consolidar; sobre este tema les invito a leer esta entrada).

Explicaremos esta técnica con un ejemplo. El cuaderno con este ejemplo se puede descargar
Comparar con Consolidar Datosaquí.

Supongamos un cuaderno que contiene cuatro hojas a las que les hemos dado los nombres "comparar", "lista 1", "lista 2" y "lista 3". Cada una de estas tres últimas contiene una lista de socios de una institución. Nuestra tarea es comparar entre las listas de manera que sepamos quien figura sólo en una de ellas, quien figura en dos de ellas (y en cuáles) y quien figura en las tres.
Empezaremos mostrando la técnica para comparar dos listas.
1 – En la hoja Lista 1 agregamos en la columna B el valor "1" al lado del nombre de cada socio



2 - Hacemos lo mismo con la lista 2, agregando en este caso el valor "2"
3 – Abrimos la hoja "Comparar" y seleccionamos la celda A1.
4 – Abrimos el menú Datos--->Consolidar



5 – Completamos los datos como está indicado en la figura aquí abajo



y pulsamos "Aceptar"



La tabla que aparece nos indica la situación de cada socio de acuerdo al valor que recibe:
1 = aparece solamente en la lista 1
2 = aparece solamente en la lista 2
3 = aparece en ambas listas

Para aplicar esta técnica con tres listas, procedemos de manera similar con la lista 3 pero en la columna B escribimos el valor "4" (no 3 como pudiéramos suponer).



Volvemos a la hoja "Comparar", seleccionamos la celda A1. Abrimos el menú Datos--->Consolidar y agregamos el rango A:B de la hoja Lista3



Pulsamos "Aceptar" y obtenemos esta tabla



Los resultados los interpretamos de la siguiente manera:
1 = aparece sólo en la lista 1
2 = aparece sólo en la lista 2
3 = aparece en la lista 1 y en la lista 2
4 = aparece sólo en la lista 3
5 = aparece en la lista 1 y en la lista 3
6 = aparece en la lista 2 y en la lista 3
7 = aparece en las tres listas



Categorías: Manejo de Datos_

Technorati Tags: ,

lunes, enero 23, 2006

Cómo comparar dos listas en Excel

Los ejemplos en esta nota fueron desarrollados usando la versión inglesa de Excel. Por favor, lean esta nota.

Otra tarea bastante común en Excel es comparar entre dos listas. El objetivo es encontrar qué diferencias hay entre dos listas (que personas de una lista no aparecen en la otra, por ejemplo). Este tipo de comparación se puede hacer de varias maneras. En esta nota mostraré cómo hacerlo usando Conditional Formatting (Data ---> Conditional Formatting).
Supongamos esta hoja



Para señalar los faltantes en cada lista, daremos un fondo de color azul a los nombre de la lista 1 que no aparecen en la lista 2 y un fondo de color rosa a los nombre de la lista 2 que no aparecen en la lista 1.

Procedemos de la siguiente manera:

  1. seleccionamos el rango de los nombres en la lista 1 (A2:A10)
  2. en la barra del menú pulsamos Format ---> Conditional Formating
  3. seleccionamos Formula Is
  4. en la ventanilla escribimos la formula =COUNTIF($B$2:$B$10,A2)=0 (prestar atención al signo $ en la fórmula)
  5. apretar el botón Format, seleccionar Pattern y elegir el color azul.


Ahora hacemos lo mismo con la segunda lista (el rango será B2:B10) y utilizamos la fórmula

=COUNTIF($A$2:$A$10,B2)=0

Apretamos OK


Ahora podemos ver claramente quien falta en cada lista.

Otra técnica es utilizar la fórmula =MATCH, lo que mostraré en alguna futura nota.


Si te gustó esta nota anotala en del.icio.us


Tags: , ,



Categorías: Manejo de Datos_