Ejemplo BDMAX y BDMIN en Excel.

Anuncio
FUNCIONES DE BUSQUEDA BUSCARV – BUSCAR H
BUSCARV es una de las funciones de búsqueda y referencia más conocidas y utilizadas (si no la
única) por las grandes masas. Esta función busca un valor dado en la primera columna de una tabla
(matriz) y devuelve el dato que está x número de columnas a la derecha de ese valor.
La sintaxis de esta función es la siguiente:
BUSCARV(valor_buscado, matriz_buscar_en, indicador_columnas, ordenado)
Supongamos que tenemos un directorio de teléfonos y direcciones, en el rango A1:C1000. En la
primera columna tenemos los nombres de nuestros contactos (no necesariamente ordenados), en la
segunda tenemos sus correspondientes números telefónicos y en la tercera tenemos sus direcciones.
Si queremos buscar el teléfono de Smith, escribimos la siguiente fórmula:
=BUSCARV("smith", A1:C1000, 2, FALSO)
Escribo Smith con minúsculas por comodidad y porque la función no es sensible a mayúsculas y
minúsculas. En matriz_buscar_en incluimos todo el rango que ocupa el directorio.
Indicador_columnas es 2 porque los teléfonos están en la columna 2 del directorio (si buscáramos la
dirección
de
Smith
escribiríamos
3
como
tercer
argumento).
El último argumento (ordenado), que en mi opinión debería llamarse "aproximado" o algo así,
puede ser FALSO o VERDADERO. Si es FALSO, BUSCARV buscará una coincidencia exacta en
los datos; si no la encuentra, devolverá #N/A. Por el contrario, si el el argumento es VERDADERO,
BUSCARV buscará la coincidencia más cercana inferior al valor buscado. En los casos como este,
en los que buscamos una coincidencia exacta, es muy importante establecer el cuarto argumento a
FALSO, ya que si lo omitimos, Excel considerará que es VERDADERO, con la posibilidad de
obtener un resultado incorrecto en nuestras fórmulas. Casi siempre será correcto establecerlo a
FALSO.
Habrá sin embargo, casos en los que deberemos poner este argumento como VERDADERO, como
cuando deseamos saber a que rango de valores pertenece cierto valor. Supongamos que deseamos
saber la comisión que debemos pagar a cierto vendedor según su alcance de ventas. Si el vendedor
tiene un alcance de 0 a 70%, le pagaremos 0% de comisión; si tiene de 71 a 100% de alcance, le
pagamos
un
5%;
y
si
tiene
más
de
100%,
le
pagaremos
el
6%.
Elaboramos entonces la siguiente tabla de comisiones:
Supongamos que su alcance real fue del 98%. Para saber que porcentaje de comisión le corresponde
al vendedor, usamos la siguiente fórmula:
=BUSCARV(B6, A1:B4, 2, VERDADERO)
La cual devuelve 5%. 71% es el valor más alto inferior al número buscado (98%). De haber puesto
el último argumento FALSO, habríamos obtenido #N/A, lo cual no nos sirve.
La ayuda on-line para esta función nos amplía un poco más:
"Ordenado: Valor lógico que especifica si BUSCARV va a buscar una coincidencia exacta o
aproximada:
Si se omite o es VERDADERO, se devolverá una coincidencia exacta o aproximada. Si no localiza
ninguna coincidencia exacta, devolverá el siguiente valor más alto inferior a valor_buscado.
Los valores de la primera columna de matriz_buscar_en deben estar clasificados según un criterio
de ordenación ascendente; en caso contrario, es posible que BUSCARV no devuelva el valor
correcto. ...
Si es FALSO, BUSCARV sólo buscará una coincidencia exacta. En este caso, no es necesario
ordenar los valores de la primera columna de matriz_buscar_en. Si hay dos o más valores en la
primera columna de matriz_buscar_en, se utilizará el primer valor encontrado. Si no se encuentra
una coincidencia exacta, se devolverá el valor de error #N/A.
...
Si Ordenado es FALSO y valor_buscado es un valor de texto, se pueden utilizar los caracteres
comodín de signo de interrogación (?) y asterisco (*) en el argumento valor_buscado. El signo de
interrogación corresponde a un solo carácter cualquiera y el asterisco equivale a cualquier secuencia
de caracteres. Si lo que desea buscar es un signo de interrogación o un asterisco, escriba una tilde
(~) antes del carácter."
Ejemplo BDMAX y BDMIN en Excel.
Tengo en A1 a A10 rangos con fecha y hora de las llamadas hechas y en B1 a B10 el nombre del
agente; y lo que debo de hacer es obtener el mínimo y el máximo registro de cada agente. ...
Lo resolveré esta vez empleando funciones para Base de datos, y en concreto las funciones:
BDMIN(base de datos; campo; rango de criterios)
BDMAX(base de datos; campo; rango de criterios)
Aplicaremos estas fórmulas sobre nuestro listado:
Aprovecharemos de nuestro ejemplo anterior que teníamos una celda validada en E3, para definirlos
como 'Rango de criterios' en nuestras funciones de Base de datos.
Interpretaré las funciones dadas.
Para obtener el mínimo valor:
=BDMIN($A$1:$B$11;"Hora";$E$2:$E$3)
preguntamos a Excel de la Base de datos definida por el Rango $A$1:$B$11, cuál es el valor
mínimo del campo 'Hora', para aquellos registros que cumplan los criterios dados en el rango
$E$2:$E$3, i.e., aquellos registros en los que para el campo 'Agente' tengamos elementos igual al
valor de E3.
De igual forma, para el valor máximo:
=BDMAX($A$1:$B$11;"Hora";$E$2:$E$3)
de nuestra Base de datos obtendremos el valor máximo para los registros en los que coincida el
elemento del campo 'Agente' ccon el valor de E3.
BDSUMA
Si tuviéramos la siguiente tabla de datos y necesitáramos conocer la suma de los importes que
correspondan al rango de fechas en tu ejemplo, del 30/07/09 al 7/08/09 :
Lógicamente sabemos que debemos aplicar la función
=BDSUMA(base de datos; campo ;criterios)
que en nuestro ejemplo sería:
Es decir, la suma de los 'Importes' de los registros (cuentas de gasto) que cumplen la condición
dada, es decir, que la fecha se encuentre entre el 30/07/2009 y el 07/08/2009, es de 43.850,00 eur.
Recordemos brevemente el funcionamiento de esta función de Excel BDSUMA. En el primer
argumento seleccionamos el rango de celdas de nuestra base de datos, por tanto, incluímos la
cabecera de los títulos. En el segundo argumento de la función indicamos qué campo deseamos
que nos sume, acumulando aquellos registros que cumplan las condiciones del tercer argumento.
Por último el tercer argumento, el más importante, ya que sin éste, tendríamos una función SUMA
normal. En este punto, os remito a la entrada comentada Funciones para bases de datos; si bien
comentaré un punto importante, y es que dos condiciones en la misma línea o fila de la hoja de
cálculo equivale a exigir el cumplimiento simultáneo (es decir al Y), sin embargo que se encuentren
en distintas líneas nos permite un cumplimiento alternativo, esto es, que se cumpla una condición o
bien la otra (es decir el O); siempre, en los casos de condición directa-no con fórmula asociada a la
base de datos- con el Nombre del campo encima de las condiciones.
FILTROS EN EXCEL
Filtrar una lista no es ni más ni menos que de todos los registros almacenados en la tabla,
seleccionar aquellos que se correspondan con algún criterio fijado por nosotros.
Excel nos ofrece dos formas de filtrar una lista.
- Utilizando el Filtro (autofiltro).
- Utilizando filtros avanzados.
Utilizar el Filtro.
Para utilizar el Filtro nos servimos de las listas desplegables asociadas a las cabeceras de campos
(podemos mostrar u ocultar el autofiltro en la pestaña Datos marcando o desmarcando el botón
Filtro).
Si pulsamos, por ejemplo, sobre la flecha del campo 1er
Apellido, nos aparece un menú desplegable como este, donde
nos ofrece una serie de opciones para realizar el filtro.
Por ejemplo, si sólo marcamos Moreno, Excel filtrará todos
los registros que tengan Moreno en el 1er apellido y las
demás filas 'desaparecerán' de la lista.
Otra opción, es usar los Filtros de texto, donde se despliegan
una serie de opciones:
En cualquier opción, accedemos a una ventana donde podemos elegir dos condiciones de filtro de
texto, y exigir que se cumpla una condición o las dos. Excel evaluará la condición elegida con el
texto que escribamos, y si se cumple, mostrará la fila. Usaremos el carácter ? para determinar que
en esa posición habrá un carácter, sea cual sea, y el asterisco * para indicar que puede haber o no un
grupo de caracteres.
En el ejemplo de la imagen, solo se mostrarán los registros cuyo 1er Apellido tenga una o en el
segundo carácter y no contenga la letra z.
Para indicarnos que hay un filtro activo, la flecha de la lista desplegable cambia de icono.
Para quitar el filtro, volvemos a desplegar la lista y elegimos la opción (Seleccionar Todo),
reaparecerán todos los registros de la lista. También podemos quitar el filtro pulsando en Borrar
filtro
en la pestaña Datos.
Utilizar Filtros avanzados.
Si queremos filtrar los registros de la lista por una condición más compleja, utilizaremos el cuadro
de diálogo Filtro avanzado. Previamente deberemos tener en la hoja de cálculo, unas filas donde
indicaremos los criterios del filtrado.
Para abrir el cuadro de diálogo Filtro avanzado, pulsaremos en
filtrar.
en la sección Ordenar y
Rango de la lista: Aquí especificamos los registros de la lista a
los que queremos aplicar el filtro.
Rango de criterios: Aquí seleccionamos la fila donde se
encuentran los criterios de filtrado (la zona de criterios).
También podemos optar por guardar el resultado del filtrado en
otro lugar, seleccionando la opción Copiar a otro lugar, en este
caso rellenaremos el campo Copiar a: con el rango de celdas que
recibirán el resultado del filtrado.
Si marcamos la casilla Sólo registros únicos, las repeticiones de registros (filas con exactamente los
mismos valores) desaparecerán.
Para volver a visualizar todos los registros de la lista, acceder al menú Datos - Filtro - Mostrar
todo.
ORDENAR UNA LISTA EN EXCEL
Revisaremos una manera avanzada de ordenar nuestras bases de datos en Excel, lo haremos sobre
la versión Excel 2007. aunque para versiones Excel 2003 o anteriores es muy similar.
Comenzamos con la disposición de nuestra Base de datos:
Normalmente estamos acostumbrados a realizar la ordenación empleando los iconos directos de
orden de A a Z o bien el contrario de Z a A, es decir en orden ascendente o descendente:
Sin duda es la opción más cómoda y rápida, pero en ocasiones necesitamos realizar una ordenación
sobre distintos campos de nuestra base de datos, dando prioridad a unos sobre el resto, para estas
ocasiones es cuando empleamos el Ordenar avanzado:
Esta ordenación nos permitirá aplicar una prioridad en nuestra Base de datos. Seleccionamos
nuestro origen de datos en Excel, y desde el menú Datos > Ordenar
En este cuadro diálogo configuraremos nuestros criterios de orden. En primer lugar es muy
importante que marquemos la opción de Mis datos tienen encabezado, ya que de este modo no se
incluirán los títulos de los campos en la ordenación; si no fuera el caso, habría que desmarcarlo.
Ahora tan sólo deberemos ir seleccionando la prioridad de campos en la ordenación, seleccionando
en la sección columna dicho campo. En la siguiente sección de la ventana de diálogo
seleccionaremos la naturaleza de esta ordenación, es decir, si queremos ordenarlo siguiendo el valor
de las celdas, el color de la fuente o del fondo de la celda (esta es una opción que sólo existe para la
versión Excel 2007). Por último, para cada campo seleccionado, le indicaremos cuál es el criterio,
ascendente o descendente o personalizado, por el que será ordenado el campo. Una vez
configurados los tres elementos, podremos Agregar un nuevo nivel en la ordenación, esto es, darle
una segunda prioridad para la ordenación total de la Base de datos.
En nuestro ejemplo, supongamos que queremos tener ordenada nuestra base de datos, en primer
lugar, en orden ascendente (de menor a mayor), siguiendo el valor de las celdas, por el campo
'Fecha operación'; como segundo nivel, ordenaremos dependiendo del valor de cada celda, de
mayor a menor, por el campo 'Precio unitario'; y por último, utilizaremos el campo 'descuento' para
ordenar los registros de nuestra base de datos de menor a mayor.
Vemos el resultado de la ordenación:
Lo que ha ocurrido en nuestra base de datos es que se han ordenado todos los registros, respetando
la cabecera o títulos con los nombres de los campos, dando prioridad en primer lugar a las fechas de
cada operación, si hubieran habido coincidencias en alguna fecha de varios registros, hubiera
aplicado inmediatamente el segundo nivel de prioridad, es decir, el del campo 'Precio unitario',
ordenando esos registros coincidentes por el campo 'Precio unitario' con una ordenación
descendente; de igual forma, si nos encontráramos con coincidencias de registros también al aplicar
este segundo nivel, aplicaría el tercer nivel definido.
Descargar