miércoles, 30 de diciembre de 2015

Buscar datos en una matriz

Hola mis amigos!

Como verán, me estoy involucrando más en el blog, y empiezo a subir más cosas que espero les sirvan.

En este post les voy a mostrar cómo buscar un determinado dato en una matriz de celdas.

Si nos alejamos de las premisas que deben cumplir las grandes bases de datos relacionales, podemos considerar a Excel como una "base de datos". Un libro sería la base de datos propiamente dicha, y sus hojas podrían ser las "tablas" de esa base; inclusive podríamos interactuar con datos de varios libros o bases de datos, y sus respectivas tablas.

Invocando a las reglas de normalización, los datos no deben estar duplicados en diferentes tablas, porque esto lleva a problemas de mantenimiento, ya que si un dato cambia en una tabla, hay que cambiarlo en el resto, lo cual es muy trabajoso. Y por si fuera poco, se crearía una gran propensión a la inconsistencia de los datos.

En el ejemplo que voy a desarrollar, tengo un libro en cuya primera hoja se almacenan datos de clientes de un supuesto negocio, que consisten en:
Número del Cliente (único para cada cliente).
Nombre del Cliente (puede estar duplicado).
Saldo del Cliente (el saldo de dinero que le queda a favor o en contra a cada cliente, y éste es el dato que vamos a buscar).
Acá les adjunto una captura de la primera hoja:


La segunda hoja del libro contiene los siguientes datos:
Número de Cliente (relaciona al cliente de la primera hoja).
Saldo del Cliente (dinero que tiene a favor o en contra el cliente, y éste será el dato buscado).
Acá está la captura de la segunda hoja:

Ahora vamos a ver cómo desde la primera hoja buscamos el saldo de cada cliente, el cual se encuentra en la segunda hoja.

La función que utilizaremos será BUSCARV o CONSULTAV. Ustedes se preguntarán el por qué de los dos nombres, y esto es así ya que a partir de Excel 2010 decidieron cambiar el nombre de la función BUSCARV por un nombre más descriptivo como CONSULTAV, pero si tienen instalado el Service Pack 1 de Office, la verán como BUSCARV (su viejo nombre), no se preocupen por esto.

Apreciemos cómo se utiliza la función en las siguientes capturas;
En la celda D2 ingresamos la función, la cual tiene cuatro parámetros; el valor que vamos a buscar (en este caso el número del cliente), la matriz en donde vamos a buscar (que se encuentra en la segunda hoja, el indicador de columnas (que es en realidad la columna que contiene el dato deseado), y por último un valor booleano (verdadero o falso) para indicar si el valor buscado deber respetar una coincidencia estricta o por el contrario, se puede buscar por un valor parecido.
En nuestro caso, vamos a buscar por el número de cliente, que se encuentra en la celda B2, luego nos desplazamos a la segunda hoja y seleccionamos toda la matriz, tal como lo muestra la siguiente imagen:
Noten que la función ya se va armando, ya que tiene el dato a buscar (el número de cliente, y la matriz). Hasta ahora va quedando de la siguiente forma: =BUSCARV(B2;Saldos!B1:C7
Ahora sólo resta indicar qué columna de la matriz debe devolver, que en nuestro caso es la número 2 (saldo), y siempre recomiendo usar "FALSO" como último argumento para que las búsquedas sean exactas.
Entonces, la función final quedaría así:
=BUSCARV(B2;Saldos!B1:C7;2;FALSO)
Una vez presionado ENTER, veremos en nuestra pantalla lo siguiente;
El saldo se corresponde perfectamente con el número de cliente entre ambas hojas, por lo que ahora deberíamos arrastrar hacia abajo, ¿no es cierto?, bueno lo hagamos y veamos qué sucede;
Algo anduvo mal, ¿estamos de acuerdo?.
Bueno, pero no fue culpa de Excel, sino exclusivamente nuestra, porque debimos decirle a Excel que trabajara con referencias absolutas a las celdas de la matriz, para que la referencia a la misma no variara cuando arrastramos la fórmula hacia abajo.

La función debería haber sido escrita así: =BUSCARV(B2;Saldos!$B$1:$C$7;2;FALSO)

El signo de moneda que le agregamos a las celdas B1 y C7 hacen que Excel "ancle" ese conjunto de celdas y no se corran cuando arrastramos hacia cualquier dirección.
Si no tienen claro este tema de referencias relativas y absolutas, los remito a otro de mis posts:
Variables Estáticas en Excel

Una vez indicado que vamos a utilizar una referencia absoluta o estática, veamos cómo queda:
Ahora quedó bien.

Los invito a practicar esto pero que el dato a buscar esté en otro libro.

La idea es comenzar a imponer las "buenas prácticas" en el manejo de la información, ya se trate de un estudiante, un contador, el propietario de un negocio, etc. para que puedan organizar mejor sus datos y accedan a ellos de una manera ágil, segura y ordenada, evitando el "copiar y pegar" libros enteros o parte de ellos en otros.

Espero les haya servido.

No hay comentarios:

Publicar un comentario