Función búsqueda y algunos conceptos de bases de datos

Hola jóvenes

¿Cómo les ha ido con las funciones de la hoja de cálculo?

Espero que bien, ya que con esta entrada terminamos con la lista de funciones propuestas para aprender en el curso.

En esta ocasión se hablara de las funciones BuscarV( )   y BuscarF( ), por ello nos vemos obligados a incursionar el algunos conceptos relacionados con las bases de datos, a fin de lograr comprender las implicaciones las mismas.



A continuación se analizaran dos funciones que trabajan de forma similar, pero que lo único que las diferencia es la forma en la que están acomodados los valores en el rango de celdas del cual hace uso. Pero antes de pretender comprender y trabajar con las funciones BuscarV() y BuscarH() es necesario comenzar a pensar en términos de bases de datos.

Para empezar una base de datos es un conjunto de datos que se organizan por campos, registros y archivos. Cabe aclarar que en el caso de la hoja de cálculo se hace una simulación de una base de datos de forma que los datos se encuentren distribuidos en renglones y columnas consecutivos.

Un dato se compone de su significado y su valor.

De forma que si se dice 18, solo se hace referencia solo a un valor numérico entero, ya que al no indicar su significado, ese valor puede significar muchas cosas y ninguna en concreto. Sin embargo, cuando decimos que el 18 es una edad, entonces estamos hablando de un dato, el dato Edad.
Así se tiene que, al hablar de bases de datos, un dato se corresponde con un campo en particular dentro de la base de datos. Los campos son los que le dan significado a los valores almacenados dentro de la base de datos, y se mantiene organizada gracias al conjunto de campos que la componen.
Ahora bien, al conjunto de datos correspondientes a una entidad determinada (sea esta entidad por ejemplo una persona, un animal, una cosa) se le llama registro
Por tanto, cada valor del conjunto de valores de cada campo se corresponde con una entidad concreta. De esta forma, al estar organizados conforme al orden de los campos, los valores almacenados en los registros no pierden significado, por tanto se tienen registros de información, que se distinguen gracias a que existe un campo clave, el cual contienen un valor único e irrepetible. Ejemplo:
Así, un conjunto de campos permite ordenar los valores que se van capturando en la base de datos, de forma que dichos valores tengan un significado concreto en cada registro. 

Al hablar de bases de datos en hoja de cálculo, se habla de un conjunto de datos organizados (tabulados) en columnas y renglones. Ahora bien, a qué llamaremos campo y a qué llamaremos registro, esto depende de la distribución elegida:
  • Si los campos se ubican en las columnas, entonces los renglones representan los registros de información.


  • Si los campo se ubican en los renglones, entonces las columnas representan los registros de información

BuscarV() y BuscarH()

Al observar la sintaxis de ambas funciones es fácil observar que tienen los mismos argumentos:

=BUSCARV(criterio de búsqueda; matriz; índice; ordenado)


=BUSCARH(criterio de búsqueda; matriz; índice; ordenado)
Así que la principal diferencia radica en la forma en la que buscan la información, debido a la forma en la cada una requiere que estén distribuidos los datos.

BuscarV():

 Esta función realiza una búsqueda vertical. Lo cual significa que busca un valor especificado en el primer campo, es decir, en la primera columna de un rango de celdas, y comprueba si esa primera columna contiene el valor buscado, de forma que si lo llega a encontrar, significa que existe el registro en la base de datos, por lo tanto se sitúa en la fila correspondiente al valor encontrado a fin de poder devolver un valor en otra de las columnas (campo) del rango de celdas (esto es, la columna indicada por el argumento Índice).

En el caso de la función BuscarV(), requiere que los datos se encuentren distribuidos de forma que los registros de valores se sitúen en renglones (los campos se corresponden con las columnas). El siguiente ejemplo sirve para ejemplificar dicha distribución de datos, como puede verse, la primera columna contiene el campo clave:


BuscarH(): 

Esta función realiza una búsqueda horizontal. Es decir, busca un valor específico en el primer campo, es decir en el primer renglón de un rango de celdas, comprueba si el primer renglón contiene el valor buscado, y si lo encuentra significa que existe el registro en la base de datos, por lo tanto se sitúa en la columna correspondiente al valor encontrado a fin de poder devolver el valor situado en otro de los renglones (campos) del rango de celdas (indicada por el argumento Índice).

