Como extraer una lista de registros no repetidos de una lista con registros repetidos en bases de datos de Excel
- Resumen
- Planteamiento del
problema - Aspectos a tener en
cuenta - Un tema de aplicación para
el procedimiento - Referencias
citadas
Con frecuencia se presentan registros repetidos en
columnas de Excel y a
menudo se requiere saber cuantos y cuales registros diferentes
hay en una columna determinada. Este artículo presenta un
procedimiento
que resuelve este problema. El procedimiento se explica con un
ejemplo en cuatro sencillos pasos y combina la aplicación
de la función
estadística CONTAR.SI, el copiado de
formulas con referencias de celda absoluta y relativas y la
herramienta de Filtro del menú Datos. El
procedimiento resulta bastante útil dado que no hay una
herramienta de Excel que hago esto de forma directa. Un ejemplo
de aplicación se encuentra en Bases de datos de
colecciones de organismos.
Palabras clave: Excel, Formulas de Excel, Filtro,
CONTAR.SI, Bases de Datos, Aplicaciones. Colecciones
biológicas.
Con frecuencia se utiliza la hoja de
cálculo de Excel para almacenar información. Así mismo, Excel cuenta
con algunas herramientas
para manipular, y analizar de una manera relativamente
rápida la información contenida. Para citar algunas
de estas se puede nombrar los elementos del menú Datos
como Ordenar, Filtro, Texto a
columnas, Validación, etc., además también
son de mucha utilidad, las
funciones de
Estadística, de Texto, de Búsqueda y Referencia, de
Información, Lógicas,
etc.
En ciertas ocasiones, el empleo directo
de una sola herramienta (ya sea alguna opción del
menú Datos ó alguna Función) nos arroja
exactamente el resultado que deseamos. No obstante, en otros
casos es necesaria la combinación de varias de estas
herramientas para obtener el resultado que realmente queremos.
Supóngase que se tiene una Base de datos de localidades de
un País, por ejemplo Colombia (Figura
1). Cada fila corresponde a una localidad distinta, y en cada
columna hay un tipo diferente de información:
Departamento, Municipio, Localidad, Latitud y Longitud. Ahora,
supóngase que se quiere obtener de la manera más
rápida posible todas las localidades del Departamento del
Cauca. Esto se hace fácilmente y de una forma directa con
la opción Filtro del menú Datos (véase por
ejemplo, Rivera-Gutiérrez, 2004). Nótese en la
Base de datos
de la Figura 1 que como hay varias localidades de un mismo
municipio, entonces, los nombres de los municipios y de los
departamentos se repiten más de una vez en sus respectivas
columnas. Teniendo en cuenta esto, supóngase que ahora nos
han pedido obtener una lista de todos los Departamentos
diferentes que hay en nuestra Base de datos. Una lista con todos
los departamentos contenidos pero que no se repitan.
Figura 1. Base de datos en Excel con localidades de
diferentes departamentos de Colombia.
Esta situación de registros repetidos en una o
varias columnas de las bases de datos se presenta
comúnmente, y a menudo nos interesa conocer cuantos y
cuales ítems distintos (sin que se repitan) hay en una
columna determinada. Este requerimiento no lo cumple ninguna
herramienta de Excel directamente. Y a menos que se quiera hacer
de forma manual, lo cual
puede ser muy tedioso si nuestra base de datos tiene muchas
filas, se puede emplear el procedimiento descrito en este
artículo. Este procedimiento combina básicamente
dos herramientas: la Función Estadística CONTAR.SI
y la opción Filtro del menú Datos. Por tanto, para
su compresión y aplicación se debe saber ingresar y
copiar formulas en las celdas de la hoja de calculo y diferenciar
las referencias absolutas y relativas a celdas, además
saber utilizar la opción Filtro del menú Datos. Si
no se tiene un conocimiento
sobre estos temas, se puede consultar la ayuda de Excel. En
Internet
también se pueden conseguir otros sitios con cursos buenos
de Excel (por ejemplo:
http://www.saprica.com.ar/Documentos/Main/ExcelIntroProd.php.
Consultada el 30 de Diciembre de 2004; http://www.monografias.com/
consultada el 30 de Diciembre de 2004). García de
Jalón, Fernández-Caballero &
García-Martos (2001) es otro curso completo.
Rivera-Gutiérrez (2004) ilustra aplicaciones de la
herramienta de Filtro (menú Datos) entre otras
funciones.
Las imágenes
de las Figuras de este articulo son de Excel con Windows XP y
ha algunas se les ha suprimido las barras de estado y de
formulas para una mayor cobertura de la imagen.
El procedimiento será ilustrado con el ejemplo de
la Figura 1 y el problema planteado en la Introducción. Se requiere obtener una lista
con cada uno de los departamentos que tiene la base de datos,
pero sin que se repitan. El procedimiento consiste en contar de
arriba hacia abajo (ó de abajo hacia arriba, no importa el
orden) el número de veces que se repite cada registro (de la
columna deseada) excluyendo los registros ya contados.
Después se utiliza el Filtro (menú Datos) para
filtrar los registros que tengan una sola repetición. La
lista resultante de dicho filtro es la deseada. El procedimiento
se puede dividir en cuatro pasos:
1) Se escoge una columna vacía para introducir la
formula CONTAR.SI. En nuestro ejemplo, dicha columna será
la G y le pondremos como titulo "Conteo" (Obsérvese que
todas las columnas en la base de datos tienen un titulo). La
función CONTAR.SI tiene una sintaxis con dos tipos de
información: un RANGO de celdas y un CRITERIO para contar.
Esta función cuenta las celdas en el rango que cumplen con
el criterio asignado. En el caso de nuestro ejemplo, el rango es
B2:B34 que corresponde a la columna de los departamentos y el
criterio es la información contenida en cada una de las
celdas del mismo rango; en el caso de formula ingresada en la
celda G2, el criterio es la celda B2 (Figura 2). Como se debe
saber, las formulas se pueden ingresar ya sea con la ayuda del
mismo Excel o manualmente desde el teclado. La
primera es recomendada para personas poco expertas; cualquier
formula se ingresa desde el menú Insertar (Barra de
herramientas) y escogiendo la opción
Función.
Volviendo a la Figura 2, después de haber
introducido la función CONTAR.SI con su rango y su
criterio, y al teclear ENTER, arrojará como resultado en
la celda G2, el número de veces que se repite la palabra
"Amazonas" en el rango de celdas especificado (B2:B34). Esto es 5
(Figura 3).
Figura 2. Ingreso de la Formula CONTAR.SI, y
asignación del rango.
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
Figura 3. Resultado de la función CONTAR.SI
para la primera celda.
2) Ahora se desea copiar la formula ingresada hacia
abajo pero antes se debe tener en cuenta que al copiar una
formula las referencias de celda pueden cambiar dependiendo de la
referencia de celda que se utilice. Si las referencias de celda
son absolutas, al copiar la formula a otras celdas, no
cambian las celdas a las que se refiriere la formula. Pero si se
usan referencias relativas, si cambian.
En nuestro caso se debe usar un tipo de referencia que
logre que la formula copiada en cada celda excluya de su conteo
las celdas que están arriba de ella e incluya tanto la
celda misma como las celdas que están debajo de ella. De
esta forma, el contenido de cada celda solo será contado
una sola vez de arriba hacia abajo. Esto se obtiene agregando un
signo de pesos ($) entre la B y el 34 en la sintaxis de la
formula de la celda G2, de la siguiente manera:
=contar.si(B2:B$34;B2)
Para escribir el signo de pesos ($) después de
haber ingresado la formula, nos paramos en la celda deseada,
hacemos clic en la barra de formulas y escribimos el signo $ en
la ubicación requerida. (Figura 4).
El signo $ mantiene fija la celda B34 a medida que se
copia la formula hacia abajo; así mismo, este signo se
omite deliberadamente en la posición B2 del rango de la
función CONTAR.SI para que al copiar la formula de la
celda G2 hacia abajo, la primera celda del rango de la
función también se vaya moviendo una celda hacia
abajo.
Figura 4. Adicionar el signo de $ a la formula ya
ingresada.
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
3) Después de agregado el signo ($) a la
formula en la celda G2, se copia el contenido de esta celda hacia
abajo, hasta la celda G34 (Figura 5). Como resultado, en cada
celda del rango G2:G34, se obtendrá el número de
veces que se repite cada registro de la columna B de cada fila
del rango B2:B34, excluyendo del conteo las celdas (o registros)
antecedentes (Figura 6).
Para corroborar que la función CONTAR.SI y el
copiado hayan hecho bien su trabajo, nos
ubicamos en alguna celda del rango G2:G34 que no sea la primera,
por ejemplo la G10. La función copiada en esta celda debe
contener el siguiente rango:
=contar.si(B10:B$34;B10)
es decir, que esta contando cuantas veces esta la
palabra "Antioquia" en el rango B10:B34, lo cual es correcto para
nuestros intereses (Figura 7). El lector puede verificar que esto
se cumple para cualquier celda. Por ejemplo, si nos ubicamos en
la celda G30, el rango de la formula en esa celda
será:
=contar.si(B30:B$34;B30)
Figura 5. Después de que a la Formula se le
haya escrito el signo $ en la posición correspondiente, se
copia la formula de la celda G2 hasta la celda
G34.
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
Figura 6. Resultado final después de
copiar la Formula CONTAR.SI de la celda G2 hasta la celda
G34.
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
Figura 7. Demostración de que el copiado
de la formula ha operado de la manera esperada.
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
4) El paso siguiente es hacer uso del Filtro
(menú Datos). Al activar, esta opción (Figura 8),
aparece una pestaña en la primera fila de todas las
columnas que tienen información. Si nos ubicamos en la
celda G1 (que contiene el titulo Conteo) y desplegamos la
pestaña, inmediatamente podemos observar una lista de
todos los números que aparecen en la columna G, entonces
seleccionamos el número 1 (Figura 9), y con esto habremos
filtrado nuestra base de datos para el dicho numero. La lista
resultante (Figura 10) contiene en la columna B todos los
departamentos sin repetirlos. Esta lista la podemos copiar y
pegarla en otra hoja (puede ser del mismo libro o de
otro libro) y así hemos obtenido el resultado
deseado.
Figura 8. Activación de la opción de
filtrado (menú Datos).
Figura 9. Filtrado por la columna G, con el
número 1.
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
Figura 10. Lista resultante del Filtro por
columna G, número 1. Esta lista contiene todos los
departamentos (columna B) sin repetirlos.
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
1) Este procedimiento también es valido si se
empieza desde la ultima celda hasta la primera (es decir de abajo
hacia arriba). Para esto, en el caso del ejemplo planteado, en el
paso 1 nos ubicamos en la celda G34 e introducimos la siguiente
formula:
=contar.si(B$2:B34;B34)
Ahora, la celda fija (con el signo $) es la B2, de
manera que a medida que copiamos la formula hacia arriba, se
moverá la celda final del rango y no la primera. El
resultado es diferente, de hecho es inverso al obtenido al
principio, pero al filtrar por el número 1, se
obtendrá la misma lista.
2) El resultado es el mismo si le agregamos un signo $
antes de la letra B, es decir, en caso de copiar de arriba hacia
abajo:
=contar.si(B2:$B$34;B2)
ó en caso de copiar de abajo hacia
arriba :
=contar.si($B$2:B34;B34)
Este signo $ antes de la letra B fija el rango y lo
protege de movimientos de copiado horizontales, pero como el
movimiento de
copiado que se hace es vertical, este signo $ antes de la letra B
no es necesario.
3) No es necesario que el texto en cada una de las
celdas de la columna que se quiere examinar este en algún
orden. El procedimiento funciona igual si la información
esta en total desorden.
4) La lista final generada por el procedimiento descrito
no se presenta organizada en orden alfabético (en caso de
que sea texto) a menos que la columna original este organizada en
este orden. Es importante tener en cuenta que esta lista final
esta filtrada de modo que si se quiere ver en algún orden
NO se puede simplemente seleccionar y activar la herramienta
Ordenar (menú Datos) porque esta herramienta no funciona
cuando el filtro esta activo. Para ordenar la lista, se debe
seleccionar, copiar y pegar en otra hoja de cálculo.
5) El procedimiento descrito aquí, también
puede servir para hacer una revisión de errores de
escritura del
texto contenido en la columna que se desea examinar. Por ejemplo
si el registro Amazonas se repite 5 veces, pero en dos ocasiones,
la palabra esta escrita de manera diferente (por ejemplo
"Amasonas" ó "Amazona"), la función CONTAR.SI
contara "Amasonas" y "Amazona" como registros distintos y en la
lista final aparecerán. La función CONTAR.SI no
discrimina entre mayúsculas y minúsculas, de manera
que "Amazonas" y "amazonas" serán contadas como lo mismo.
La función CONTAR.SI no tiene en cuenta las celdas en
blanco.
Un tema de
aplicación para el
procedimiento.
El diseño
de este procedimiento fue motivado por el trabajo con una Base de
Datos de una colección de ejemplares de Organismos de
aproximadamente 13000 registros. En dicho trabajo se nos
pedía obtener y analizar cierta información de la
Base de datos. Por ejemplo, cuantas especies distintas existen,
cuantas localidades distintas existen, etc. De modo que el
procedimiento aquí ilustrado fue de mucha utilidad para
tal fin. Con la lista de nombres sin repetir, se pueden obtener
otra serie de datos de una forma rápida con funciones como
CONTAR.SI, BUSCAR, etc. A continuación se anexa la base de
datos de la Figura 1 para que el lector la copie en Excel y
practique el procedimiento expuesto.
No. | Departamento | Municipio | Localidad | Latitud | Longitud |
1 | Amazonas | EL ENCANTO | Alpena | -1.0166 | -74.0666 |
2 | amazonas | EL ENCANTO | Amacocha | -1.4166 | -73.5500 |
3 | Amazonas | LA CHORRERA | Abisinia | -1.3833 | -72.2000 |
4 | Amazonas | LA PEDRERA | Cachorras | -1.2333 | -72.1833 |
5 | Amazonas | LA PEDRERA | Cano Aupe | -1.4744 | -69.4644 |
6 | Antioquia | ABEJORRAL | Abejorral | 5.8000 | -75.4333 |
7 | Antioquia | ABEJORRAL | Alto El Patio | 5.8666 | -75.4666 |
8 | Antioquia | ABEJORRAL | Cerro El Buey | 5.8833 | -75.4333 |
9 | Antioquia | ABRIAQUI | Alto Horqueta | 6.5666 | -76.1000 |
10 | Boyaca | AQUITANIA | Alto del Gallo | 5.4666 | -72.8000 |
11 | Boyaca | AQUITANIA | Aquitania | 5.5166 | -72.8833 |
12 | Cauca | ALMAGUER | Almaguer | 1.9144 | -76.8550 |
13 | Cauca | ALMAGUER | Cerro Jopias | 1.8625 | -76.8469 |
14 | Cauca | CAJIBIO | Casas Viejas | 2.6500 | -76.7000 |
15 | Cauca | CAJIBIO | Dinde | 2.7000 | -76.7333 |
16 | Guajira | BARRANCAS | Alto Las Cabeceras | 10.8125 | -72.7344 |
17 | Guajira | BARRANCAS | Alto Los Tocos | 10.9738 | -72.9133 |
18 | Guajira | RIOHACHA | Arena | 11.1875 | -72.7263 |
19 | Guajira | RIOHACHA | Arroyo Ahumada | 11.4666 | -73.0500 |
20 | Quindio | ARMENIA | El Meson | 4.5333 | -75.7333 |
21 | Quindio | ARMENIA | Estacion Ortega Diaz | 4.4833 | -75.7500 |
22 | Quindio | BUENAVISTA | Buenavista | 4.3666 | -75.7666 |
23 | Tolima | ALPUJARRA | Arada | 3.4333 | -74.8833 |
24 | Tolima | ALPUJARRA | Buenos Aires | 3.4166 | -75.0166 |
25 | Tolima | COYAIMA | Coyaima | 3.7833 | -75.2000 |
26 | Tolima | COYAIMA | El Tambo | 3.6666 | -75.0833 |
27 | Tolima | COYAIMA | Guaguarco | 3.7000 | -75.1500 |
28 | Valle del Cauca | ALCALA | El Jazmin | 4.6500 | -75.8166 |
29 | Valle del Cauca | ANDALUCIA | Boca Tulua | 4.1333 | -76.2166 |
30 | Valle del Cauca | ANDALUCIA | Bocas de Tulua | 4.1333 | -76.2166 |
31 | Valle del Cauca | ANDALUCIA | Campoalegre | 4.1833 | -76.2166 |
32 | Sucre | BUENAVISTA | Buenavista | 9.3166 | -74.9666 |
33 | Sucre | CAIMITO | Aguilar | 8.7666 | -75.1333 |
García de Jalón, J.,
Fernández-Caballero, D. & García-Martos, C.
(2001). Aprenda Excel 2000
como si estuviera en primero. Escuela
Técnica Superior de Ingenieros Industriales; Universidad
Politécnica de Madrid.
Madrid. Extraído el 30 de diciembre de 2004 de:
http://mat21.etsii.upm.es/ayudainf/aprendainf/Excel2000/Excel2000.pdf.
Rivera-Gutiérrez, H. F. (2004). Guía
básica para integrar conjuntos de
datos de referencia para
validación de información utilizando
Microsoft
Excel. Instituto de Investigación de Recursos
Biológicos Alexander von
Humboldt, Bogotá, Colombia. Extraído el 30 de
diciembre de 2004 de
http://www.humboldt.org.co/sib/content.jsp?doc=documentos.
Datos del Autor
Pablo Andrés Guzmán
González
Estudios realizados: Biología. Universidad
del Valle, Cali, Colombia.
Experiencia profesional: Manejo de Bases de Datos de
Colecciones Biológicas.
Categoría para este trabajo: Computación.
Otra Categoría sugerida:
Bioinformática.