You are on page 1of 8

Ejemplo de Funciones para Bases de datos.

Ocurre en ocasiones que al trabajar con nuestro listados, o con nuestras bases de datos
en Excel, no son suficientemente potentes la 'funciones normales' de Excel; por ejemplo
porque necesitamos una suma condicionada a varios de los campos de nuestro origen de
datos. Normalmente con la funcin SI, o con la suma condicionada SUMAR.SI (ambas ya
vistas en diferentes post de ese blog) podamos concluir nuestros anlisis, de una forma
elaborada.
Pero existen algunas funciones de bases de datos (as categorizadas por Excel en el listado
de funciones), que aunque pocas, reproducen especialmente diseadas para Bases de
datos de Excel las funciones ms bsicas (SUMA, CONTAR, PROMEDIO, MAX, MIN,
PRODUCTO, etc.); las diferenciamos porque estas funciones de bases de datos comienzan
con 'BD' (BDCONTAR, BDSUMA, etc).
Lgicamente estas funciones necesitan una manera particular de ser definidas, es decir, a
la hora de incorporarle sus argumentos habr que pensar de diferente forma -condiciones
o criterios aplicados sobre distintos campos-.
Los argumentos mencionados son siempre tres, para todas estas funciones:
Base_de_datos es el rango de celdas que compone la lista o base de datos. Una base de
datos es una lista de datos relacionados en la que las filas de informacin son registros y
las columnas de datos, campos. La primera fila de la lista contiene los rtulos de cada
columna.
Nombre_de_campo indica el campo que se utiliza en la funcin. Nombre_de_campo
puede ser texto con el rtulo encerrado entre dobles comillas, o como un nmero que
represente la posicin de la columna en la lista: 1 para la primera columna, 2 para la
segunda y as sucesivamente.
Criterios es el rango de celdas que contiene las condiciones especificadas. Puede utilizar
cualquier rango en el argumento Criterios mientras ste incluya por lo menos un rtulo de
columna y por lo menos una celda debajo del rtulo de columna que especifique una
condicin de columna.
Es importante remarcar este argumento de Criterios, ya que para poder ejecutar estas
funciones de Bases de datos, necesitaremos un rango independiente de nuestro listado
de datos a analizar.
Propondremos un ejemplo sencillo donde poder practicar algunas de estas funciones.
Tenemos un listado sacado de nuestro diario contable, en el que tenemos informacin de
la Fecha del registro contable, de la Cuenta de gasto empleada, si proede de una
factura o de un abono y del importe (nos aparecen todos en positivo, ya que el signo no
lo indica ese campo factura/abono):

Plantearemos varias preguntas sobre ese listado e iremos viendo la forma de responderlas
con estas fuciones de bases de datos.
Si necesitamos conocer cuntos registros he tenido en mi contabilidad con la cuenta 622,
entonces aplico sobre el listado la funcin =BDCONTAR($A$1:$D$24;"Cuenta";F4:F5)
Nos fijaremos que el tercer argumento de criterios(F4:F5) nos dirije a unas celdas definidas
por mi.
Si pretendemos saber cul ha sido el acumulado en euros de todas nuestras facturas,
aplico la funcin =BDSUMA(A1:D24;"Importe";$F$9:$F$10) Si quisiera discriminar todas
aquellas facturas de mi listado cuyos importes estuviera comprendido entre 0 eur y 5.000
eur resumira con la siguiente funcin
=BDSUMA($A$1:$D$24;"Importe";F12:H13)

Una regla general a todas estas funciones, para saber cmo aplicarlas es: dentro del
origen de datos seleccionado, ejectame la operacin dada por la funcion BD sobre el
campo del segundo argumento, pero condicionada por el rango de condiciones sobre
distintos campos.
Funcin lgica: O
Ejercitaremos de manera muy sencilla con otra de las funciones lgicas de Excel, la
funcin O. Esta nos devolver VERDADERO si alguno de los argumentos es VERDADERO y
devolver FALSO si todos los argumentos son FALSO.
Veamos la sintaxis:
= O(valor_lgico1; valor_lgico2; ...)
Al igual que la funcin Y, en sta podremos incluir hasta 30 pruebas lgicas.
Plantaremos un pequeo ejemplo con un listado de personas con Nombre y Apellido, y
mediante la funcin O discriminaremos aquellas personas cuyo nombre comience con
vocal, para posteriormente asignarles, mediante el SI condicional, un valor igual 5, y para
los nombres que comiencen por consonante un valor igual a 1.
Nuestra lista podra ser:

Aplicando la funcin O de la siguiente manera podremos averiguar si el nombre comienza


