Ahora, vamos a ver la función BDEXTRAER.
Esta función extrae un único valor de una columna de una lista o una base de datos que cumple con las condiciones que le especifiquemos.
Veamos un ejemplo, y, vamos conociendo sus argumentos.
Tenemos los siguientes datos.
Queremos extraer el rendimiento del manzano cuya altura sea superior a 14, si nos fijamos en el modelo podemos ver que hay tres manzanos con diferentes alturas.
En la celda C19, es donde vamos a introducir la función, pues, escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.
=BDEXTRAER(
El primer argumento es base de datos, pues seleccionamos el modelo.
=BDEXTRAER(B6:F12;
El siguiente argumento es nombre de campo, en este caso, voy a poner el nombre del encabezado entre comillas dobles, queremos recuperar la columna de rendimiento, también puedo poner el número de columna, que en este caso, sería la columna 4.
=BDEXTRAER(B6:F12;"Rendimiento";
Y, el último argumento es criterios, pues lo seleccionamos, siendo desde B15 hasta C16.
Cerramos paréntesis, y, aceptamos.
=BDEXTRAER(B6:F12;"Rendimiento";B15:C16)
Nos devuelve 14, si nos fijamos el manzano que tiene mayor altura es 18, y, su rendimiento es 14.
Veamos otro ejemplo, pero en este caso, lo vamos a realizar con la función COINCIDIR e INDICE, y, con BDEXTRAER, para ver las ventajas de BDEXTRAER.
Tenemos el siguiente modelo.
Vemos, que, por ejemplo, Luis, aparece dos veces, lo que queremos es que nos diga la edad, en este caso, de Luis Gómez, que es el segundo Luis.
¿Cómo lo hacemos?
Bien, debemos de poner el nombre y el apellido a buscar, en este caso.
Primero, debería de saber que posición ocupa Luis Gómez, para ello, vamos a hacer uso de función COINCIDIR, esta función nos va a devolver la posición de un elemento dentro de un rango, y, después, con la función INDICE, irme a dicha fila.
Pero ¿Cómo le decimos con la función coincidir, que debe de encontrar Luis Gómez?
Una de las cosas que podemos hacer es, concatenar el nombre y el apellido, y, se convertiría una sola cadena, pero eso implica añadir una columna auxiliar al modelo de datos, donde también concatenaremos el nombre y el apellido, pues va a ser el dato para buscar.
Entonces, vamos a añadir esa columna nueva al modelo de datos.
Para ello, vamos a usar la nueva función CONCAT, donde como argumento señalamos desde A5 a B5, es decir, nombre, y, apellido1.
=CONCAT(A5:B5)
Arrastramos la función, y, ya tenemos la unión del nombre y apellido1 para cada celda.
Lo siguiente, con la función COINCIDIR, vamos a buscar la unión de nombre y apellido1 a buscar en esa columna auxiliar.
La sintaxis es la siguiente, donde como valor buscado, unimos nombre, y, apellido1, con el símbolo de ampersand.
=COINCIDIR(H5&I5;
El siguiente argumento, es matriz donde vamos a buscar, que es de F5 a F9.
=COINCIDIR(H5&I5;F5:F9
El ultimo argumento, es tipo de coincidencia, que debe de ser exacta, pues, ponemos el numero cero, y, cerramos paréntesis.
=COINCIDIR (H5&I5; F5:F9;0)
Aceptamos.
Vemos que como nombre y apellido1, esta Jaime Garcia, pues, vamos a cambiarlo a Luis Gómez.
Nos devuelve la posición 5.
Pues, ya tenemos el argumento indicador de filas de la función INDICE.
Usaremos la siguiente sintaxis, donde, como argumento matriz, seleccionamos la columna de edad, es decir, desde E5 a E9, el argumento numero de fila, ya lo tenemos, que es la función COINCIDIR, y, el argumento numero de columna, lo voy a omitir, por defecto, tomara el valor 1, que nos vale, porque solo tenemos una columna.
=INDICE(E5:E9;COINCIDIR(H5&I5;F5:F9;0))
Aceptamos, y, como resultado tenemos 50, que es la edad de Luis Gómez.
Si cambiamos nombre y apellido, veremos que tenemos el resultado correcto, pero que ocurre, si ponemos un nombre, y, un apellido1, que no existe.
Pues, que nos devuelve un error.
Para solventarlo, vamos a hacer uso de la función SI.ERROR, y, vamos a decirle que en caso de que la expresión devuelva un error, ponga, por ejemplo, un texto en blanco.
=SI.ERROR(COINCIDIR(H5&I5;F5:F9;0);"")
Vemos que ahora pone un texto en blanco, ya que devuelve un error.
Bien, ahora, lo vamos a hacer con la función BDEXTRAER, y, veremos que es mucho más fácil, porque, no tenemos que crear una columna adicional, ni, tampoco, tenemos que concatenar.
Por ejemplo, vamos a buscar a Jaime Garcia, vemos que también aparecen dos personas llamadas Jaime, el apellido1 de la primera persona llamada Jaime es Franco, y, el de la segunda persona, llamada Jaime, es Garcia, pues queremos la edad, de esta segunda persona, es decir, de Jaime García.
Tenemos el mismo cuadro de búsqueda, que el anterior, pero en otra posición.
En la celda J13, es donde vamos a realizar el cálculo, para ello, escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.
=BDEXTRAER(
Como argumento, base de datos, seleccionamos nuestra matriz que va desde A13 hasta E18.
=BDEXTRAER(A13:E18;5;
Como argumento, nombre de campo, voy a poner el numero 5, es decir, quiero recuperar la columna 5, en caso de poner, el nombre del encabezado debe de ir encerrado entre comillas dobles.
=BDEXTRAER(A13:E18;5;
Como argumento, criterios, seleccionamos desde H12 a J13, donde tenemos los encabezados, y, los datos, cerramos paréntesis, y, aceptamos.
=BDEXTRAER(A13:E18;5;H12:J13)
Vemos la edad de Jaime Garcia, que es de 22 años.
Podemos darnos cuenta, que hemos realizado mucho menos trabajo, que en el caso anterior.
Veamos ahora BDMAXIMO.
Esta función, nos devuelve el valor máximo de una columna de registros que cumpla las condiciones especificadas.
Tenemos el siguiente modelo.
Necesito saber la diferencia que hay entre el manzano de más altura, y, el manzano de menos altura, si nos fijamos en el modelo de datos, podemos observar que el manzano de mayor altura es de 18, y, el manzano de menos altura es de 8, pues quiero saber la diferencia.
Primero, debo de extraer el valor máximo de manzano, para ello, usamos la siguiente sintaxis, donde como argumento, base de datos, seleccionamos el rango, desde B6 a F12, como argumento, nombre de campo, voy a especificar el número de columna, pues ponga el número 2, y, como criterios, seleccionamos las celdas desde B15 a B16, que es donde se encuentra el criterio.
Cerramos paréntesis, y, aceptamos.
=BDMAX (B6:F12;2; B15:B16)
Como resultado tenemos 18, que es la altura del manzano de mayor altura.
Pues, a este resultado, le vamos a restar el valor mínimo, donde usamos la función BDMIN, con los mismos argumentos, que hemos usado con la función BDMAX, por lo que la formula completa, quedaría:
=BDMAX (B6:F12;2; B15:B16)-BDMIN (B6:F12;2; B15:B16)
Aceptamos, y, podemos ver la diferencia entre ambas cantidades, que es de 10, porque si a 18 le restamos 8, nos queda 10.
Comments