La función BuscarH() maneja la segunda distribución, en donde los campos se ubican en los renglones (y los registros de información en las columnas. El siguiente ejemplo sirve para ejemplificar dicha distribución de datos, en este caso el primer renglón representa el campo clave



¿Cuál elegir?, en nuestro caso no tenemos opción, ya que vamos a manejar pilotos de datos, y por ello nos vemos obligados a utilizar la primera distribución de datos (campos en columnas), eso implica que vamos a trabajar los ejemplos de búsqueda con la función BuscarV().

BUSCARV( )


Sintaxis

=BUSCARV(Valor buscado; Matriz; Índice; Ordenado)

Donde:
  • Valor buscado es el valor que se busca en la primera columna de la matriz (Rango de celdas).
  • Matriz es la referencia a la base de datos, es decir, el rango de celdas que contiene los datos (que por lo menos tiene contener dos columnas).
  • Índice es el número de columna de la matriz que contiene el valor a devolver. La primera columna del rango de celdas la corresponde el número 1 (la segunda con el 2 y así sucesivamente).
  • Ordenado (opcional) es un parámetro opcional que indica si la primera columna de la matriz está ordenada de forma ascendente. Si se omite el argumento, el valor que se aplica es Verdadero (o su equivalente 1), lo que implica que, la matriz debe ser ordenada ascendentemente, ya que se realizarán las búsquedas en columnas ordenadas, y este tipo de búsquedas son mucho más rápidas; sin embargo, tiene el inconveniente de que aunque no se haya encontrado el valor de búsqueda exacto, la función siempre devuelve un valor, siempre que se encuentre entre los valores máximo y mínimo de la lista ordenada, así, si el valor buscado exacto no se encuentra, el último valor que es menor que lo que devolverá (esto significa que devuelve un valor, independientemente de si el valor buscado lo encuentra o no; esto es algo que no resulta conveniente). Por ello si lo que desea es encontrar el valor exacto, escriba el valor lógico FALSO o su equivalente 0 (cero), esto le supone a la función que la primera columna no está ordenada de forma ascendente; por lo tanto, el valor de búsqueda debe coincidir exactamente, y en caso de no encontrar el valor buscado, la función devolverá el siguiente mensaje: Error: Valor no disponible (#N/A). Falso el valor ideal que se manejará en los ejemplos, ya que lo que se desea es encontrar exactamente el valor buscado.


No olvide que si la función encuentra el valor buscado, la función devuelve el valor almacenado en la columna indicada con el argumento índice, valor que se ubica en el mismo renglón donde encontró el valor buscado.

Ejemplo: Se desea escribir una consulta, de forma que mediante la clave de un plato del menú, se pueda hacer que el nombre de dicho plato aparezca de forma inmediata en la celda vecina.

Se trabajara lo siguiente: Escriba la lista de platos en el rango de celdas D1:E10, en esta lista se establece la relación del número de plato con el nombre del plato. Observe como la celda D1 contiene la clave 100, y la celda E1 contiene el nombre Sopa de verduras, y así sucesivamente hasta tener los 10 elementos del menú.

En la celda A1 se deberá escribir el número del plato del menú a consultar y en la celda vecina (B1) deberá aparecer de forma inmediata el nombre de dicho plato, por ello, introduzca la fórmula siguiente en B1: =BUSCARV(A1; D1:E100; 2;0)
Al introducir un número de plato en la celda A1 (valor buscado), si la clave del plato existe, aparecerá rápidamente en la celda B1 el texto contenido en la segunda columna del rango D1:E100 (es decir, de la columna E). 
Como en la fórmula se ha incluido el último parámetro, con el valor cero (O), en caso de introducir un número inexistente la función devolverá como resultado un mensaje de error, observe:
Si se omite el último argumento, la fórmula será: =BUSCARV(A1; D1:E100; 2), esto obliga a primero ordenar la lista, a fin de que sea capaz de devolver un valor aproximado, y por lo tanto al introducir un número inexistente (que se encuentre entre el valor menor y mayor de la lista ordenada), el texto que aparece es el correspondiente al número inferior más cercano. 

Veamos que aparece en caso de que la lista no se haya ordenado:
Observe igualmente que con la lista desordenada, aun cuando se introduzca un valor existente, devolverá un error (Valor no encontrado):



Ahora veamos que aparece en caso de que la lista se ordene de forma ascendente:

Como puede observarse, en ambos casos los resultados son distintos, y sin embargo, en la lista no aparece el valor buscado (190).

Ahora bien, aun cuando la lista esté ordenada, si el valor introducido se encuentra fuera de la serie de valores señalados en la primera columna de la lista, la función devolverá un mensaje de error.


Veamos un último ejemplo: teniendo la tabulación siguiente en la Hoja denominada BD

Se crea una hoja de consulta, en la Hoja que se le denominará Consulta, y dependiendo del valor insertado en la celda B2 (que debe concordar con el campo clave), deberá mostrar los datos del registro, arriba de las celdas señaladas con la etiqueta:


Note que en todos los casos la fórmula es similar, lo que cambiará es el argumento índice, ya que cada campo se encuentra ubicado en una columna diferente. La primera fórmula a introducir es: =BUSCARV(B2; BD.A1:E6; 2; 0) observe el resultado de la formula, como con el valor capturado en B1 (F283) extrae el nombre “Mérida”.


No olvide que si desea copiar la formulan, deberá dejar fijas las referencias de celdas correspondientes. No les quito la diversión, y los dejo intentarlo y practicar por su cuenta, referencias relativas y absolutas. 

A continuación se muestra el resultado de la consulta, ya con todas las formulas introducidas:

Observe que si se cambia el campo clave (en celda B2), los valores se modifican automáticamente:

Si desea descargar el contenido de esta entrada y la anterior haga clic aquí.

No queda más que hacer los ejemplos aquí proporcionados, y analizar sus posibles usos en las funciones en actividades cotidianas y practicar.

Saludos

M.C. Bertha López Azamar




P.D. Alumno UNPA, si ya leíste la entrada, pon la letra de tu grupo y las iniciales de tus apellidos primero y luego de tu nombre en un comentario de esta entrada.