con vocal. Para ello anidaremos la funcin:
=IZQUIERDA(nombre; 1)
Para determinar con qu letra comienza cada nombre, dentro de la funcin lgica O:
=O(IZQUIERDA(nombre;1)="A";IZQUIERDA(nombre;1)="E";IZQUIERDA(nombre;1)="I";IZQUIERD
A(nombre;1)="O";IZQUIERDA(nombre;1)="U")
Ahora para asignarles un valor 5 a los que comienzan con vocal, y un valor 1 con
consonante, emplearemos la funcin SI; anidando la anterior funcin O descrita como
argumento condicional, y seleccionando como valor de verdadero 5 y como valor de
falso 1:

La funcin lgica SI(siguiendo la categorizacin propia de Excel para sus funciones.


Explicaremos otra de las funciones lgicas de Excel, funcin Y.
=Y(valor_lgico1;valor_lgico2; ...)
Esta funcin nos permitir comprobar si distintas condiciones, o pruebas lgicas, se
cumplen (son verdaderas) simultneamente; hasta un mximo de treinta!!.
Replicaremos, empleando esta funcin Y, el ejercicio planteado en un post anterior. El
modo de trabajo ser muy similar.
Recordemos que disponemos de un listado de contactos con datos personales, y usando
una tabla paralela con unas categoras comerciales, se les asignar a cada uno de ellos
en funcin a su edad y sexo.

y la tabla auxiliar con datos de puntuacin comercial:

Es entonces cuando aplicamos la funcin Y. La usaremos a modo de condicin dentro de


una funcin SI anidada. As:
Y(edad<50;sexo="V")
preguntamos si es cierto que ese contacto tiene una edad inferior a 50 y sexo Varn al
tiempo. Por tanto, es sin duda una prueba lgica que podemos utilizar dentr de la funcin
SI
=SI(Y(edad<50;sexo="V");Puntuacin 10)
puesto que tenemos una tabla de puntuaciones, con las distintas combinaciones posibles
que necesitamos para nuestra clasificacin, nos podra servir el uso del SI anidado para ir
dirigiendo estas combinaciones a su puntuacin concreta. Al usar el SI estamos diciendo
realmente que si se cumple al tiempo que el contacto tiene una edad inferior a 50 y es
Varn, entonces ejecutas o seleccionas la celda de Puntuacin 10. Cuando no se
cumplan las condiciones de edad y sexo marcadas, volvemos a preguntar con otro SI,
que incluir a su vez como prueba lgica, un Y que comprenda una nueva combincn
de edad-sexo, y as sucesivamete hasta completar nuestra tabla de puntuaciones.

Podramos plantear un rbol de ejecucin de los SI anidado, combinado con la funcin Y:

Obviamente no es esta la solucin ms ptima para desarrollar este ejercicio, pero es una
buena forma de practicar con estas dos funciones lgicas SI e Y.

Ejemplo para principiantes de SI anidado.


No pretendemos olvidar ni dejar de lado a aquellos usuarios con un nivel 'principiante'. Por
este motivo dedicaremos diversas entradas para explicar conceptos, funciones y
herramientas para ayudar a todos nuestros lectores que busquen mejorar su nivel.
En este caso ejercitaremos una de las funciones de Excel bsicas, la funcin condicional
SI, de la que ya hemos hablado en posts anteriores. Recordamos su sintaxis:
=SI(prueba_lgica;valor_si_verdadero;valor_si_falso)
Plantearemos un supuesto prctico para poder utilizar el SI, aadiendo un poco de
complejidad mediante el anidado de otra funcin SI. Disponemos de un listado de
contactos con datos que los identifican, entre otros sexo y edad; datos estos que
emplearemos para anidar nuestra funcin SI.

disponemos a su vez de un Tabla de puntuaciones comerciales, de acuerdo a su edad y


sexo,
tomadas
de
una
estadstica
histrica:

Para poder asociar a cada uno de nuestros contactos, a partir de este listado del que
disponemos, emplearemos la funcin condicional SI, anidndola ya que nuestras variables
son
dos;
la
funcin
para
cada
fila
quedara
entonces:

donde podemos ver la manera en que queda anidado la funcin:


=SI(edad<50;SI(sexo="V";puntuacin edad<50 & sexo V;puntuacin edad<50 & sexo
H);SI(sexo="V";puntuacin edad>=50 & sexo V;puntuacin edad>=50 & sexo H))
Es decir, nuestro SI principal nos discrimina si la edad es menor a 50, si es cierto y se cumple
activamos un SI secundario, desde el que distinguimos si el sexo es V; en el caso que se
cumplan ambos criterios forzamos el valor 'puntuacin edad<50 & sexo V'; sin embargo si
cumple la caracterstica edad <50 y no tiene el sexo V, entonces 'puntuacin edad<50 &
sexo H'. Si no se cumpliera el primer condicional, y por tanto la edad tendra que ser >=50,
se ejecutara el siguiente SI secundario; sobre el que actuara la segunda condicin de
sexo (al igual que el anterior SI secundario). Podramos plantear el siguiente rbol de
decisin para ver ms claro nuestro planteamiento:

You might also like