Sei sulla pagina 1di 200

FUNCI ONES EN EXCEL 2003 Y EXCEL 2007

I NTRODUCCI ON
Esta pgina est dedicada a definicion funciones de EXCEL, EXCEL 2007 y EXCEL 2003, con tutoriales paso
a paso, ya que las FUNCI ONES DE EXCEL son uno de los temas mas importantes de este valioso programa y
cuando se combinan entre si, efectuando anidamiento de funciones tienen una potencia enorme, tan es as que
podramos pasarnos escribiendo libros enteros de funciones sin que el tema quede agotado..
Empezar diciendo que Excel tiene ms de 327 funciones divididas por categoras (sin contar claro est con las
que el usuario puede definir), estas son:

1.- Funciones de complemento y automatizacin
2.- Funciones de cubo
3.- Funciones de base de datos
4.- Funciones de fecha y hora
5.- Funciones de ingeniera
6.- Funciones financieras
7.- Funciones de informacin
8.- Funciones lgicas
9.- Funciones de bsqueda y referencia
10.- Funciones matemticas y trigonomtricas
11.- Funciones estadsticas
12.- Funciones de texto
Aqu les dejo un archivo con la mayora de ellas, con traduccin ingles/castellano


DEFINI CION DE FUNCI ONES
Empezar con las mas comunes para luego ir agregando. La clasificacin que hago es un tanto personal, como
podrn ver, hay algunas funciones puestas en varias categoras en forma simultanea.

LAS MAS COMUNES
A estas funciones se puede acceder en forma rpida desde el icono ya que haciendo clic en el triangulito
se despliega un men emergente con botones a todas ellas( Excel 2007 y 2003 ).
SUMA
PROMEDI O
MAX
MI N
CONTAR
FUNCI ONES QUE SUMAN y CUENTAN( algunas de acuerdo a una condicin)

SUMA
CONTAR
SUMAR.SI
SUMAR.SI .CONJ UNTO
CONTAR.SI
CONTAR.SI .CONJ UNTO
CONTAR.BLANCO
CONTARA
FUNCI ONES CONDI CI ONALES

SI
CONTAR.SI
CONTAR.SI .CONJ UNTO
SUMAR.SI
SUMAR.SI .CONJ UNTO


FUNCI ONES LOGI CAS

Una proposicin lgica es una afirmacin que puede se VERDADERA o FALSA pero no ambas a la vez y
justamente los argumentos de las funciones lgicas son proposiciones lgicas. Tambin las funciones lgicas
devuelven resultados VERDADERO o FALSO. Esta es una definicin que se cumple en forma estricta
solamente para las siguientes funciones:

Y
O
NO

FUNCI ONES DE BSQUEDA Y REFERENCI A

BUSCARV
DESREF
I NDI CE
COINCIDI R
I NDI RECTO
HI PERVI NCULO
ELEGI R

FUNCI ONES DE I NFORMACI ON

ESERROR
FUNCI ONES DE TEXTO
CONCATENAR

FUNCI ONES MATEMATI CAS
SUMAPRODUCTO

FUNCI ONES DE FECHA Y HORA

HOY
FUNCI ON SUMA
La funcin suma es una de las mas usadas, prueba de esto es que Excel tiene un icono especial para efectuar
sumas rpidas, con esto quiero decir que no hace falta poner =SUMA() para efectuar la suma de un cierto
rango, lo que por cierto ahorra tiempo y evita errores, este icono se llama autosuma y para usarlo basta con
seleccionar el rango que queremos sumar hacer clic en y el resultado aparece en la celda inmediatamente
inferior al rango, aunque si queremos el resultado en otro lado basta con seleccionar la celda, luego el rango
que queremos sumar, Enter y listo( Excel 2003 y 2007)

fijemonos en la barra inferior de Excel y veremos siempre la suma ,el promedio y cuantas celdas se
seleccionaron para efectuar la suma(Excel 2007).

Si tenemos varias columnas, seleccionamos esas columnasdejando espacio para poner los totales

y luego aplicamos autosuma

Si no seleccionamos nada Excel interpreta que lo que queremos sumar es la secuencia de nmeros puesta
verticalmente u horizontalmente( tiene que estar activa una cela en la columna o fila respectivamente), en estos
casos inserta automticamente la funcin suma con los rangos que interpreta querenos sumar, para obtener la
suma solo nos falta apretar ENTER, para aclarar las cosas veamos los siguientes grficos.

apretamos ENTER y obtenemos la suma

y si la secuencia es horizontal
apretamos ENTER y obtenemos la suma

Tambin podemos utilizar la autosuma para obtener subtotales por ejemplo si tenemos la siguiente tabla

seleccionando los rangos de cada subtotal apretando la tecla control

y obtenemos los subtotales apretando e icono de autosuma

Si hubiramos una gran cantidad de subtotales, hacerlo as sera muy engorroso entonces lo que hacemos es
seleccionar el rango adecuado y usar "ir a" apretando F5( O) con lo que aparece


luego oprimimos Especial y vamos al siguiente pantalla en la que tildamos solo constantes y nmeros

esto hace que se seleccionen solamente los nmeros de los subtotales


luego apretamos en autosuma y obtenemos los subtotales


En Excel 2007 aparece en la solapa I nicio y en Excel 2003 en la barra iconos.
Pero la funcin suma es mucho mas que una suma rpida, esta entrega la suma de los valores que estan en las
celdas a que hacen referencia los argumentos y estos pueden ser: un valor numrico, la referencia o el nombre
de una celda, la referencia o el nombre de un rango, una frmula matemtica o una funcin, en este ltimo
caso estariamos ante un Anidamiento de funcines , por otro lado los parmetros pueden ser todos lo que nos
hagan falta, o sea
=SUMA(parametro-1, parametro-2,parametro-3,.............,parametro-n..)
Veamos el siguiente ejemplo

donde se ve que la expresin =SUMA(A1:C4;E1;230;E4*F4) ubicada en la celda A7 devuelve la suma de las
celdas
1- A1,B1,C1,A2,B2,C2,A3,B3,C3.A4,B4,C4
2- La celda E1
3- El nmero 230
4- El producto de las celdas E4 y F4
Por ltimo veanos un ejemplo mas prctico
Se tiene una tabla con las ganancias semestrales por cereales

Se quieren los totales anuales por granos, los totales por semestre y el total final descontando los impuestos de
un 36%


Los totales se hacen con autosuma y el total final con =SUMA(d4;-E4). Los impuestos se calcularon con una
frmula (=D4*$A$11) pero esto es otro tema
FORMULAS
I NTRODUCCI ON:
Una FORMULA es una expresin que sirve para realizar clculos produciendo un valor que se asigna a la
celda en la que se introduce dicha expresin. Las frmulas estan formadas por operadores( smbolos
matemticos ) y operandos, que pueden ser nmeros, referencias a celdas y funcines, estas funcines deben
entregar un valor numrico o lgico, esto ltimo es debido a que para Excel VERDADERO es equivalente al
numero uno y FALSO al cero.
Para evitar las confusiones que pueden surgir en el orden en que se realizan las operacines, existe una
jerarqua que determina que operacines se realizan primero y cuales despues, tal jerarqua se denomina
GERARQUI A DE PRECEDENCI A DE OPERADORES y esta en la siguiente tabla
TABLA DE PRECEDENCI AS

por ejemplo: -5+7*8 da como resultado 51, pues se realiza primero el producto(56) y luego se resta el 5. Este
orden se puede alterar colocando parntesis, ya que estos tienen el orden de precedencia mas alto, veamos como
se puede transformar una expresin segn donde se coloque el parntesis, veamos

en la primera frmula la prioridad es del producto que tiene un orden de precedencia mayor y el resultado es
61.Esto se altera en la segunda frmula poniendo parntesis, se efecta primero la suma y luego el producto y
el resultado es 96

FORMULAS
I NTRODUCCI ON:
Una FORMULA es una expresin que sirve para realizar clculos produciendo un valor que se asigna a la
celda en la que se introduce dicha expresin. Las frmulas estan formadas por operadores( smbolos
matemticos ) y operandos, que pueden ser nmeros, referencias a celdas y funcines, estas funcines deben
entregar un valor numrico o lgico, esto ltimo es debido a que para Excel VERDADERO es equivalente al
numero uno y FALSO al cero.
Para evitar las confusiones que pueden surgir en el orden en que se realizan las operacines, existe una
jerarqua que determina que operacines se realizan primero y cuales despues, tal jerarqua se denomina
GERARQUI A DE PRECEDENCI A DE OPERADORES y esta en la siguiente tabla
TABLA DE PRECEDENCI AS

por ejemplo: -5+7*8 da como resultado 51, pues se realiza primero el producto(56) y luego se resta el 5. Este
orden se puede alterar colocando parntesis, ya que estos tienen el orden de precedencia mas alto, veamos como
se puede transformar una expresin segn donde se coloque el parntesis, veamos

en la primera frmula la prioridad es del producto que tiene un orden de precedencia mayor y el resultado es
61.Esto se altera en la segunda frmula poniendo parntesis, se efecta primero la suma y luego el producto y
el resultado es 96
FUNCI ON MAX()
La funcin MAX() da el valor mximo de un rango o rangos y/o de referecias a celdas, como se ve en la tabla
siguiente


En el apartado Anudamiento de funciones hay un ejemplo de Y() anidada con MI N() y MAX().
ANI DAMI ENTO DE FUNCI ONES

I NTRODUCCI ON I R A TUTORI ALES
El anidamiento de funcines junto con la programacin VBA es lo que mas potencia da al programa EXCEL,
aqu todo depende de a donde nos pueda llevar nuestra habilidad e imaginacin y es donde se convierte en un
programa muy verstil pudiendo abarcar diversas disciplinas como son la I ngeniera, Estadstica, Matemtica,
Finanzas, Contabilidad por decir algunas que se me ocurren.
El anidamiento de funcines no es otra cosa que ubicar una funcin en el argumento de otra de forma
adecuada, dicho as parece muy simple pero veremos que la cosa puede complicarse mucho dado que la
anidacin pude hacerse en muchos niveles e involucrar a muchas funcines dando expresiones muy largas y
difciles de manejar, esto dista mucho de querer desalentar, mas bien insta a la curiosidad y a la prctica.
Empezaremos por lo mas simple para ir a lo mas complejo en forma progresiva pero antes voy a aclarar esto de
los niveles y el lmite que hay y la forma adecuada de hacerlo, para esto ,como siempre nada mejor que un
ejemplo
Se sabe que el promedio de las temperaturas del ao en curso de la provincia de Misines es de 27 y se tiene
una tabla con los promedios de las temperaturas de los meses del ao anterior, se quiere saber si es verdadero
que los 27 entran en el rango de los promedios de los meses del ao anterior

FUNCI ON MI N()
La funcin MI N() da el valor mnimo de un rango o rangos y/o de referecias a celdas, como se cave en la tabla
siguiente

En el apartado Anudamiento de funciones hay un ejemplo de Y() anidada con MI N() y MAX().
FUNCI ON CONTAR
Para contar valores numricos Y fechas en un rango o lista de argumentos, se utiliza la funcin CONTAR,
veamos la siguiente tabla

como se ve la funcin est en la celda C9 de valor 8 que es el resultado de contar los nmeros y fechas del rango
C1:D5 y de las referencias C7 Y D7 , se puede apreciar que se ignoran en la cuenta los blancos , los valores
lgicos , lo errores y las cadenas de caracteres.
Para contar celdas en blanco disponemos de funcin CONTAR .BLANCO.
Para contar celdas que no estn vacas CONTARA
FUNCI ON CONTAR.BLANCO
Cuenta los espacios en blanco que hay en un rango

como se ve la funcin CONTAR.BLANCO que est en la celda C9 cuenta las celdas en blanco que estn en el
rango C1:D7 que son 3.
FUNCI ON CONTARA
Cuenta todas las celdas que no estn vacas de un rango, veamos este ejemplo

en este caso el rango C1:D7 tiene 12 celdas pero como CONTARA no cuenta la vaca, el resultado de la
funcin, que est en la celda C9 es 11.
FUNCI ONES QUE SUMAN y CUENTAN( algunas de acuerdo a una condicin)
FUNCI ON SUMA
La funcin suma es una de las mas usadas, prueba de esto es que Excel tiene un icono especial para efectuar
sumas rpidas, con esto quiero decir que no hace falta poner =SUMA() para efectuar la suma de un cierto
rango, lo que por cierto ahorra tiempo y evita errores, este icono se llama autosuma y para usarlo basta con
seleccionar el rango que queremos sumar hacer clic en y el resultado aparece en la celda inmediatamente
inferior al rango, aunque si queremos el resultado en otro lado basta con seleccionar la celda, luego el rango
que queremos sumar, Enter y listo( Excel 2003 y 2007)

fijemonos en la barra inferior de Excel y veremos siempre la suma ,el promedio y cuantas celdas se
seleccionaron para efectuar la suma(Excel 2007).

Si tenemos varias columnas, seleccionamos esas columnasdejando espacio para poner los totales

y luego aplicamos autosuma

Si no seleccionamos nada Excel interpreta que lo que queremos sumar es la secuencia de nmeros puesta
verticalmente u horizontalmente( tiene que estar activa una cela en la columna o fila respectivamente), en estos
casos inserta automticamente la funcin suma con los rangos que interpreta querenos sumar, para obtener la
suma solo nos falta apretar ENTER, para aclarar las cosas veamos los siguientes grficos.

apretamos ENTER y obtenemos la suma

y si la secuencia es horizontal
apretamos ENTER y obtenemos la suma

Tambin podemos utilizar la autosuma para obtener subtotales por ejemplo si tenemos la siguiente tabla

seleccionando los rangos de cada subtotal apretando la tecla control

y obtenemos los subtotales apretando e icono de autosuma

Si hubiramos una gran cantidad de subtotales, hacerlo as sera muy engorroso entonces lo que hacemos es
seleccionar el rango adecuado y usar "ir a" apretando F5( O) con lo que aparece


luego oprimimos Especial y vamos al siguiente pantalla en la que tildamos solo constantes y nmeros

esto hace que se seleccionen solamente los nmeros de los subtotales


luego apretamos en autosuma y obtenemos los subtotales


En Excel 2007 aparece en la solapa I nicio y en Excel 2003 en la barra iconos.
Pero la funcin suma es mucho mas que una suma rpida, esta entrega la suma de los valores que estan en las
celdas a que hacen referencia los argumentos y estos pueden ser: un valor numrico, la referencia o el nombre
de una celda, la referencia o el nombre de un rango, una frmula matemtica o una funcin, en este ltimo
caso estariamos ante un Anidamiento de funcines , por otro lado los parmetros pueden ser todos lo que nos
hagan falta, o sea
=SUMA(parametro-1, parametro-2,parametro-3,.............,parametro-n..)
Veamos el siguiente ejemplo

donde se ve que la expresin =SUMA(A1:C4;E1;230;E4*F4) ubicada en la celda A7 devuelve la suma de las
celdas
1- A1,B1,C1,A2,B2,C2,A3,B3,C3.A4,B4,C4
2- La celda E1
3- El nmero 230
4- El producto de las celdas E4 y F4
Por ltimo veanos un ejemplo mas prctico
Se tiene una tabla con las ganancias semestrales por cereales

Se quieren los totales anuales por granos, los totales por semestre y el total final descontando los impuestos de
un 36%


Los totales se hacen con autosuma y el total final con =SUMA(d4;-E4). Los impuestos se calcularon con una
frmula (=D4*$A$11) pero esto es otro tema
FUNCI ON CONTAR
Para contar valores numricos Y fechas en un rango o lista de argumentos, se utiliza la funcin CONTAR,
veamos la siguiente tabla

como se ve la funcin est en la celda C9 de valor 8 que es el resultado de contar los nmeros y fechas del rango
C1:D5 y de las referencias C7 Y D7 , se puede apreciar que se ignoran en la cuenta los blancos , los valores
lgicos , lo errores y las cadenas de caracteres.
Para contar celdas en blanco disponemos de funcin CONTAR .BLANCO.
Para contar celdas que no estn vacas CONTARA
FUNCI ON SUMAR.SI

I NTRODUCCI ON
La funcin SUMAR.SI permite sumar valores de un rango de acuerdo a un criterio o condicin.

La funcin SUMAR.SI tiene 3 parmetros:
El primero es la referencia o el rango que contiene los valore sobre los que se evaluar la condicin.
El segundo es el que contiene el criterio a aplicar con el objeto de determinar que se suma y que no
El tercero es opcional, esto quiere decir que si la condicin esta en el mismo rango donde se efecta la suma, no
hace falta el tercer parmetro, pero si el criterio esta en un rango y donde se hace la suma en otro (u otros
)rangos, entonces tiene que colocarse el tercer parametro.
Para aclarar las cosas que mejor que un ejemplo: Supongamos que una inmobiliaria tiene un listado con el
valor de las propiedades que se vendieron en Enero y quiere saber la suma de aquellas que superaron los
$160.000, para obtener la respuesta se emplea la funcin SUMAR.SI como se muestra en el grfico

En este caso con dos parmetros alcanza puesto que el criterio esta en la rango E2:E5, que el mismo rango
donde se efecta la suma con la condicin dada y no hace falta poner =SUMA(E2:E5;">160000";E2:E5)..Si en
cambio tenemos esta otra tabla

aqu si hace falta el tercer parmetro ya que el rango donde se efecta el criterio (D2:D5) no es el mismo que el
rango donde se efecta la suma (E2:E5).
Dejo como ejercicio averiguar las comisines que se cobran al vendedor por propiedades cuyo costo es inferior
a $ 400.000.
FUNCI ON SUMAR.SI .CONJ UNTO

Excel 2007 incorpora una funcin nueva, SUMAR.SI .CONJ UNTO, que es parecida a SUMAR.SI , que suma
celdas teniendo en cuenta un solo criterio, en tanto que SUMAR.SI .CONJ UNTO, suma celdas teniendo en
cuenta mltiples criterios.
SI NTAXI S:
SUMAR.SI .CONJ UNTO(rango de sumas; criterio_rango1; criterio1; criterio rango2; criterio2..)
donde:
rango de sumas: es un argumento obligatorio, en el que se suman una o mas celdas.
criterio_rango1: es un argumento requerido que es el primer rango en el que se evala el criterio asociado (
criterio1).
criterio1: argumento obligatorio que es un criterio asociado a criterio_rango1 en la forma de nmero,
expresin, referencia de celda o texto, que define en cual celda, en el rango de sumas, se adicionar debido al
criterio_rango1.
Los otros argumentos son opcionales.
Veremos un ejemplo donde se consideran 3 criterios:
Un negocio de artculos de computacin y electrodomsticos cuenta con la siguiente tabla

y se quiere saber cual fue la suma de las ventas de J uan Lpez, en el sector Electrodomsticos con montos que
superaron los 200 $.
Como se ve los criterios son:

"J uan Lpez"
"Electrodomsticos"
">200

entonces para responder a lo que el negocio quiere saber , se introduce la tabla en una Hoja de Excel y se usa la
frmula ( en la tabla se resaltan las filas que cumplen los 3 criterios)
que insertamos en la celda D24,
dando el resultado 4200$, como se puede ver


FUNCI ON CONTAR.SI
Esta funcin es una combinacin de las funcines CONTAR y SI , tiene dos argumentos, el primero es el
rango cuyas celdas se desean contar y el segundo es el criterio que determina que celda sera contada o no

con esta misma tabla podramos preguntar cuntos hombres hay

FUNCI ON CONTAR
Para contar valores numricos Y fechas en un rango o lista de argumentos, se utiliza la funcin CONTAR,
veamos la siguiente tabla

como se ve la funcin est en la celda C9 de valor 8 que es el resultado de contar los nmeros y fechas del rango
C1:D5 y de las referencias C7 Y D7 , se puede apreciar que se ignoran en la cuenta los blancos , los valores
lgicos , lo errores y las cadenas de caracteres.
Para contar celdas en blanco disponemos de funcin CONTAR .BLANCO.
Para contar celdas que no estn vacas CONTARA
FUNCI ON SI
La funcin SI sirve para tomar decisiones de acuerdo a una condicin, por eso podramos decir que es una
funcin condicional,siendo la condicin el resultado de la evaluacin de una proposicin lgica (
VERDADERO o FALSO), es decir; si el resultado es VERDADERO se hace una cosa, y si es FALSO se hace
otra..
Esta funcin tiene 3 argumentos

Ejemplo:
De acuerdo a un informe volcado a una tabla una empresa quiere saber en que meses tuvo prdidas o
ganancias

para lo cual estos datos se ponen en una Hoja de Excel y se usa la funcin SI de la siguiente manera


arrastrando la funcin hasta completar, el resultado final es

a esta empresa no le fue demasiado bien-
FUNCI ON CONTAR.SI .CONJ UNTO

Excel 2007 incorpora una funcin nueva, CONTAR.SI .CONJ UNTO, que es parecida a CONTAR.SI , que
cuenta celdas teniendo en cuenta un solo criterio, en tanto que CONTAR.SI .CONJ UNTO, cuenta celdas
teniendo en cuenta mltiples criterios.
SI NTAXI S:
CONTAR.SI.CONJUNTO(rango1; criterio1; rango2; criterio2)
pudiendo especificarse mas de 127 rangos/criterios.
donde :
rango1: es el rango donde se cuentan las celdas, debido al criterio1, criterio2, etc.
Los primeros dos argumentos son obligatorios.
Veremos un ejemplo donde se consideran 3 criterios:
Un negocio de artculos de computacin y electrodomsticos cuenta con la siguiente tabla

y quiere saber cuantas veces el vendedor J uan Lopez aparece en la misma, en el sector Electrodomsticos con
ventas que superan los 200 $.
Como se ve los criterios son:

"J uan Lpez"
"Electrodomsticos"
">200

entonces para responder a lo que el negocio quiere saber , se introduce la tabla en una Hoja de Excel y se usa la
frmula ( en la tabla se resaltan las filas que cumplen los 3 criterios)

que insertamos en la celda D23, dando el resultado 3, como se puede ver



FUNCI ON CONTAR.SI
Esta funcin es una combinacin de las funcines CONTAR y SI , tiene dos argumentos, el primero es el
rango cuyas celdas se desean contar y el segundo es el criterio que determina que celda sera contada o no

con esta misma tabla podramos preguntar cuntos hombres hay

FUNCI ON CONTAR.BLANCO
Cuenta los espacios en blanco que hay en un rango

como se ve la funcin CONTAR.BLANCO que est en la celda C9 cuenta las celdas en blanco que estn en el
rango C1:D7 que son 3.
FUNCI ON CONTARA
Cuenta todas las celdas que no estn vacas de un rango, veamos este ejemplo

en este caso el rango C1:D7 tiene 12 celdas pero como CONTARA no cuenta la vaca, el resultado de la
funcin, que est en la celda C9 es 11.
FUNCIONES CONDICIONALES
FUNCI ON SI
La funcin SI sirve para tomar decisiones de acuerdo a una condicin, por eso podramos decir que es una
funcin condicional,siendo la condicin el resultado de la evaluacin de una proposicin lgica (
VERDADERO o FALSO), es decir; si el resultado es VERDADERO se hace una cosa, y si es FALSO se hace
otra..
Esta funcin tiene 3 argumentos

Ejemplo:
De acuerdo a un informe volcado a una tabla una empresa quiere saber en que meses tuvo prdidas o
ganancias

para lo cual estos datos se ponen en una Hoja de Excel y se usa la funcin SI de la siguiente manera


arrastrando la funcin hasta completar, el resultado final es

a esta empresa no le fue demasiado bien-
FUNCI ON CONTAR.SI
Esta funcin es una combinacin de las funcines CONTAR y SI , tiene dos argumentos, el primero es el
rango cuyas celdas se desean contar y el segundo es el criterio que determina que celda sera contada o no

con esta misma tabla podramos preguntar cuntos hombres hay

FUNCI ON CONTAR.SI .CONJ UNTO

Excel 2007 incorpora una funcin nueva, CONTAR.SI .CONJ UNTO, que es parecida a CONTAR.SI , que
cuenta celdas teniendo en cuenta un solo criterio, en tanto que CONTAR.SI .CONJ UNTO, cuenta celdas
teniendo en cuenta mltiples criterios.
SI NTAXI S:
CONTAR.SI.CONJUNTO(rango1; criterio1; rango2; criterio2)
pudiendo especificarse mas de 127 rangos/criterios.
donde :
rango1: es el rango donde se cuentan las celdas, debido al criterio1, criterio2, etc.
Los primeros dos argumentos son obligatorios.
Veremos un ejemplo donde se consideran 3 criterios:
Un negocio de artculos de computacin y electrodomsticos cuenta con la siguiente tabla

y quiere saber cuantas veces el vendedor J uan Lopez aparece en la misma, en el sector Electrodomsticos con
ventas que superan los 200 $.
Como se ve los criterios son:

"J uan Lpez"
"Electrodomsticos"
">200

entonces para responder a lo que el negocio quiere saber , se introduce la tabla en una Hoja de Excel y se usa la
frmula ( en la tabla se resaltan las filas que cumplen los 3 criterios)

que insertamos en la celda D23, dando el resultado 3, como se puede ver



FUNCI ON SUMAR.SI

I NTRODUCCI ON
La funcin SUMAR.SI permite sumar valores de un rango de acuerdo a un criterio o condicin.

La funcin SUMAR.SI tiene 3 parmetros:
El primero es la referencia o el rango que contiene los valore sobre los que se evaluar la condicin.
El segundo es el que contiene el criterio a aplicar con el objeto de determinar que se suma y que no
El tercero es opcional, esto quiere decir que si la condicin esta en el mismo rango donde se efecta la suma, no
hace falta el tercer parmetro, pero si el criterio esta en un rango y donde se hace la suma en otro (u otros
)rangos, entonces tiene que colocarse el tercer parametro.
Para aclarar las cosas que mejor que un ejemplo: Supongamos que una inmobiliaria tiene un listado con el
valor de las propiedades que se vendieron en Enero y quiere saber la suma de aquellas que superaron los
$160.000, para obtener la respuesta se emplea la funcin SUMAR.SI como se muestra en el grfico

En este caso con dos parmetros alcanza puesto que el criterio esta en la rango E2:E5, que el mismo rango
donde se efecta la suma con la condicin dada y no hace falta poner =SUMA(E2:E5;">160000";E2:E5)..Si en
cambio tenemos esta otra tabla

aqu si hace falta el tercer parmetro ya que el rango donde se efecta el criterio (D2:D5) no es el mismo que el
rango donde se efecta la suma (E2:E5).
Dejo como ejercicio averiguar las comisines que se cobran al vendedor por propiedades cuyo costo es inferior
a $ 400.000.
FUNCI ON SUMAR.SI .CONJ UNTO

Excel 2007 incorpora una funcin nueva, SUMAR.SI .CONJ UNTO, que es parecida a SUMAR.SI , que suma
celdas teniendo en cuenta un solo criterio, en tanto que SUMAR.SI .CONJ UNTO, suma celdas teniendo en
cuenta mltiples criterios.
SI NTAXI S:
SUMAR.SI .CONJ UNTO(rango de sumas; criterio_rango1; criterio1; criterio rango2; criterio2..)
donde:
rango de sumas: es un argumento obligatorio, en el que se suman una o mas celdas.
criterio_rango1: es un argumento requerido que es el primer rango en el que se evala el criterio asociado (
criterio1).
criterio1: argumento obligatorio que es un criterio asociado a criterio_rango1 en la forma de nmero,
expresin, referencia de celda o texto, que define en cual celda, en el rango de sumas, se adicionar debido al
criterio_rango1.
Los otros argumentos son opcionales.
Veremos un ejemplo donde se consideran 3 criterios:
Un negocio de artculos de computacin y electrodomsticos cuenta con la siguiente tabla

y se quiere saber cual fue la suma de las ventas de J uan Lpez, en el sector Electrodomsticos con montos que
superaron los 200 $.
Como se ve los criterios son:

"J uan Lpez"
"Electrodomsticos"
">200

entonces para responder a lo que el negocio quiere saber , se introduce la tabla en una Hoja de Excel y se usa la
frmula ( en la tabla se resaltan las filas que cumplen los 3 criterios)
que insertamos en la celda D24,
dando el resultado 4200$, como se puede ver


FUNCIONES LOGICAS

Una proposicin lgica es una afirmacin que puede se VERDADERA o FALSA pero no ambas a la vez y justamente los
argumentos de las funciones lgicas son proposiciones lgicas. Tambin las funciones lgicas devuelven resultados
VERDADERO o FALSO. Esta es una definicin que se cumple en forma estricta solamente para las siguientes funciones:
FUNCI ON Y()
La funcin Y() ,como O() es una funcin lgica ya que sus argumentos son proposiciones lgicas, la funcin
evala los argumentos y devuelve un resultado VERDADERO o FALSO ( aclaro que esta funcin puede tener
un solo parametro sin dar error, aunque no tiene mucho sentido prctico)
Su sintaxis es:
Y(parmetro1;parmetro2;parmetro3;.....)
La funcin devuelve VERDADERO si la evaluacin de todos los parmetros es VERDADERA y dara FALSO
si la evaluacin al menos uno de sus parmetros es FALSA o si todos son FALSOS.
Veamos un ejemplo

vemos que si cambiamos una desigualdad, o las dos el resultado es FALSO

FUNCI ON O()
Como Y() la funcin O() es una funcin lgica, porque sus argumentos son proposiciones lgicas o pruebas
lgicas la funcin evala los argumentos y devuelve un resultado VERDADERO o FALSO., su sintaxis es
O(parmetro1;parmetro2;parmetro3;.....)
La funcin devuelve FALSO si la evaluacin de todos los parmetros es FALSO y dara VERDADERO si la
evaluacin almenos uno de sus parmetros es VERDADERO o si todos son VERDADEROS.
Veamos un ejemplo

FUNCI ON O()
Como Y() la funcin O() es una funcin lgica, porque sus argumentos son proposiciones lgicas o pruebas
lgicas la funcin evala los argumentos y devuelve un resultado VERDADERO o FALSO., su sintaxis es
O(parmetro1;parmetro2;parmetro3;.....)
La funcin devuelve FALSO si la evaluacin de todos los parmetros es FALSO y dara VERDADERO si la
evaluacin almenos uno de sus parmetros es VERDADERO o si todos son VERDADEROS.
Veamos un ejemplo

FUNCI ON NO()
La funcin NO() invierte el valor lgico de los argumentos de las funcines Y() y O(), por consiguiente se utiliza
en combinacin con ellas, su sintaxis es:
NO(Y(argumento1; argumento2; argumento3;..........))
como puede verse en siguiente ejemplo

como se ve invierte el valor de verdad de los argumentos de Y()
FUNCIONES DE BSQUEDA Y REFERENCIA
FUNCI ON BUSCARV
La funcin BUSCARV busca datos que estn en primera columna de una tabla(a esta tabla se la denomina
matriz de bsqueda o de datos), si el valor es encontrado devuelve el dato asociado (valor que esta en la misma
fila que el dato a buscar) de una columna especificada, la sintaxis es;

los primeros tres argumentos son obligatorios y el cuarto es opcional
Veamos el siguiente ejemplo:
Un profesor tiene una tabla con las notas de un alumno puestas en nmeros y quiere completarla poniendo las
notas en palabras

para hacer esto cuenta con otra tabla de equivalencias


vuelca estos datos en un libro de Excel poniendo en la Hoja1 la tabla a completar y en la Hoja2 la tabla con las
equivalencias pero sin los rtulos para tener directamente la matriz de datos

despues coloca la siguiente frmula en la celda E3 de la Hoja 1:

en la que D3 es una referencia donde est el contenido , que en este caso es el valoor 2, aunque hay casos en
que por la naturaleza del problema, por ejemplo una consulta, la referencia puede al principio estar vacia,
dando el error #N/A (no aplicable), en el tutorial ELI MI NAR MESAJ E DE ERROR EN BV, daremos una
solucin a este antiesttico mensaje.


A continuacin se arrastra la funcin hasta completar la tabla

en este caso la matriz de bsqueda est en otra hoja, pero puede estar en cualquier lado, incluso dentro de otra
tabla.

ELI MI NAR MENSAJ ES DE ERROR EN BUSCARV

En la funcin BUSCARV muchas veces ocurre que el primer parmetro, que es la referencia a una celda, esta
vaco en forma momentnea, por ejemplo cuando se hace una consulta a una base de datos, dando el error
#N/A (no aplicable), tambin este error puede aparecer cuando un valor buscado no est en la matriz de datos.
Para eliminar este antiesttico mensaje recurrimos a un anidamiento de las funciones SI , ESERROR Y
BUSCARV.
Por ejemplo: supongamos que una lnea area dispone de un momnitor, donde los pasajeros pueden consultar
el descuento que tiene determinado destino, teniendo el formulario de consulta el siguiente aspecto

Para resolver el problema con Excel introducimos la frmula de bsqueda en la celda que esta debajo de
DESCUENTO y elaboramos de una matriz de bsqueda en la Hoja2 (para que quede oculta a los usuarios) con
los destinos y sus descuentos respectivos.

Damos el nombre "descuento" a la matriz de bsqueda e introducimos la funcin BUACARV con la con la
siguiente sintaxis:
BUSCARV(C2;descuento;2;FALSO)
como se muestra en la figura.


Se ve que BUSCARV da error aunque se introdujo la funcin correctamente, esto se debe a que la referencia C2
esta vaca porque aun no se introdujo ningn destino. Otro error se presentara si se introdujera un destino que
no esta en "descuento"

ambos mensajes de error desaparecen si se reemplaza a BUSCARV por la frmula

donde se ha puesto una leyenda de advertencia si el destino no se encuentra

y se ve que funciona para la celda C3 vaca

o para un destino que s est en la tabla "descuento".

Se preguntarn como ESERROR se da cuenta de cual de los 2 errores se est cometiendo; la respuesta es que
no tiene manera de darse cuenta, evitamos que tenga que decidir con C2="" , que es la proposicin lgica que
junto con SI detectan si hay un blanco y si lo hay colocan otro blanco enD3 , si este error no est, entra a jugar
el tercer argumento de SI , donde ya hay solo 2 posibilidades; que este el segundo error o no, si est es detectado
por SI , ESERROR Y BUSCARV, descartado el segundo error se hace la bsqueda normal del principio.
Las funciones anidadas son muy poderosas, aunque al principio suelen ser un verdadero dolor de cabeza, es por
eso que hay algunos mtodos para trabajar con ellas, lo que nos dar pie para un tutorial mas adelante.
FUNCI ON DESREF
La funcin DESREF es tan til como difcil de entender al principio.
DESREF devuelve una referencia a partir de otra que podemos llamar referencia de partida, vamos a tratar de
aclarar esto. Recordemos que una referencia es el cdigo de una celda( A1;F3;H124, etc) o el cdigo de un
rango de celdas(A3:G6;H5:K7;etc) y aqu pasan dos cosas distintas segn se trate de una celda o un rango de
celdas; veamos:

Aqu se ve que si se trata de la referencia a una celda Excel devuelve el contenido de esa celda( la frmula est
puesta en el recuadro negro) y en este caso DESREF funciona as

La referencia que devuelve( y por tanto su contenido) es el que resulta de ubicarse en la celda B2 y desplazace x
filas y luego x columnas. Concretamente una posibilidad podra ser

y esta expresin puesta en una hoja de Excel ( en la celda de partida B2) resulta en lo siguiente

y obtengo la referencia a una celda, que en este caso es la D5 y por lo tanto su contenido.
Hablando en forma simple: parto de B3 me desplazo 3 celdas hacia abajo, luego 2 celdas hacia la derecha
devuelve la referencia a la celda D5 y muestra su contenido.
Una aclaracin: si me desplazo hacia arriba o a la izquierda tengo que anteponer el signo menos y cuidar
siempre de no salirme de los lmites de la hoja porque sino da error, como podemos ver

la referencia est fuera de la hoja.
Cuando nuestra referencia de partida es un rango, la sintaxis de DESREF() cambia un poco

si dejamos los argumentos para celda en cero, partimos de C2:E7 y ponemos 9 para alto y 4 para ancho


colocando la funcin con sus argumentos en una hoja de Excel

vemos que la referencia de partida, que est resaltada en rojo, se transforma en la referencia C2:F10, resaltada
en verde, es como si la referencia de partida se dilatara de C2:E7 a C2:F10, que finalmente es lo que devuelve
DESREF, pero como se ve nos da un error y es lgico que as sea pues en este caso Excel no sabe que hacer
qu nmero va a devolver si tiene 3 opcines?, lo mas coherente es que haga algo con ellos, como sumarlos
por ejemplo, pero DESREF por si sola no puede y tiene que anidarse con otras funcines como SUMA ( que
sumaria 42+100+450=592), pero tambin puede anidarse con PROMEDIO, MAX, MI N, etc y as se elimina el
error, como vemos en la siguiente tabla

Se preguntaran; tienen alguna funcin los argumentos de fila y columna?, la respueste es si, ellos actan como
si el rango de partida fuese una celda( despues de todo una celda es in rango de 1x1) y lo mueven de acuerdo
alos valores que adopta: hacia abajo, arriba derecha e izquierda con las mismas reglas de las celdas, luego los
parmetros de ancho y alto se encargan de teminar el trabajo contrayendolos, dilatndolos o dejndolos como
estan. Veamos un ejemplo en que participan todos los argumentos

Se ve que la referencia al rango final es F8:H12, partiendo del rango inicial C2:D5, y su suma es 140( tambin
est el mximo y mnimo.)
En estos momentos no se alcanza a ver el potencial que tiene la funcin DESREF, una muestra se puede ver en
el tutorial RANGOS DI NAMI COS
FUNCI ON I NDI CE

La funcin I NDI CE tiene la particularidad de tener dos sintaxis:

SI NTAXI S MATRI CIAL : devuelve un valor o matriz de valores
SI NTAXI S REFERNCIAL: devuelve un rango o referencia.
SI NTAXI S MATRI CIAL : En matemtica una matriz es un arreglo de nmeros, una tabla de valores o dicho
de otra manera una forma de ordenar nmeros identificndolos por su ubicacin en filas y columnas o mas
precisamente por la interseccin de una fila con una columna. En Excel, un rango, es lo que para la
matemtica una matriz, vayamos a una Hoja de Excel


aqu podemos identificar el rango B1:E5 ( recuadrado en rojo) con una matriz de 4 filas por 4 columnas donde
estas se numeran, desde arriba y a la izquierda empezando por 1, en forma creciente, con lo que por ejemplo el
numero 567 correspondera a la interseccin de la fila 3 con la columna 2, el numero 23 con la interseccin de
la fila 1 con la columna 4 etc. Esto es lo que hace la funcin I NDI CE, devolver el numero que esta en la celda
que es la interseccin de una fila con una columna, aclaro que en este caso en la celda puede haber un numero,
una cadena de caracteres, un mensaje de error, una formula etc. Dicho esto se entender mejor la sintaxis de la
funcin I NDI CE


en este caso I NDI CE nos devuelve el valor 567

CASOS PARTI CULARES

Si el primer argumento es una matriz columna ( 1columna por n filas) se omite el argumento columna.
Si el primer argumento es una matriz fila ( 1 fila por n columnase) se omite el argumento fila
Si el primer argumento es una matriz de n columnas por m filas y se pone cero como segundo
argumento I NDI CE puede devolver una columna o una fila de la matriz n X m,para hacer esto INDI CE
se introduce como una FORMULA MATRI CIAL

SI NTAXI S REFERENCI AL:
Devuelve la referencia de la celda ubicada en la interseccin de una fila y de una columna determinadas de un
rango. Si hay mas de un rango se podr elegir, mediante un tercer argumento llamado rea, en cual de ellos se
buscar la interseccin de filas y columnas, el primer rango se relaciona con el rea 1, el segundo rango con el
rea 2 y as sucesivamente.
Para el siguiente ejemplo


la sintaxis es


que da como resultado "autos"
FUNCI ON COI NCI DI R

La funcin COI NCI DI R es una funcin de bsqueda como BUSCARV pero a diferencia de esta, COI NCI DI R
no devuelve un valor sino una posicin dentro de un rango, este rango puede ser una columna o una fila y
contener nmeros, palabras o una combinacin de ambos . La sintaxis tiene 3 parmetros; el 1 es el valor
referencia cuya posicin se quiere encontrar, el 2 el rango y el tercero pude ser -1, 0 y 1, que tomen esos
valores va a depender de:
Si la lista est desordenada el tercer parmetro es 0, dando error si el numero no est en dicha lista.
Si la lista est ordenada en forma ascendente el valor es 1 o no se pone ninguno, si el valor no est pero
se encuentra entre otros dos , o sea a<valor<b, se elige la posicin del valor a.
Si la lista est ordenada en forma descendente el valor es -1 y si el valor no est pero se encuentra entre
otros dos valores o sea a>valor>b se da la posicin del valor b)

Vamos a dar ejemplos para aclarar los conceptos:
Caso 1: lista desordenada


La lista est desordenada y el valor 325 se encuentra en la lista siendo su posicin 2
Caso2: Lista ordenada en forma ascendente

como se ve el valor no est en la lista pero 50,6<81<84 y en este caso se da la posicin de 50,6 que es 3
Caso 3: Lista ordenada en forma descendente


el valor no est pero se encuentra entre 50,6 y 80 por lo tanto la funcin da la posicin de 80 que es 2 .
Los casos 2 y 3 tienen el problema de que no podemos saber de antemano si la funcin nos devolver la
posicin del valor mas cercano al buscado, en los ejemplos mostrado tuvimos suerte, pero veamos este otro caso
con una lista ascendente


COI NCI DI R nos devolvi el valor 4 correspondiente a 25,3 que no es la posicin del valor mas cercano al
buscado, este valor tendra que haber sido 5 que es la posicin de 100 que es el valor que mas se aproxima a 99.
Este problema se soluciona con FORMULAS MATRI CI ALES
COMPROBACI ON: en los ejemplos anteriores se podra haber puesto una referencia en lugar del valoren s, en
el primer parmetro; se aconseja hacer esto para averiguar lo que devuelve COI NCI DI R cuando se introducen
valores que no estn en la lista( para los 3 casos).

FUNCI ON I NDI RECTO

La funcin I NDI RECTO devuelve la referencia de una celda que se escribe en otra mediante una cadena de
texto, o dicho de otra manera nos permite utilizar un texto como referencia, es decir, convierte el texto en una
parte de la funcin de Excel. Su sintaxis es
=I NDI RECTO(ref;a1)
donde ref es una celda que a su vez contiene una direccin (de otra celda) y a1 indica de qu tipo de referencia
se trata. Hay 2 formas de escribir una referencia: con letras y nmeros( tipo A1) y solo con nmeros ( tipo L1
C1), de esta manera la celda B2 (en el tipo A1)seria equinalente a la 2,2 en el tipo L1C1. Si se omite el segundo
parametro, se interpreta que se trata de referencia de tipo A1.
Veamos ejemplos:
forma indirecta de sumar

Otro ejemplo que se anida con la funcin CONCATENAR

Se pude ver que si la celda C1 cambia su valor a 2 o 3 el resultado en D1 tambin cambia pues,en realidad se
estara multiplicando D3 (400) por F2(250) o F3(300), dando los resultados 100000 y 20000 respectivamente


Esto ha sido una explicacin del funcionamiento de I NDI RECTO, pero su verdadero potencial se ver con
algunos ejemplos prcticos

FUNCI ON HI PERVI NCULO


La funcin HI PERVI NCULO nos permite enlazar:

Una celda, con una ubicacin especifica de un libro..
Una celda, con un documento en nuestra computadora.
Una celda, de con un sitio o pagina web.
Su sintaxis general es:
=HI PERVI NCULO("Ubicacin del enlace"; "palabra o frase que identifica al enlace")
el primer argumento depende de cual de los tipos de enlaces mencionados queremos hacer, en tanto que el
segundo sera el que mejor se adapte a las circunstancias de acuerdo a nuestro criterio. Veamos ejemplos:
Estamos en la celda C1 de la Hoja1 y queremos enlazar con la celda D1 de la Hoja3, suponiendo que en D1esta
escrita la palabra "EMPLEADOS", el enlace se escribe como se nuestra

llevandonos a "EMPLEADOS" en la Hoja3.

Un mismo resultado se hubiera obtenido si en lugar de poner "Libro1" se hubiera puesto "#".


Si queremos ir a un documento en nuestra conputadora, en primer parmetro debemos poner la ruta a dicho
documento, supongamos que el documento es una fotografa, la expresin puede ser

que nos lleva a una imagen visualizada en algn programa para ver imgenes.

Finalmente si queremos un vnculo a una sitio web o a una pgina de este, lo que pondremos en el primer
parmetro sera su direccin completa. Por ejemplo:

que nos llevar a Google de argentina.
FUNCI ON ELEGI R
La funcin ELEGI R es muy fcil de comprender pero no por ello deja de tener una gran utilidad como veremos
Empezaremos por definir y explicar su sintaxis



I NDI CE es el parmetro encargado, dependiendo de su valor( 1 a 254), de seleccionar o elegir el argumento que
dar el resultado.
Daremos un ejemplo sencillo para aclarar;
Colocamos la funcin en la celda D3
=ELEGI R(3;"APALAZADO";"BUENO";"MUY BUENO"; "DISTI NGUI DO";"SOBRESALI ENTE")
I NDI CE ES 3 Y selecciona el parmetro 3 que en este caso es "MUY BUENO

Esto se pone mas interesante cuando el I NDI CE y/o los parmetros son el resultado de funciones o anidamiento
de funciones. Veamos otro ejemplo mas prctico .
Supongamos que un negocio de ropa masculina vende solamente ropa sport y de vestir, los empleados tienen la
posibilidad de averiguar los precios en la pantalla de una pc donde hay un hoja Excel adaptada para dicho
propsito, en la figura se puede ver la consulta que un empleado acaba de hacer

en otra hoja estn las listas de precios de los 2 tipos de artculos que se venden

para que esto funcione hay que colocar la funcin ELEGI R en la celda marcada en rojo, que en este caso es la
F7

como dije antes, el problema se puso mas interesante, ya que el NDI CE es un anidamiento de funciones y los
parmetros son funciones. Ahora nos resta explicar como funciona.
El I NDI CE debe ser un entero, en nuestro caso 1 o 2 y es un anidamiento de las funciones SI y DESREF, como
puede verse

que significa en palabras: si es verdad que en la celda que esta al la derecha de D7 ( que es donde se pone el
artculo) esta escrito "vestir", se devuelve un 1, pero si es falso la palabra que debe estar escrita a la derecha de
D7 es "sport" y no le queda mas remedio que ser verdadera (ya que hay dos posibilidades "vestir" o "sport") y
se devuelve un 2.
Finalmente si I NDI CE es 1 se elige el parmetro que busca en la lista de artculos de vestir

y si es 2 se elige el parmetro que busca en la lista de artculos sport

Este ejercicio se puede resolver de otra manera empleando el BOTON DE OPCI ON

FUNCIONES DE INFORMACION
FUNCI ON ESERROR

La funcin ESERROR tiene un solo parmetro que es la referencia a una celda, o sea
ESERROR(celda)
cuando en celda hay alguno de los errores: #N/A, #VALOR!, #REF!, #DI V/0!, #NUM!, #NOMBRE? o
#NULO!, que puden aparecer por diversas causas, ESERROR devuelve el valor lgico VERDADERO y en
caso contrario FALSO.


FUNCIONES DE TEXTO
FUNCI ON CONCATENAR


La funcin CONCATENAR permite unir dos o mas elementos de texto que estan contenidos en celdas
diferentes. Tambin permite unir textos puestos entre comillas directamente en los argumentos de la funcin.
Su sintaxis es:
=CONCATENAR(Texto1;Texto2;...)
Esta funcin puede tener como mximo 30 argumentos.
Ejemplos:
Si tenemos en la celda A1 el texto YAHOO y en la celda B5 ARGENTI NA, nos queda YAHOO ARGENTI NA en
la celda donde se introduce la frmula. Veamos

notar que el segundo argumento es un espacio (" ") para separar ambas palabras y que el formato color no se
tiene en cuenta.
Uniendo textos directamente usando comillas

Tambin se pueden concatenar textos, sin usar la funcin CONCATENAR y empleando en su lugar el smbolo
ampersand ( & ), como podemos ver:

FUNCIONES MATEMATICAS
SUMAPRODUCTO

Si en una Hoja de Excel tenemos las tablas A (con borde rojo) y B (con borde verde), las cuales tienen el
mismo nmero de filas y de columnas, podemos definir celdas que ocupan la misma posicin relativa respecto
de A y B, a estas celdas se las denomina "celdas correspondientes". Por ejemplo en la figura

las celdas C5 y G5 son correspondientes.
Ahora estamos en condiciones de definir la funcin SUMAPRODUCTO.
La funcin SUMA PRODUCTO multiplica el contenido de las celdas correspondientes de hasta 30 tablas y
devuelve la suma de esos productos.
La sintaxis de SUMAPRODUCTO es:
SUMAPRODUCTO(taba1; tabla2; tabla3;.......)



En la figura de arriba tenemos un ejemplo con 2 tablas. Notar que hubiramos llegado al mismo resultado con
la funcin SUMA usando como argumentos los productos de las celdas correspondientes



Si en el argumento de SUMAPRODUCTO hay una sola tabla, el resultado es la suma de los elementos de ella


FUNCI ON HOY

HOY es una funcin que nos da la fecha del da en curso en formato de fecha . Para usarla debemos introdcila
en la celda donde queremos que aparezcan los datos.

Luego apretamos ENTER o haciendo clic fuera de la celda se muestra la fecha actual

FORMULAS LOGI CAS
Las frmulas lgicas se diferencian de las frmulas, en que estas ltimas devuelven un resultado numrico, en
tanto que las primeras entregan un resultado lgico, es decir: verdadero o falso. Las mas simples sirven para
hacer la comparacin entre el contenido numrico de dos celdas utilizando los operadores lgicos que se
muestran en la siguiente tabla

estos operadores se llaman binarios ya que la operacin se realiza entre dos operandos, para Excel estos
operandos son el contenido numrico de dos celdas, por lo tanto podemos compararlas.
Supongamos que una empresa quiere saber si el balance semanal de un determinado mes tuvo ganancias o
prdidas, para lo que confeccion la siguiente tabla


donde se introdujo la frmula

en la celda D3 y luego se la arrastr hasta la fila 6

Cuando esta frmula se anida con la funcin SI , por ejemplo, deja de ser una frmula para transformarse en
una proposicin lgica y en este caso podramos poner en la celda D3 la funcin

y la tabla queda

que hace que la tabla tenga un aspecto mas claro.
Podemos hacernos una pregunta: quiero saber si 12.000 es menor que el numero que esta B3 y mayor que esta
en C3 es correcto poner la frmula
=B3<12.0000<C3
pongan esta frmula en D3 y vern que el resultado es 0, Excel no nos dice que esta mal( no da error) pero
tampoco da el resultado correcto pues este debera ser " VERDADERO". El problema est en que esta
expresin no es la comparacin entre dos celdas sino la comparacin de un nmero entre dos celdas, que es
diferente; no es una operacin binaria. Esto no quiere decir ( por suerte) que no podamos hacer nada mas con
las frmulas lgicas usando los operadores de la tabla, pero debemos complementarlas con las funciones Y(),
O(), NO(), por ejemplo para la expresin que pusimos mas arriba debemos usar la funcin Y() para obtener la
frmula

que nos da el resultado correcto "VERDADERO". De esta forma podemos escribir muchsimas frmulas
lgicas, que sern proposiciones lgicas si las anidamos con otras funciones.
FORMULAS
I NTRODUCCI ON:
Una FORMULA es una expresin que sirve para realizar clculos produciendo un valor que se asigna a la
celda en la que se introduce dicha expresin. Las frmulas estan formadas por operadores( smbolos
matemticos ) y operandos, que pueden ser nmeros, referencias a celdas y funcines, estas funcines deben
entregar un valor numrico o lgico, esto ltimo es debido a que para Excel VERDADERO es equivalente al
numero uno y FALSO al cero.
Para evitar las confusiones que pueden surgir en el orden en que se realizan las operacines, existe una
jerarqua que determina que operacines se realizan primero y cuales despues, tal jerarqua se denomina
GERARQUI A DE PRECEDENCI A DE OPERADORES y esta en la siguiente tabla
TABLA DE PRECEDENCI AS

por ejemplo: -5+7*8 da como resultado 51, pues se realiza primero el producto(56) y luego se resta el 5. Este
orden se puede alterar colocando parntesis, ya que estos tienen el orden de precedencia mas alto, veamos como
se puede transformar una expresin segn donde se coloque el parntesis, veamos

en la primera frmula la prioridad es del producto que tiene un orden de precedencia mayor y el resultado es
61.Esto se altera en la segunda frmula poniendo parntesis, se efecta primero la suma y luego el producto y
el resultado es 96

FORMULAS MATRI CI ALES

I NTRODUCCI ON:
Con las frmulas matriciales se pueden hacer muchas cosas, es una herramienta de gran potencia, en general
estas frmulas o funciones se usan para hacer 2 tipos de cosas.:

Ejecutar varias operacines y devolver un nico valor en la celda donde se la introduce.
Ejecutar varias operacines y devolver mltiples valores en distintas celdas.
Las frmulas matriciales actan en 2 o mas rangos de valores, los que se denominan, argumentos matriciales,
los cuales tienen la caracterstica de tener el mismo nmero de filas y de columnas, por ejemplo, podran actuar
sobre los rangos A1:A12 y BI :B12.
Una frmula matricial se introduce de la misma forma que la frmula comn, la diferencia es que luego de
introducirla hay que apretar las teclas Control+shift+ENTER, con lo que automticamente es rodeada por
llaves y es por eso que se las conoce como frmulas CSE. Para una formula matricial multiplicar 2 argumentos
matriciales, como A1:A12 *BI :B12. significa multiplicar las celdas A1*B1, A2*B2, A3*B3......A12*B12 si
quiero sumar estos resultados parciales uso la formula matricial {SUMA(A1:A12*B1:B12)}, para aclarar los
conceptos vamos a tener que hacer mas de un ejemplo, Empecemos por un ejemplo del tipo 1-.

El dueo de una mueblera quiere aumentar la variedad de los productos que vende para lo que decide
comprar, parte de los tradicionales, muebles de computacin, para lo que cuenta con la siguiente planilla


y quiere saber cuanto tiene que gastar. Decide tomar el camino corto y usa una simple frmula matricial,
veamos lo que hizo

se ve que introdujo la frmula matricial

de esta forma hizo 3 pasos en uno. Los 3 pasos hubieran sido:
1- I ntroducir la frmula =D2*E2 en la celda F2.
2- Arrastrar esta frmula hasta la celda F7
3- Ubicarnos en la celda F8 y pulsar el icono
o ubicarnos en la celda D9( por ejemplo ) e introducir la funcin
=SUMA(D2*E2;D3*E3;D4*E4;D5*E5;D6*E6;D7*E7)

se ve que ambas maneras, si bien dan el mismo resultado, son mucho mas tediosas
Se puede aprovechar este mismo ejemplo para mostrar como usar las frmulas matriciales que devuelven
mltiples valores y as explicamos todo el proceso.Usando la misma tabla que al principio vamos a obtener todos
los productos parciales
1 seleccionamos la columna donde queremos que aparezcan los valores
.
2 introducimos la frmula, seleccionando los rangos D2:D7 y E2:E7 y multiplicndolos

3 apretamos las teclas Control+shift+ENTER

y obteniendo los productos parciales y por lo tanto mltiples resultados como se ve en el recuadro rojo.


TUTORI ALES

PROMEDI O CON UNA CONDI CI ON

Excel 2007 tiene una funcin que nos da el promedio de un conjunto de valores con una condicin, tal funcin
se llama PROMEDI O.SI , con las frmulas matriciales podemos hacer lo mismo. Haremos un ejemplo con
ambas opciones, aclarando que estando la funcin PROMEDI O.SI , siempre es preferible usar esta alternativa
debido a que utiliza menos recursos de nuestro equipo.
Otra historia es para Excel 2003, puesto que en esta versin la nica alternativa son las frmulas matriciales,
siendo la razn que PROMEDI O.SI directamente no existe.
Supongamos que una fbrica de autos, lanz un nuevo modelo en el mes de Enero y quiere saber cual fue el
promedio de ventas de los 3 primeros das del mes en cada una de las zonas en las que esta divide al pas. Las
zonas son: Norte, Sur, Este, Oeste y centro. Para lograr su objetivo se vuelcan los datos de las ventas de esos
das en una tabla, con un sector a la derecha para los resultados

la frmula, para la zona Norte es:

en la figura se hace la comparacin con la funcin PROMEDI O.SI y se ve que coinciden
MAXI MO CON UNA CONDI CI ON

Sera muy til que Excel 2003/2007 tuviera la frmula del tipo "mximo con una condicin", algo como
MAX.SI o MAXI MO.SI , pero si se fijan en el conjunto de funciones de Excel, esta no aparece nada parecido,
ni siquiera en Excel 2007, esta es una mala noticia ya que, sin duda seria muy til; hay muchos problemas que
se podran resolver. Por suerte podemos resolver esta falencia con las FORMULAS MATRICI ALES.
Supongamos este problema:
Un grupo de alumnos rindio 3 materias, Matemtica, fsica y qumica y quieren saber el puntaje mximo que
sacaron.
Los datos se podran representar en una tabla como la siguiente

Para responder a la inquietud de los alumnos se vuelca la tabla en una Hoja de Excel poniendo una tabla a la
derecha para los resultados

donde la frmula matricial usada es, por ejemplo para el alumno Marquez

como puede verse, es muy parecida a la del tutorial PROMEDI O CON UNA CONDI CI ON
PROMEDI O CON UNA CONDI CI ON

Excel 2007 tiene una funcin que nos da el promedio de un conjunto de valores con una condicin, tal funcin
se llama PROMEDI O.SI , con las frmulas matriciales podemos hacer lo mismo. Haremos un ejemplo con
ambas opciones, aclarando que estando la funcin PROMEDI O.SI , siempre es preferible usar esta alternativa
debido a que utiliza menos recursos de nuestro equipo.
Otra historia es para Excel 2003, puesto que en esta versin la nica alternativa son las frmulas matriciales,
siendo la razn que PROMEDI O.SI directamente no existe.
Supongamos que una fbrica de autos, lanz un nuevo modelo en el mes de Enero y quiere saber cual fue el
promedio de ventas de los 3 primeros das del mes en cada una de las zonas en las que esta divide al pas. Las
zonas son: Norte, Sur, Este, Oeste y centro. Para lograr su objetivo se vuelcan los datos de las ventas de esos
das en una tabla, con un sector a la derecha para los resultados

la frmula, para la zona Norte es:

en la figura se hace la comparacin con la funcin PROMEDI O.SI y se ve que coinciden
ANI DAMI ENTO DE FUNCI ONES

I NTRODUCCI ON I R A TUTORI ALES
El anidamiento de funcines junto con la programacin VBA es lo que mas potencia da al programa EXCEL,
aqu todo depende de a donde nos pueda llevar nuestra habilidad e imaginacin y es donde se convierte en un
programa muy verstil pudiendo abarcar diversas disciplinas como son la I ngeniera, Estadstica, Matemtica,
Finanzas, Contabilidad por decir algunas que se me ocurren.
El anidamiento de funcines no es otra cosa que ubicar una funcin en el argumento de otra de forma
adecuada, dicho as parece muy simple pero veremos que la cosa puede complicarse mucho dado que la
anidacin pude hacerse en muchos niveles e involucrar a muchas funcines dando expresiones muy largas y
difciles de manejar, esto dista mucho de querer desalentar, mas bien insta a la curiosidad y a la prctica.
Empezaremos por lo mas simple para ir a lo mas complejo en forma progresiva pero antes voy a aclarar esto de
los niveles y el lmite que hay y la forma adecuada de hacerlo, para esto ,como siempre nada mejor que un
ejemplo
Se sabe que el promedio de las temperaturas del ao en curso de la provincia de Misines es de 27 y se tiene
una tabla con los promedios de las temperaturas de los meses del ao anterior, se quiere saber si es verdadero
que los 27 entran en el rango de los promedios de los meses del ao anterior

se ve que 27 no entra en rango de las temperatura promedio de los meses del ao anterior y que en la frmula
usada hemos anidado las funcines MAX() y MI N() en dos argumentos de una funcin Y() la que se denomina
de primer nivel, siendo MAX() y MI N() de segundo nivel ya que forman parte de los argumentos de Y(). MAX()
y MI N() estn ubicadas correctamente pues forman parte de proposicines lgicas que son las que aceptan los
argumentos de Y().Por otra parte las funcines se pueden anidar hasta 64 veces en Excel 2007 y solo 7 veces en
Exel 2003 y versiones anteriores.
TUTORI ALES DE ANIDAMI ENTO DE FUNCI ONES

I NDI CE Y COI NCI DI R POR BUSCARV (1/08/2009)

COMO ANI DAR SI CON LA FUNCI ON LOGI CA O e Y (5/08/2009)

ELI MI NAR MENSAJ ES DE ERROR EN LA FUNCI ON BUSCARV (8/08/2009)

UN EJ EMPLO SENCI LLO DE RANGO VARI ABLE (26/08/2009)

RANGO VARI ABLE UTI LI ZANDO NOMBRES

GRAFI COS CON RANGOS VARI ABLES

BUSQUEDA EN TABLA DE DOBLE ENTRADA
FI LTROS

Loas filtros sirven para obtener una lista mas simple a partir de otra mas compleja, esto se hace eliminando filas
que cumplen con determinadas condiciones o criterios, por ejemplo si tenemos la siguiente tabla

podra interesarnos saber los alumnos que tuvieron un porcentaje de asistencia del 70 % por lo tanto
eliminaremos todas las filas de alumnos que no cumplan con ese criterio.
Para nuestro objetivo, introducimos la tabla en una Hoja de Excel 2007, seleccionamos cualquier celda de lista
y vamos a la pestaa "Datos" en el panel "Ordenar y filtrar" donde pulsamos en el cono sealado por la
flecha (que se pone de color anaranjado)

automticamente aparecen dos controles en las etiquetas como se muestra

si oprimimos en control que muestra la flecha, aparece un men desplegable que nos permite establecer los
criterios que nos interesan

para nuestro objetivo nos interesa la seccin recuadrada en rojo, que tiene los porcentajes de asistencia con una
casilla de verificacin a la izquierda, para nuestro propsito, deberemos destildar todos los porcentajes distintos
al 70%

despus de aceptar obtenemos la tabla que nos interesa

Este es un ejemplo muy simple que nos sirve para introducir el tema, solo agregaremos que hay dos tipos de
filtros:

Autofiltros
Son del tipo que acabamos de describir, como se vio, los criterios de filtrado se pueden seleccionar de un
men desplegable..
Filtros avanzados
En estos filtros, los criterios de filtrado pueden ser mas complejos. y tambien funcionan en forma
diferente

Una de las diferencias entre ambos tipos de filtros se puede apreciar con la simple inspeccin de la siguiente
imagen, que es la tabla final vista en una Hoja de Excel

se puede ver que las filas no estan en forma correlativa, con lo que se infiere que las supuestas filas filtradas en
realidad estan ocultas y si, por ejemplo, quisiramos contarlas con la funcin CONTAR el resultado dara la
totalidad de las filas pues se contaran las ocultas tambin, en algunos problemas puede ser un inconveniente
que se supera con los Filtros Avanzados ya que con estos se filtran realmente( y no se ocultan)las filas que
cumplen con lo criterios.
TUTORI ALES:
1-FI LTROS AVANZADOS
FI LTROS AVANZADOS

I NTRODUCCI ON:
Vamos a explicar el funcionamiento de los Filtros avanzados utilizando la misma tabla que se empleo para
AUTOFI LTROS .


En los filtros avanzados se utilizan criterios lgicos para filtrar las filas, en este caso, se debe especificar el
rango de celdas donde se ubican los mismos, veamos como se procede.
En la cinta de opciones debemos ir a la pestaa "Datos" y luego al panel "Ordenar y filtrar" donde oprimimos
el botn "Avanzadas" luego aparece el panel "Filtro avanzado"

Veamos que significan cada uno de las acciones que se pueden tomar:

Filtrar la lista sin moverla a otro lugar: se filtran los datos en el mismo lugar donde se encuentra la
tabla.
Copiar a otro lugar: la tabla filtrada puede aparecer en un lugar especificado de la misma Hoja o en
otra Hoja de clculo.
Rango de la lista : automticamente Excel coloca el rango done esta la lista
Rango de criterios: es el rango elegido por el usuario para ubicar los criterios de filtrado.
Copiar a: esta opcin queda habilitada cuando se marca la casilla del punto 2, en cuyo caso deberemos
especificar el lugar sonde queremos que aparezca la tabla filtrada, para esto solo es necesario especificar
donde estarn los rtulos.
Slo registros nicos: en el caso de haber registros duplicados, mostrar solo uno de ellos.

Para dar un ejemplo simple filtraremos las mismas filas que en la introduccin de AUTOFI LTROS sin
moverla a otro rango (recordemos que en este caso se filtraban todas las filas que no tuvieran un porcentaje del
70%), para hacer esto marcamos en la casilla de verificacin de Filtrar la lista sin moverla a otro lugar y luego
elegimos 2 celdas, una para el rtulo y otra para el criterio a cumplir, como se muestra en el recuadro
rojo(%D%1:%D%2)

el panel queda como se muestra

al aceptar nos queda la tabla filtrada


en este caso las filas se han ocultado como en el caso de autofiltros, para solucionar el problema debemos
copiar la tabla filtrada a otro lugar, por ejemplo al rango $E$1:$F$1, quedando el panel emergente como se ve

y la tabla en su nuevo lugar se ve como en la figura

aqu se puede ver que las filas estn en forma correlativa y por lo tanto se pueden aplicar funciones, por
ejemplo si quisiremos contar el nmero de alumnos con un porcentaje de asistencia del 70%, utilizaramos la
funcin CONTAR y como se puede ver se obtiene el resultado correcto que es 8

Vamos a dar otro ejemplo con dos condicines. Supongamos que queremos saber cuantos alumnos tuvieron
menos de 70% y mas de 85% de asistencias, en este caso debemos poner 2 condicines, por lo que
necesitaremos una celda mas en el rango de criterios

y el panel Filtro avanzado se configura como sigue

al aceptar obtenemos la tabla

donde al aplicar la funcin CONTAR vemos que los alumnos que cumplen los criterios son 6.
FORMATO CONDI CI ONAL

El Formato Condicional es un herramienta muy til como informacin grfica adicional para los datos
numricos que estn en celdas o en rangos, con mas razn si hablamos de Excel 2007, que ha mejorado
enormemente las posibilidades en este aspecto. Este tipo de formato tiene un comportamiento similar al de la
funcin SI ya que otorga un formato a una celda o rango, dependiendo del cumplimiento de una condicin, que
es en definitiva, el cumplimiento de una proposicin lgica.
Los formatos condicionales mas novedosos son:
Barra de datos:
Es semejante a un grfico de barras proporcional al numero en la celdas.
Escala de color:
Da un color a una celda, de acuerdo al valor de esta.
Conjunto de conos:
permite segn el valor de un celda compararla con otro de referencia y aadirle un cono.
Aunque hay muchas mas opciones; entre ellas se pueden marcar celdas que cumplan con determinadas
condiciones y dar colores a los nmeros.
Se puede tambin aplicar mas de un formato a una celda, o sea, si una condicin cambia el tamao de la fuente
de una celda y otra cambia el color del fondo, cuando se cumplan ambas condiciones , tambin se aplicaran
ambos formatos.
La tabla1 que se ve a continuacin contiene simultneamente los formatos Barra de datos, Escala de colores y
Conjunto de conos


Para aplicar estos formatos el mtodo es muy parecido.
En la cinta de opciones vamos a la pestaa "I nicio" y luego al panel "Estilos"

al pulsar en este aparece otro panel tambin llamado "Estilos"

donde pulsamos "Formato condicional" que cambia de color y despliega un men de opciones, donde estn
destacados en rojo los formatos mencionados al principio mas otros dos en la parte superior

Los triangulitos negros nos indican que hay mas opciones de formato como se puede ver al oprimir, por ejemplo
en "Barra de datos"

Luego dada la siguiente tabla igual a la tabla1 pero sin formato


para aplicar el formato Barra de datos, a la etiqueta venta, se selecciona la columna donde estn los datos y se
pulsa en el modelo sealado por la flecha roja


quedando como la columna VENTAS de la tabla1


El formato condicional tiene muchas aplicaciones interesantes las que veremos en sucesivos tutoriales.
TABLAS DI NAMI CAS

INTRODUCCIN:
Las Tablas Dinmicas son una forma alternativa de presentar o resumir los datos de una lista, es decir, una
forma de ver los datos desde puntos de vista diferentes.
El nombre Tabla Dinmica se debe a que los encabezados de fila y columna de la lista pueden cambiar de
posicin y tambin pueden ser filtrados.
Con las Tablas Dinmicas tambin podremos preparar los datos para ser utilizados en la confeccin de grficos.
La comprensin cabal de este tema se obtiene con la prctica y es as como se ver que es uno de los tpicos
mas potentes de Excel, principalmente en las versiones mas recientes.
Empezaremos con un ejemplo:
Una empresa de exportacin de mquinas agrcolas tiene la siguiente tabla en una Hoja de Excel 2007.donde
figuran los datos del 1 trimestre del ao.



a partir de ella se quiere crear una nueva tabla en la que se informe la cantidad de maquinarias exportadas y el
detalle de cuantas se vendieron de cada una.
Para crear la tabla que nos responda a estas preguntas, nos ubicamos en cualquier celda de la tabla, luego
vamos a la pestaa "insertar" panel "Tablas"


en el que pulsamos en "Tabla dinmica", al hacer esto aparece un men en el que tenemos las opciones de
"Grfico dinmico" y "Tabla dinmica" , pulsaremos en este ltimo como se puede ver

a continuacin aparece el panel "Crear tabla dinmica"

en este caso el rango de la tabla base (tabla de partida) queda automticamente seleccionado, incuyendo los
rtulos, tambin seleccionamos "Nueva hoja de clculo" y pulsamos en aceptar y automticamente se crea la
Hoja4 en la que se destacan:

Una nueva cinta de opciones denominada "Herramienta de tabla dinmica"




Un panel llamado "Lista de campos de tabla dinmica" que es una novedad de Excel 2007 y que tiene un
rectngulo en la parte superior, donde se ubican los campos o rtulos de la tabla de origen, tambin hay cuatro
rectngulos, en la parte inferior, denominados " Filtro de informe", "Rtulos de columna", "Rtulos de fila" y
"Valores" donde irn apareciendo los rtulos de la tabla a medida que los seleccionemos en la parte suprior en
forma de botones como el que se nuestra


Los botones se pueden arrastrar de un rectngulo a otro aunque los rtulos que tienen valores numricos, siempre
aparecen en rectngulo "Valores".


como se ve, hasta este momento, tiene las casillas de verificacin de rtulos sin marcar , pues bien, es
justamente seleccionar las casillas "MAQUI NA" y "CANTI DAD" lo debemos hacer en el prximo paso

Observar que aparecen automticamente 2 botones.
Listo ya tenemos la primera tabla con las respuestas pedidas recuadradas en rojo

si nos interesara saber solamente el dato de cuantas fertilizadora y sembradora se exportaron, junto con su
total, tenemos un comando de filtrado en la parte superior y as obtenemos la siguiente tabla

luego de aplicar el filtro.
Este es un ejemplo didctico para hacer una introduccin, pero se le puede sacar mucho mas el jugo a esta
herramienta.
Podemos querer saber el detalle de las mquinas que fueron exportadas y por cual vendedor. En este caso
tendremos que seleccionar la casilla del rtulo VENDEDOR y en la nueva Hoja aparece una tabla y el panel
"Lista de campos de tabla dinmica"


se ve que en los rectngulos, mas precisamente en el llamado Rtulo de fila, aparece un nuevo botn, el botn
VENDEDOR en forma simultnea a la la seleccin de la casilla de verificacin VENDEDOR.
La tabla responde a lo que queremos saber, pero le podemos dar otro aspecto arrastrando el botn VENDEDOR
al rectngulo "Rtulo de columna"

y la tabla queda como la que esta abajo , luego de haberle dado algo de formato

En esta tabla se puede ver, por ejemplo, que Pea vendi 16 fertilizadoras y un tractor.
Sera interesante saber el nmero de maquinarias exportadas a que pas y por cual vendedor.
Para hacer lo , verificamos la casilla "Pas" y filtramos MAQUI NA

y se genera la tabla


donde se puede ver que Chuan le vendi 30 mquinas a China.
Hasta ahora nuestra tabla dinmica efecta sumas, pero puede hacer otras operaciones tales como porcentajes,
mximos, mnimo y otras mas que iremos viendo.
Podemos preguntarnos cual fue la mxima cantidad de maquinarias que vendi Pea. Para hacer esto nos
ubicamos en una celda cualquiera de la tabla de arriba y apretando el botn derecho del mouse aparece el
siguiente men emergente


en el que pulsamos en "Configuracin de campo de valor", como indica la flecha, con lo que aparece el panel
tambin llamado "Configuracin de campo de valor"

en el que si vamos a la pestaa "Resumen por" estn las opciones de resumen en las que elegiremos Mx y
luego de aceptar, la tabla se transforma en

que nos dice que la cantidad Mxima de maquinarias que vendi Pea es 9, como se ve en el recuadro rojo, en
forma adicional podemos ver que esta cantidad fue vendida a Brasil ( verificar con la tabla de partida o tabla
base)
Este resultado se puede ver con una simple inspeccin de los datos, que en este caso son tres, pero cuando estos
aumentan es donde vemos la utilidad del clculo de un mximo.

1.TABLAS DINAMICAS CON RANGOS DINAMICOS
TABLAS DI NAMI CAS CON RANGOS DI NAMI COS

Una aplicacin de los RANGOS VARI ABLES, es cuando trabajamos con TABLAS DI NAMI CAS, ya que
podemos agregar o quitar elementos de la tabla origen de datos (tabla base)sin necesidad de actualizar la
referencia al rango en forma manual, o sea que se hace en forma automtica. Para hacer esto vamos a utilizas
NOMBRES , pero no le vamos a dar un nombre a un rango, le daremos un nombre a una frmula ( Excel
considera a las frmulas como si fueran rangos)dicha frmula sera el ANI DAMI ENTO entre las funciones
DESREF Y CONTARA
como ya se vio, la sintaxis de DESREF es
DESREF(referencia ;filas;columnas;alto;ancho)

donde los argumentos sern:
referencia: la celda en el ngulo superior izquierdo de la tabla base (A1 si consideramos la tabla del tutorial
TABLAS DI NAMI CAS
filas:para este caso es 0
columnas: para este caso es 0
alto: la cantidad de filas en nuestra tabla base
ancho: la cantidad de columnas en nuestra tabla base
Esta frmula se anidara con CONTARA para que DEREF se transforme en dinmica quedando
=DESREF(Hoja1!$A$1,0,0,CONTARA(Hoja1!$A:$A),CONTARA(Hoja1!$1:$1))

a esta frmula le daremos el nombre tabla_base_dinamica


con este nombre creamos la tabla dinmica

en este momento ya estamos en condiciones de agregar datos a la tabla base original

si con ella hubiramos confeccionado la siguiente tabla dinmica

y agregamos otro pas, por ejemplo I talia


esta misma tabla se actualiza incorporando este pas

luego de ir al panel "DATOS" de la pestaa "OPCI ONES" y pulsar en actualizar

TABLAS DI NAMI CAS

INTRODUCCIN:
Las Tablas Dinmicas son una forma alternativa de presentar o resumir los datos de una lista, es decir, una
forma de ver los datos desde puntos de vista diferentes.
El nombre Tabla Dinmica se debe a que los encabezados de fila y columna de la lista pueden cambiar de
posicin y tambin pueden ser filtrados.
Con las Tablas Dinmicas tambin podremos preparar los datos para ser utilizados en la confeccin de grficos.
La comprensin cabal de este tema se obtiene con la prctica y es as como se ver que es uno de los tpicos
mas potentes de Excel, principalmente en las versiones mas recientes.
Empezaremos con un ejemplo:
Una empresa de exportacin de mquinas agrcolas tiene la siguiente tabla en una Hoja de Excel 2007.donde
figuran los datos del 1 trimestre del ao.



a partir de ella se quiere crear una nueva tabla en la que se informe la cantidad de maquinarias exportadas y el
detalle de cuantas se vendieron de cada una.
Para crear la tabla que nos responda a estas preguntas, nos ubicamos en cualquier celda de la tabla, luego
vamos a la pestaa "insertar" panel "Tablas"


en el que pulsamos en "Tabla dinmica", al hacer esto aparece un men en el que tenemos las opciones de
"Grfico dinmico" y "Tabla dinmica" , pulsaremos en este ltimo como se puede ver

a continuacin aparece el panel "Crear tabla dinmica"

en este caso el rango de la tabla base (tabla de partida) queda automticamente seleccionado, incuyendo los
rtulos, tambin seleccionamos "Nueva hoja de clculo" y pulsamos en aceptar y automticamente se crea la
Hoja4 en la que se destacan:

Una nueva cinta de opciones denominada "Herramienta de tabla dinmica"




Un panel llamado "Lista de campos de tabla dinmica" que es una novedad de Excel 2007 y que tiene un
rectngulo en la parte superior, donde se ubican los campos o rtulos de la tabla de origen, tambin hay cuatro
rectngulos, en la parte inferior, denominados " Filtro de informe", "Rtulos de columna", "Rtulos de fila" y
"Valores" donde irn apareciendo los rtulos de la tabla a medida que los seleccionemos en la parte suprior en
forma de botones como el que se nuestra


Los botones se pueden arrastrar de un rectngulo a otro aunque los rtulos que tienen valores numricos, siempre
aparecen en rectngulo "Valores".


como se ve, hasta este momento, tiene las casillas de verificacin de rtulos sin marcar , pues bien, es
justamente seleccionar las casillas "MAQUI NA" y "CANTI DAD" lo debemos hacer en el prximo paso

Observar que aparecen automticamente 2 botones.
Listo ya tenemos la primera tabla con las respuestas pedidas recuadradas en rojo

si nos interesara saber solamente el dato de cuantas fertilizadora y sembradora se exportaron, junto con su
total, tenemos un comando de filtrado en la parte superior y as obtenemos la siguiente tabla

luego de aplicar el filtro.
Este es un ejemplo didctico para hacer una introduccin, pero se le puede sacar mucho mas el jugo a esta
herramienta.
Podemos querer saber el detalle de las mquinas que fueron exportadas y por cual vendedor. En este caso
tendremos que seleccionar la casilla del rtulo VENDEDOR y en la nueva Hoja aparece una tabla y el panel
"Lista de campos de tabla dinmica"


se ve que en los rectngulos, mas precisamente en el llamado Rtulo de fila, aparece un nuevo botn, el botn
VENDEDOR en forma simultnea a la la seleccin de la casilla de verificacin VENDEDOR.
La tabla responde a lo que queremos saber, pero le podemos dar otro aspecto arrastrando el botn VENDEDOR
al rectngulo "Rtulo de columna"

y la tabla queda como la que esta abajo , luego de haberle dado algo de formato

En esta tabla se puede ver, por ejemplo, que Pea vendi 16 fertilizadoras y un tractor.
Sera interesante saber el nmero de maquinarias exportadas a que pas y por cual vendedor.
Para hacer lo , verificamos la casilla "Pas" y filtramos MAQUI NA

y se genera la tabla


donde se puede ver que Chuan le vendi 30 mquinas a China.
Hasta ahora nuestra tabla dinmica efecta sumas, pero puede hacer otras operaciones tales como porcentajes,
mximos, mnimo y otras mas que iremos viendo.
Podemos preguntarnos cual fue la mxima cantidad de maquinarias que vendi Pea. Para hacer esto nos
ubicamos en una celda cualquiera de la tabla de arriba y apretando el botn derecho del mouse aparece el
siguiente men emergente


en el que pulsamos en "Configuracin de campo de valor", como indica la flecha, con lo que aparece el panel
tambin llamado "Configuracin de campo de valor"

en el que si vamos a la pestaa "Resumen por" estn las opciones de resumen en las que elegiremos Mx y
luego de aceptar, la tabla se transforma en

que nos dice que la cantidad Mxima de maquinarias que vendi Pea es 9, como se ve en el recuadro rojo, en
forma adicional podemos ver que esta cantidad fue vendida a Brasil ( verificar con la tabla de partida o tabla
base)
Este resultado se puede ver con una simple inspeccin de los datos, que en este caso son tres, pero cuando estos
aumentan es donde vemos la utilidad del clculo de un mximo.

1.TABLAS DINAMICAS CON RANGOS DINAMICOS
TABLAS DI NAMI CAS CON RANGOS DI NAMI COS

Una aplicacin de los RANGOS VARI ABLES, es cuando trabajamos con TABLAS DI NAMI CAS, ya que
podemos agregar o quitar elementos de la tabla origen de datos (tabla base)sin necesidad de actualizar la
referencia al rango en forma manual, o sea que se hace en forma automtica. Para hacer esto vamos a utilizas
NOMBRES , pero no le vamos a dar un nombre a un rango, le daremos un nombre a una frmula ( Excel
considera a las frmulas como si fueran rangos)dicha frmula sera el ANI DAMI ENTO entre las funciones
DESREF Y CONTARA
como ya se vio, la sintaxis de DESREF es
DESREF(referencia ;filas;columnas;alto;ancho)

donde los argumentos sern:
referencia: la celda en el ngulo superior izquierdo de la tabla base (A1 si consideramos la tabla del tutorial
TABLAS DI NAMI CAS
filas:para este caso es 0
columnas: para este caso es 0
alto: la cantidad de filas en nuestra tabla base
ancho: la cantidad de columnas en nuestra tabla base
Esta frmula se anidara con CONTARA para que DEREF se transforme en dinmica quedando
=DESREF(Hoja1!$A$1,0,0,CONTARA(Hoja1!$A:$A),CONTARA(Hoja1!$1:$1))

a esta frmula le daremos el nombre tabla_base_dinamica


con este nombre creamos la tabla dinmica

en este momento ya estamos en condiciones de agregar datos a la tabla base original

si con ella hubiramos confeccionado la siguiente tabla dinmica

y agregamos otro pas, por ejemplo I talia


esta misma tabla se actualiza incorporando este pas

luego de ir al panel "DATOS" de la pestaa "OPCI ONES" y pulsar en actualizar

GRAFI COS

I NTRODUCCI ON:
Los grficos son una exelente herramienta para representar los datos y los resultados de algn problema en
forma visual , siendo esta una forma diferente de encarar las cosas.
Con una forma visual de representacin de datos se tiene de un pantallazo una idea mas clara del significado de
los nmeros a demas de ser visualmente mas atractiva. La idea de los grficos est en casi todas las disciplinas,
en este momento se me ocurren algunas tan (aparentemente ) dispares como la matemtica,
medicina,oceanografa la web y paro aqu porque la lista es interminable.
Siempre que se tengan datos que esten relacionados entre si se podr hacer un grfico y se debe tener en
cuenta:

La informacin debe estar en una tabla.
Se deben crear rtulos para filas y columnas ya que estos se trasladan al grfico en forma automtica.
Veamos un ejemplo para entender mejor como funciona esto:
Supongamos que un negocio tiene una tabla con los meses y las ventas respectivas de esos meses

el dueo del negocio quiere tener una idea de como anduvieron sus ventas en forma de de un grfico de barras.
Para hacer esto:

Selecciona la tabla con los rtulos.
Elige el estilo de grfico, para lo que va a la pestaa insertar y de todas las posibilidades de grficos de
barra elija el mostrado en la figura

slo basta hacer un clic para obtener el siguiente grfico de barras

A este grfico se lo puede editar cambiando el ttulo el color de las barras etc
En este grfico se ve que de un vistazo, podemos ver que Mayo fue el mes de menor venta y que a partir de este
la tendencia fue subir casi en forma lineal, esto no lo podramos haber apreciado en forma tan rpida a partir
de la tabla, lo que demuestra la utilidad y potencia de los grficos.
MACROS
I NTRODUCCI ON:
Excelsa es programable, lo que puede sorprender a muchos, y si las funciones y el anidamiento de funciones
por ellas mismas le dan mucha potencia, esta nueva cualidad le agrega mucha mas, toda la potencia que el
conocimiento y la habilidad que un programador pueda darle. Los programas que se realizan en Excel se
llaman MACROS y estos van desde simples instrucciones de una o dos lneas de cdigo hasta cosas mucho mas
complejas. Lo interesante de todo esto es que para hacer MACROS no hace falta saber programar y aun as se
pueden generar macros muy tiles y que nos pueden ahorrar mucho tiempo y trabajo. Este tipo de MACROS es
la que se puede generar con la GRAVADORA DE MACROS.

Es muy comn, en el trabajo diario , tener que hacer tareas repetitiivas como por ejemplo hacer una plantilla
con un cierto formato, ttulo, encabezamientos ,etc y sera muy conveniente poder realizarla apretando un
botn, bueno, pues esto se pude realizar con la grabadora de macros, la cual grava estas acciones y las traduce
a cdigo ( programacin VBA)
Supongamos que todos los dias tengo que generar una lista con el movimiento de un comercio de
computadoras, para organizar los datos que iremos ingresando, es conveniente escribir los encabezados de cada
columna, supongamos que estos encabezados son

y quiero que esten como se ve en la figura de arriba, tambin quiero que estos encabezados aparezcan
automticamente todas las maanas(al apretar un botn por ejemplo). Como no se nada de programacin VBA
voy a utilizar la grabadora de macros. Hay tres formas de poner en funcionamiento la grabadora de macros:

Vamos a la pestaa Vista y en la seccin Macros desplegamos el submen Macros y dentro de este
submen seleccionamos la opcin Grabar macro


Pulsando el botn que se encuentra en la parte inferior izquierda de la pantalla de Excel( barra de
estado)



de cualquiera de estas dos formas aparece el cuadro de dialogo Grabar Macro

donde podemos dar un nombre a la macro, sin dejar espacios en blanco.
En Mtodo abreviado: elegimos una combinacin de la tecla CTRL +"una tecla del teclado", para ejecutar la
macro, cuidando de no poner una combinacin utilizada por Excel en alguno de sus atajos.
En Guardar macro en: podemos elegir guardar la macro en el libro activo, en el libro de macros personal o en
otro libro.
En Descripcin: podemos describir que hace de la macro o cualquier otro comentario.

Finalmente pulsamos en aceptar y el botn que estaba en la barra de estado se transforma en el que est
marcado por la flecha en la figura, comenzando la grabacin.


(Con este botn tambin se puede detener la grabacin.)
En estas circunstancias, empezando por una celda cualquiera vamos luego a la celda A1, escribimos los
encabezados con maysculas los centramos, hacemos los recuadros correspondientes y detenemos la grabacin
( no olvidarse), esto va a generar un cdigo VBA en forma automtica

No tenemos porque entender este cdigo, solo dire que se puede hacer lo mismo con un cdigo mas reducido o
dicho de otra manera, la grabadora de macros genera un cdigo redundante, que se puede reducir aprendiendo
Programacin VBA
Para que la macro haga su tarea, se puede:

utilizar el mtodo abreviado, que en nuestro caso es CTRL+r .
I r a las pestaa Programador, seccin Cdigo y luego pulsar en Macros

luego aparece el cuadro de dilogo Macro, donde aparece la macro creada, para luego apretar el botn ejecutar

Tambin con este cuadro de dilogo podemos eliminar macros.
3. La tercera manera de que una macro grabada se manifieste, es creando un botn.
Para crear un botn vamos a la pestaa Programador, seccin controles y luego pulsamos en el icono I nsertar

En los Controles de formulario pulsando donde seala la flecha aparece un puntero en forma de cruz que nos
permite colocar el botn en un lugar cualquiera y automticamente aparece la ventana Asignar macrodonde se
puede seleccionar la macro a la que le queremos asignar el botn

aceptamos y le damos un nombre; en nuestro caso podra ser Encabezados.

Veremos que cuando el mause pasa por el botn, este se transforma en una mano, luego hacemos clic y se
dispara la macro con el resultado esperado

PROGRAMACI ON VBA PARA EXCEL

INTRODUCCION:
Si bien la grabadora de macros es muy til y genera un cdigo siempre correcto, tiene dos desventajas:

genera mas cdigo que el necesario.
slo puede hacer macros con instrucciones secuenciales y sin nada de lgica, o sea que no pueden tomar
desiciones ante un evento.
Ambas desventajas se pueden solucionar con la programacin VBA que quiere decir programacin visual basic
para aplicaciones, lo lamento pero aqu no tenemos mas remedio que aprender a programar y eso es lo que van
a ir aprendiendo con los tutorarles de este apartado.
VBA es una programacin que est ntimamente relacionada con los libros y las hojas de clculo y para esto
Excel cuenta con un editor de programacin donde se pone el cdigo, a este se puede acceder, en Excel 2007,
yendo a la pestaa programador y luego a la seccin cdigo donde hacemos clic en Visual Basic

En Excel 2003 hay que ir al men desplegable herramientas y de ah la ruta macros y Editor de Visual Basic

ambas formas nos lleva, luego de hacer doble clic en Hoja1por ejemplo, al editor

las macros que se escriban aqu, estaran relacionadas con la Hoja1.
Comencemos por lo mas simple y escribamos una macro que seleccione la celda B5de la Hoja1 del libro
VBAProject (Libro2)

donde podemos ver que el cdigo

se escribe entre "Sub" y "End Sub" y que el nombre

no tiene espacios y termina con "( )" . Para ejecutar este cdigo pulsamos en el icono o en la tecla F5 para
que aparezca el panel Macros

donde puede verse el nombre de la macro que ya est seleccionada, luego pulsamos en "ejecutar" y despues en
el icono , o seleccionando " Alta +F5 que nos lleva a la pantalla con el resultado

que es la seleccin de la celda B5.
Otro cdigo muy simple es escribir un valor en una celda.
Escribamos el valor 2007 en la elda D8

y si lo queremos borrar

A estas alturas estamos en condiciones de explicar estos sencillos cdigos:
En la programacin VBA se trabaja con OBJ ETOS ( Hojas, celdas, Rangos, etc) que como todo objeto, tiene
propiedades, por ejemplo el objeto celda pude tener la propiedad de alto, ancho, estar seleccionada, tener un
valor, o no tener ninguno, etc
En los cdigos que hemos escrito tenemos los objetos Range("B5") ( celda B5) con la propiedad de estar
seleccionada y el objeto Range("D8") ( celda D8) con la propiedad de tener un nmero (2007) y despues estar
vaca.
CODIGOS MAS SIMPLES PARA EMPEZAR
1-Seleccionar una Celda
Range("A1").Select
2-Escribir en la celda que est seleccionada en el momento actual
Activecell.FormulaR1C1="Pedro"
la combinacin los cdigos 1 y 2 es equivalente a esta sola lnea:
Range("A1").Value=" pedro"
El uso de FormulaR1C1 sera explicado mas adelante
3-Letra Negrita
Selection.Font.Bold = True
4-Letra Cursiva
Selection.Font.Italic = True
5-Letra Subrayada
Selection.Font.Underline = xlUnderlineStyleSingle
6-Centrar Texto
With Selection
.HorizontalAlignment = xlCenter
End With
7-Alinear a la izquierda
With Selection
.HorizontalAlignment = xlLeft
End With
8-Alinear a la Derecha
With Selection
.HorizontalAlignment = xlRight
End With
9-Tipo de Letra(Fuente)
With Selection
.Font .Name = "Arial"
End With
10-Tamao de Letra(Tamao de Fuente)
With Selection.Font .Size =12
End With
11-Copiar
Selection.Copy
12-Pegar
ActiveSheet.Paste
13-Cortar
Selection.Cut
14-Ordenar Ascendente
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom
15-Orden Descendente
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom
16-Buscar
Cells.Find(What:="Csar", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, MatchCase:= _ False).Activate
17-Insertar Fila
Selection.EntireRow.Insert
18-Eliminar Fila
Selection.EntireRow.Delete
19-Insertar Columna
Selection.EntireColumn.Insert
20-Eliminar Columna
Selection.EntireColumn.Delete
21-Abrir un Libro
Workbooks.Open Filename:="C:\Mis documentos\Tablas dinamicas.xls"
22-Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\tablas.xls", FileFormat _ :=xlNormal, Password:="",
WriteResPassword:="", ReadOnlyRecommended:= _ False, CreateBackup:=False
La mayoria de estos cdigos se pueden verificar con la grabadora de Macros.

Significado de la FORMULA R1C1
La FORMULA R1C1 se emplea para colocar el resultado de una lnea de cdigo en la celda que actualmente
est activa.
Veamos el siguiente caso


supongamos que queremos sumar los nmeros de de la columna D y que el resultado aparezca en la celda F6
que es la que est seleccionada, el cdigo que se debera escribir es el siguiente


El parntesis destacado en rojo tiene por objetivo cubrir el tango donde estn los nmeros a sumar, o sea,
desplazarme 2 columnas a la izquierda [-2] con 5 y 2 filas hacia arriba es decir
[-5] y [-2]. Se entiende que R significan filas y C columnas y que anteponemos un - si nos desplazamos hacia la
izquierda o hacia arriba. Cuando escribimos una funcin, como en el caso anterior, siempre debe ser escrita
ActiveCell.FormulaR1C1 ="=SUM(R[]C[]:R[]C[])", pues el segundo igual es que caracteriza a la funcin y el
parntesis el rango donde se aplica. Lo que se acaba de hacer es lo mismo que dolocar =SUMA(D1:D3) en la
celda F6
Hasta ahora hemos hecho una breve intrcduccion a la programacion VBA , pero una cosa fundamental es
entender las estructuras de control de flujo de programa, lo que haremos mediante ejemplos
Estructuras de iteracion
Frecuentemente algunas lneas de cdigo de repiten muchas veces con el consiguiente aumento del tamao del
programa. Esto se solucionado mediante los llamados estructuras de iteracin, tambin llamadas ciclos de
repeticin o bucles.
Estos son:
While - Wend
Do - While - Loop
Do - Until --Loop
For - Next
For-Each-in-Next
Estructuras de desicion:
.I f - Then - Else
Select - Case
Tipos de datos, funciones y subrutinas:
Tipos de datos
Funciones
Macros
MACROS
I NTRODUCCI ON:
Excelsa es programable, lo que puede sorprender a muchos, y si las funciones y el anidamiento de funciones
por ellas mismas le dan mucha potencia, esta nueva cualidad le agrega mucha mas, toda la potencia que el
conocimiento y la habilidad que un programador pueda darle. Los programas que se realizan en Excel se
llaman MACROS y estos van desde simples instrucciones de una o dos lneas de cdigo hasta cosas mucho mas
complejas. Lo interesante de todo esto es que para hacer MACROS no hace falta saber programar y aun as se
pueden generar macros muy tiles y que nos pueden ahorrar mucho tiempo y trabajo. Este tipo de MACROS es
la que se puede generar con la GRAVADORA DE MACROS.

Es muy comn, en el trabajo diario , tener que hacer tareas repetitiivas como por ejemplo hacer una plantilla
con un cierto formato, ttulo, encabezamientos ,etc y sera muy conveniente poder realizarla apretando un
botn, bueno, pues esto se pude realizar con la grabadora de macros, la cual grava estas acciones y las traduce
a cdigo ( programacin VBA)
Supongamos que todos los dias tengo que generar una lista con el movimiento de un comercio de
computadoras, para organizar los datos que iremos ingresando, es conveniente escribir los encabezados de cada
columna, supongamos que estos encabezados son

y quiero que esten como se ve en la figura de arriba, tambin quiero que estos encabezados aparezcan
automticamente todas las maanas(al apretar un botn por ejemplo). Como no se nada de programacin VBA
voy a utilizar la grabadora de macros. Hay tres formas de poner en funcionamiento la grabadora de macros:

Vamos a la pestaa Vista y en la seccin Macros desplegamos el submen Macros y dentro de este
submen seleccionamos la opcin Grabar macro


Pulsando el botn que se encuentra en la parte inferior izquierda de la pantalla de Excel( barra de
estado)



de cualquiera de estas dos formas aparece el cuadro de dialogo Grabar Macro

donde podemos dar un nombre a la macro, sin dejar espacios en blanco.
En Mtodo abreviado: elegimos una combinacin de la tecla CTRL +"una tecla del teclado", para ejecutar la
macro, cuidando de no poner una combinacin utilizada por Excel en alguno de sus atajos.
En Guardar macro en: podemos elegir guardar la macro en el libro activo, en el libro de macros personal o en
otro libro.
En Descripcin: podemos describir que hace de la macro o cualquier otro comentario.

Finalmente pulsamos en aceptar y el botn que estaba en la barra de estado se transforma en el que est
marcado por la flecha en la figura, comenzando la grabacin.


(Con este botn tambin se puede detener la grabacin.)
En estas circunstancias, empezando por una celda cualquiera vamos luego a la celda A1, escribimos los
encabezados con maysculas los centramos, hacemos los recuadros correspondientes y detenemos la grabacin
( no olvidarse), esto va a generar un cdigo VBA en forma automtica

No tenemos porque entender este cdigo, solo dire que se puede hacer lo mismo con un cdigo mas reducido o
dicho de otra manera, la grabadora de macros genera un cdigo redundante, que se puede reducir aprendiendo
Programacin VBA
Para que la macro haga su tarea, se puede:

utilizar el mtodo abreviado, que en nuestro caso es CTRL+r .
I r a las pestaa Programador, seccin Cdigo y luego pulsar en Macros

luego aparece el cuadro de dilogo Macro, donde aparece la macro creada, para luego apretar el botn ejecutar

Tambin con este cuadro de dilogo podemos eliminar macros.
3. La tercera manera de que una macro grabada se manifieste, es creando un botn.
Para crear un botn vamos a la pestaa Programador, seccin controles y luego pulsamos en el icono I nsertar

En los Controles de formulario pulsando donde seala la flecha aparece un puntero en forma de cruz que nos
permite colocar el botn en un lugar cualquiera y automticamente aparece la ventana Asignar macrodonde se
puede seleccionar la macro a la que le queremos asignar el botn

aceptamos y le damos un nombre; en nuestro caso podra ser Encabezados.

Veremos que cuando el mause pasa por el botn, este se transforma en una mano, luego hacemos clic y se
dispara la macro con el resultado esperado


Estructura de iteracin Wile - Wend

I NTRODUCCI ON:
Esta es una iteracin en la que no sabemos de antemano cuantas veces se repetir el ciclo por lo tanto debe
haber una condicin para salir de el ya que en caso contrario el ciclo se repetira en forma indefinida.
Para explicar While - Wend me parece que lo mejor es dar un ejemplo en el que iremos analizando cada lnea
de cdigo.
Vamos a sumar un rango de nmeros que estn ubicados en una columna. En la hoja de clculo solo debemos
poner los nmeros (sin dejar espacios en blanco) . Luego de aplicar la macro el resultado deber quedar en la
primera celda vaca.
En este caso sumaremos una cantidad indefinida de nmeros naturales los que introducimos en la columna
"D" empezando por la "D1" y finalizando con la introduccin del N 283226 como se ve en la figura


el programa VBA es


Explicacin del cdigo (los nmeros representan las lneas de cdigo)
1- Siempre se empieza con Sub seguida del nombre de la macro y 2 parntesis (Sum()).
2- Seleccionamos la celda superior. "D1".
3- Asignamos a la variable sum (que es en la que quedar contenido el resultado) el valor de la celda
superior.
4- Esta lnea es la condicin para entrar o salir del While y quiere decir "mientras la celda activa no este
vaca",
5- Aqu ya entramos en el While donde hay 2 lneas que se repiten hasta que la condicin no se cumpla.
6- La primera lnea dentro del While hace bajar una posicin la celda seleccionada, de esta forma podemos
acceder a su contenido y la segunda agrega este contenido a la variable "sum".
7-Con Wend salimos o volvemos a entrar al ciclo segn se cumpla o no la condicin
8- Una vez que salimos del ciclo colocamos el resultado queda en una celda activa.
9-Tanbien mostramos el resultado mediante un MsgBox (caja de mensajes)
10- Con esta lnea se cierra el programa

Finalmente una vez que aplicamos la macro, la hoja nos queda



Se puede ver que los resultados en la celda activa y en la caja de mensajes coinciden.
Estructura de iteracin Do-While-Loop

I NTRODUCCI ON:
Esta es una iteracin en la que no sabemos de antemano cuantas veces se repetir el ciclo al igual en la
estructura While-Wend y como en esta debe haber una condicin para salir de el ya que en caso contrario este
se repetira en forma indefinida. La evaluacin de la condicin se produce antes de entrar al ciclo.
Para explicar Do-Wile-Loop utilizaremos el mismo ejemplo que en la estructura While-Wend.
Vamos a sumar un rango de nmeros que estn ubicados en una columna. En la hoja de clculo solo debemos
poner los nmeros (sin dejar espacios en blanco) . Luego de aplicar la macro el resultado deber quedar en la
primera celda vaca.
En este caso sumaremos una cantidad indefinida de nmeros naturales los que introducimos en la columna
"D" empezando por la "D1" y finalizando con la introduccin del N 283226 como se ve en la figura


el programa VBA es


Explicacin del cdigo (los nmeros representan las lneas de cdigo)
1- Siempre se empieza con Sub seguida del nombre de la macro y 2 parntesis (SumColumna()).
2- Seleccionamos la celda superior. "D1".
3- Asignamos a la variable sum (que es en la que quedar contenido el resultado) el valor de la celda
superior.
4- Esta lnea es la condicin para entrar o salir del While y quiere decir "hacer mientras la celda activa no este
vaca",
5- Aqu ya entramos en el Do-While donde hay 2 lneas que se repiten hasta que la condicin no se cumpla.
6- La primera lnea dentro del While hace bajar una posicin la celda seleccionada, de esta forma podemos
acceder a su contenido y la segunda agrega este contenido a la variable "sum".
7-Con Loop salimos o volvemos a entrar al ciclo segn se cumpla o no la condicin.
8- Una vez que salimos del ciclo colocamos el resultado queda en una celda activa.
9-Tanbien mostramos el resultado mediante un MsgBox (caja de mensajes).
10- Con esta lnea se cierra el programa.

Cdigo para copiar y pegar
Sub SumaColumna()
Range("D1").Select
Sum =Range("D1")
Do While ActiveCell.Value <>""
ActiveCell.Offset(1, 0).Select
Sum =Sum +ActiveCell.Value
Loop
ActiveCell.Value =Sum
MsgBox Sum
End Sub

Finalmente una vez que aplicamos la macro, la hoja nos queda



Se puede ver que los resultados en la celda activa y en la caja de mensajes coinciden y lgicamenteal dan el
mismo resultado que usando la estructura Wile-Wend.

Estructura de iteracin Do-Until-Loop

I NTRODUCCI ON:
Do-Until-Loop es similar a Do-While-Loop y a While-Wend, la diferencia esta en la en la forma en que
expresamos la condicion: por ejemplo en Do-While-Loop y While-Wend la condicion podria ser " ejecutar el
codigo mientras que la celda no este vacia" y en Do-Until-Loop seria "ejecutar el codigo hasta que la celda este
vacia".
Para comparar con Do-While-Loop y While-Wend vamos a sumar un rango de nmeros que estn ubicados en
una columna. En la hoja de clculo solo debemos poner los nmeros (sin dejar espacios en blanco) . Luego de
aplicar la macro el resultado deber quedar en la primera celda vaca.
Tambien en este caso sumaremos los mismos nmeros que en los ejemplos de Do-While-Loop y While-Wend
que introducimos en la columna "D" empezando por la "D1" y finalizando con la introduccin del N 283226
como se ve en la figura


el programa VBA es


Explicacin del cdigo (los nmeros representan las lneas de cdigo)
1- Siempre se empieza con Sub seguida del nombre de la macro y 2 parntesis (SumaColumna2()).
2- Seleccionamos la celda superior. "D1".
3- Asignamos a la variable sum (que es en la que quedar contenido el resultado) el valor de la celda
superior.
4- Esta lnea es la condicin para entrar o salir del While y quiere decir "ejecutar el codigo hasta que la celda
este vacia",
5- Aqu ya entramos en el While donde hay 2 lneas que se repiten hasta que la condicin no se cumpla.
6- La primera lnea dentro del While hace bajar una posicin la celda seleccionada, de esta forma podemos
acceder a su contenido y la segunda agrega este contenido a la variable "sum".
7-Con Wend Loop salimos o volvemos a entrar al ciclo segn se cumpla o no la condicin
8- Una vez que salimos del ciclo colocamos el resultado que queda en una celda activa.
9-Tanbien mostramos el resultado mediante un MsgBox (caja de mensajes)
10- Con esta lnea se cierra el programa

Finalmente una vez que aplicamos la macro, la hoja nos queda



Se puede ver que los resultados en la celda activa y en la caja de mensajes coinciden.
Estructura de iteracin For-Next

I NTRODUCCI ON:
Esta es una iteracin en la que sabemos de antemano cuantas veces se repetir el ciclo, por lo tanto no hace
falta una condicin para salir del mismo.
Para explicar For daremos un ejemplo muy simple:
Vamos a sumar los primeros 10 nmeros naturales. En la hoja de clculo solo debemos poner los nmeros (sin
dejar espacios en blanco) en una columna, que en este caso ser la D. Luego de aplicar la macro el resultado
deber quedar en la primera celda vaca , este debe ser 55 como se puede verificar haciendo la suma
manualmente.
Aprovechando las propiedades de For podemos poner los nmeros desde el cdigo


el programa VBA es


Explicacin del cdigo (los nmeros representan las lneas de cdigo)
1- Siempre se empieza con Sub seguida del nombre de la macro y 2 parntesis (Sum()).
2- El primer For es para colocar en la columna D los diez primeros nmeros naturales y significa: para la
variable i yendo de 1 hasta 10
3-Se coloca en la celda (i,4) el valor actual de i que se repite al entrar nuevamente en el For
4- Con Next i se incrementa i en 1 y se vuelve a entrar al For
5-Se selecciona la celda "D1"
6- Se coloca en la variable sum el contenido de la celda "D1" ( Sum acumula la suma de los 10 primeros n
narutales)
7-Se entra al 2 For
8 y 9-Dentro del For la primera lnea hace bajar una posicin la celda seleccionada, de esta forma podemos
acceder a su contenido y la segunda agrega este contenido a la variable "sum".
10-En esta lnea podemos salir o volver a entrar al For segn se haya llegado a 10 o no.
11- En la celda activa colocamos el valor de sum.
12-Tambien mostramos el resultado mediante un MsgBox.
13-Se termina el programa.

Quedando la hoja de calculo como se ve abajo

Estructura de iteracin For-Each-I n-Next

Hay dos variantes de esta estructura
1-En el primer tipo debemos especificar el rango en el que se realiza la iteracin
Como ejemplo hallaremos el promedio del rango A1:D4,dejando el resultado en la celda C7, para este ejemplo
pondremos valores enteros


Cdigo:


La parte ms importante del cdigo es

que significa: para cada celda del rango A1:D4 ejecutar el bloque

y cuando se llega a la ltima celda del rango, automticamente se hace la cuenta

luego se coloca el resultado en la celda C8

Cdigo para copiar y pegar
Sub PromedioRango()
Dim cell As range
Dim sum As Integer
Dim cant As I nteger
Dim prom As Variant
For Each cell I n range("A1:D4").cells
sum =sum +cell.Value
cant =cant +1
Next cell
prom =sum / cant
range("C8").Select
ActiveCell.Value =prom
End Sub
2-El segundo tipo utiliza la propiedad CurrentRegion, esta propiedad es muy interesante pues nos permite
seleccionar un rango cuyos lmites no se conocen ya que CurrentRegion devuelve el rango que rodea a una
celda seleccionada.
Podemos decir que CurrentRegion es un rango rodeado por filas y columnas en blanco. En la figura se puede
ver dos regiones de este tipo.

Utilizaremos estas regiones para obtener el promedio de las mismas, para lo cual empleamos el cdigo

Este cdigo sirve para las dos regiones, siempre y cuando se seleccione una celda de una u otra de acuerdo en
cual se quiera calcular el promedio. Por ejemplo si queremos calcular el promedio del rango de la zona de
contorno verde el resultado seria



En este caso hemos seleccionado la celda H3, pero se podra haber seleccionado cualquier otra

La diferencia con el caso 1 es

en la que

devuelve el rango de la regin actual.
Cdigo para copiar y pegar
Sub PromedioRegion()
Dim cell As range
Dim sum As Integer
Dim cant As I nteger
Dim prom As Variant
For Each cell I n ActiveCell.CurrentRegion.cells
sum =sum +cell.Value
cant =cant +1
Next
prom =sum / cant
range("D8").Select
ActiveCell.Value =prom
End Sub

Estructuras de desicion:
Estructura de decisin I f - Then - Else

I NTRODUCCI ON:
La estructura de decisin se llama as pues puede, luego de evaluar una condicin, ejecutar un bloque de cdigo
u otro.
Vamos a ver algunos ejemplos;
1- Comparar 2 nmeros ubicados en 2 celdas, y responder, en una tercera celda, si son iguales o no
Compararemos los N 59 y 63 ubicados en las celdas D1 y E1 respectivamente

para responder a la pregunta utilizaremos el siguiente cdigo


Explicacin del cdigo
1-Ttulo.
2-Si el valor del N que est en la celda "D1" es igual al que est en la celda "E1" , entonces se ejercita el
cdigo de la lnea 3.
3-Se coloca en la celda "D4" el texto "Los valores de D1 y E1 son iguales"..
4-Sino se da la condicin de la lnea 2 se ejecuta el cdigo de la lnea 5.
5 -Se coloca en la celda "D4" el texto "D1 es distinto que E1".
6-Se cierra el I f.
7-Se cierra el Sub
Cdigo para copiar y pegar
Sub Condicional()
I f ActiveSheet.Range("D1").Value =ActiveSheet.Range("E1").Value Then
ActiveSheet.Range("D4").Value ="Los Valores de D1 y E1 son iguales"
Else
ActiveSheet.Range("D4").Value ="D1 es distinto que E1"
End I f
End Sub
En nuestro caso el resultado se tiene que ver como en la figura



Esta estructura puede anidarse, lo que quiere decir poner otro I f en la lnea 3, 5 o ambas. Esto es necesario al
querer averiguar si los N son mayores, iguales o distintos, para hacerlo generamos otra macro en el mismo
libro que llamaremos, por ejemplo, Anidamiento

Cdigo:

Notar que el segundo I f se puso en la parte correspondiente al Else y se cierra antes que el primer I f. Se puede
tambin ver que hemos identado el cdigo para mayor claridad (cosa que recomiendo enfticamente)
Resultado



Cdigo para copiar y pegar:

Sub Anidamiento()
I f ActiveSheet.Range("D1").Value =ActiveSheet.Range("E1").Value Then
ActiveSheet.Range("D4").Value ="Los Valores de D1 y E1 son iguales"
Else
I f ActiveSheet.Range("D1").Value >ActiveSheet.Range("E1").Value Then
ActiveSheet.Range("D4").Value ="D1 es mayor que E1"
Else
ActiveSheet.Range("D4").Value ="E1 es mayor que D1"
End I f
End I f
End Sub

Se puede ver que este cdigo no est identado por lo que sugiero hacerlo como ejercicio.
Estructura de desicin Select-Case

I NTRODUCCI ON:
La estructura de decisin I f-Then-Else puede anidarse y como este anidamiento se puede repetir tantas veces
como el problema lo exija, a veces el cdigo suele hacerse confuso y frecuentemente da lugar a errores, en estos
casos se puede recurrir a la estructura de decisin Select-Case.
En primer lugar veremos que funciona igual que I f-Then-Else, para lo que utilizaremos el mismo ejemplo que
I f-Then-Else en la parte en que comparbamos 2 nmeros ubicados en las celdas D1 y E1 y el programa deba
responder si estos son iguales, mayores o menores, ubicando la respuesta en la celda D4
El cdigo es


escencialmente este cdigo evala el valor actual de la celda "D1" y se escribe un cdigo diferente de acuerdo
al caso de que este valor sea =, >o <que el valor actual de la celda "E1"
CODI GO PARA COPI AR Y PEGAR
Sub SelectCase()
A1 =Range("E1").Value
Select Case Range("D1").Value
Case I s =A1
ActiveSheet.Range("D4").Value ="Los Valores de D1 y E1 son iguales"
Case I s >A1
ActiveSheet.Range("D4").Value ="D1 es mayor que E1"
Case I s <A1
ActiveSheet.Range("D4").Value ="E1 es mayor que D1"
End Select
End Sub

La utilidad esencial de esta estructura se manifiesta cuando los casos que se evalan son mas numerosos como
veremos en el siguiente ejemplo.
I ntroducir en una celda la nota de un alumno y en otra una leyenda que diga si esta aplazado, aprobado y en
caso de estar aprobado si su nota fue buena, muy buena, distinguida o sobresaliente, teniendo en cuenta que:
Aplazado=1,2,3
Aprobado=4,5
Bueno=6,7
Muy bueno=8
Distinguido=9
Sobresaliente=10
se puede responder a estas preguntas aplicando este cdigo



CODI GO PARA COPI AR Y PEGAR
Sub SelectCase()
a =Range("A2").Value
Select Case a
Case 1 To 3
ActiveSheet.Range("B2").Value ="APLAZADO"
Range("E1").Select
Case 4 To 5
ActiveSheet.Range("B2").Value ="APROBADO"
Range("E1").Select
Case 6 To 7
ActiveSheet.Range("B2").Value ="BUENO"
Range("E1").Select
Case 8
ActiveSheet.Range("B2").Value ="MUY BUENO"
Range("E1").Select
Case 9
ActiveSheet.Range("B2").Value ="DI STI NGUI DO"
Range("E1").Select
Case 10
ActiveSheet.Range("B2").Value ="SOBRESALI ENTE"
Range("E1").Select
End Select
End Sub
El resultado final queda como se ve en la figura, en este caso hemos agregado un botn para disparar la macro,
el cual esta sealado por la flecha roja



Tipos de datos, funciones y subrutinas:
Variables simples y Tipos de datos

I NTRODUCCI ON:
Una variable simple es una porcin de memoria donde se puede almacenar un valor y se les debe dar un
nombre para identificarlas entre s, tambin estn asociados a un tipo de dato.
Un tipo de dato es el rango de valores que las variables pueden aceptar o, dicho de otra manera, la cantidad de
memoria que se reserva para albergar dicho rango. Por ejemplo la variable de tipo I nteger, puede guardar
valores en un entorno de -32.768 a +32.787 ocupando 2 bytes.
Todos los tipos de datos se resumen en la tabla de abajo.



Funciones

I NTRODUCCI ON:
Las funciones son un trozo de cdigo inserto en el programa principal que recibe uno, muchos o ningn valor
(parmetros o argumentos) y que a diferencia de las subrutinas devuelven un nico valor, por esta razn se
debe especificar( aunque no es obligatorio)de qu tipo de dato es dicho valor. Las funciones deben tener un
nombre que las identifique y as poder ser llamadas por el programa principal. Tambin nos permiten ampliar el
listado de las funciones que ya vienen por defecto en Excel, estas funciones estn asociadas a un libro o una
hoja de Excel y las denominamos Funciones personalizadas, son muy tiles,entre otras cosas, cuando la
frmula que se requiere para resolver un problema usando las funciones propias de las hojas Excel resulta muy
larga y complicada, haciendo casi imposible su comprensin.
Funciones personalizadas:
Empezaremos dando un ejemplo trivial de una funcin personalizada que podramos resolver sin recurrir a
ellas, este ejemplo es solo para mostrar como funcionan.
Supongamos que queremos multiplicar 2 nmeros enteros (en la figura el entero 12 y el 2)que estn en las
celdas A1 y C1 y que el resultado se devuelva en la celda B3, que obviamente se resuelve con la frmula
=A1*C1 ubicada en la celda B3, mentalmente podemos decir que el resultado es 24

pero lo haremos con una funcin definida por nosotros programada con VBA que llamaremos MULTI PLI CA()


Esta funcin ya esta disponible junto con las dems,(solamente en la hoja donde la definimos) como se puede
ver en el recuadro rojo, tambin puede verse que su definicin est entre Function y End Function

la usamos poniendo dos nmeros como argumento, tal como puede verse




Ahora daremos un ejemplo de una funcin definida por el usuario que tiene ms utilidad.
La ferretera EL BULON hace el 20% de descuento si las ventas superan las 100 unidades.
Esto se puede resolver con la funcin SI , como se puede ver en la siguiente figura


Resolveremos el mismo problema definiendo una funcin, que llamaremos DESCUENTO, con el siguiente
cdigo


ya definida la funcin DESCUENTO() la podemos aplicar

Se ve que el resultado es el mismo, pero si definimos la funcin DESCUENTO el proceso es mas rpido.
Como se habr notado en el ejemplo anterior, est permitido omitir el tipo de dato, pero es una buena costumbre
ponerlos, ya que nos puede ahorrar muchos problemas principalmente en la depuracin del cdigo en
programas largos (En otros idiomas, como en C, esto es obligatorio) por surte VBA tiene la posibilidad de forzar
el hecho de tener que poner obligatoriamente los tipos de datos con la instruccin Opcin xplicit al principio
de cada mdulo y mejor an, se puede configurar el editor de VBA para que se ponga automticamente esta
instruccin en todos los nuevos mdulos, esto se hace yendo a Herramientas->Opciones->Solapa Editor y en
ella tildando la casilla Requerir declaracin de variables, como se puede ver en la siguiente imagen


Ahora dar un ejemplo, que si bien puede resolverse con funciones (mas precisamente funciones matriciales)
les puedo asegurar que la solucin es muy complicada y es aqu donde se ve la verdadera utilidad de las
funciones personalizadas. Se trata de la obtencin de las iniciarles de un nombre completo.
Su cdigo es el siguiente:



usaremos la funcion recien definida en la siguiente tabla


Llegando a este punto debemos hacer algunas aclaraciones del cdigo
En primer lugar podemos ver que se usan las funciones de librera de VBA (funciones que ya estn definidas),
ms precisamente las funciones de cadena Len(), Asc() y Mid(). Una cadena es una serie de caracteres tratados
como una misma unidad, estos caracteres pueden ser letras, nmeros o caracteres especiales, como pueden ser
/, *, &, %, @ y otros muchos incluido el espacio. A todos estos caracteres les corresponde un cdigo numrico
llamado ASCI I . Estas funciones sirven para el manejo de cadenas, hay otras que iremos analizando cuando sea
necesario.
Funcin Len
Esta funcin nos devuelve el nmero de caracteres de una cadena, por lo tanto retorna un nmero entero y
recibe un parmetro que es un tipo de dato string.
Su sintaxis es: Len([cadena de caracteres])
Ejemplo: Si Texto="hola como estas" Len(Texto) devuelve el valor 15.
Funcin Asc
Con la funcin Asc podemos obtener el cdigo ASCI I de un caracter

Funcin Mid
Extrae partes de una cadena y recibe 3 parmetros.
Sintaxis: Mid(cadena, inicio, longitud)
El parmetro cadena es la cadena a extraer caracteres.
inicio es el carcter desde donde se comienza la extraccin.
longitud es la cantidad de caracteres devueltos a partir del carcter de inicio.
Dicho esto el cdigo se puede entender mas claramente
1 Function I NI CI ALES(Texto As String) As String
2 Dim strLong As Long, i As Long
3 Dim textTemp As String
5 strLong =Len(Texto)
7 For i =1 To strLong
8 I f Asc(Mid(Texto, i, 1)) >=65 And Asc(Mid(Texto, i, 1)) <=90 Then
9 textTemp =textTemp & Mid(Texto, i, 1)
9 End I f
10 Next i
12 I NI CI ALES =textTemp

14 End Function
Lnea 1: se da el nombre a la funcin (I NI CI ALES) y se define el nombre (Texto) y el tipo del parmetro que
recibe.

Lneas 2 y 3: se declaran las variables que se van a usar.
Lnea 5: se asigna a la variable strLong la longitud del string Texto, o sea que se cuentan cuantos caracteres
hay en la celda que contiene el nombre
Lnea 7: se entra en un ciclo for-Next que recorre el string Texto, o sea que comienza desde 1 y termina en
strLong.
Lnea 8: esta es la lnea ms importante. ya que en cada ciclo se evala cada carcter y determina si es una letra
mayscula (Asc>=65 o Asc<=90).
Lnea 9: Si es mayscula agrega el carcter a la variable strTemp.
Lnea 12: Al terminar la rutina, la funcin I NI CI ALES recibe el valor de strTemp que es donde se guardan las
iniciales.
Para comprobar que funciona dejo el cdigo para copiar y pegar
Function I NI CI ALES(Texto As String) As String
Dim strLong As Long, i As Long
Dim textTemp As String
strLong =Len(Texto)
For i =1 To strLong
I f Asc(Mid(Texto, i, 1)) >=65 And Asc(Mid(Texto, i, 1)) <=90 Then
textTemp =textTemp & Mid(Texto, i, 1)
End I f
Next i
I NI CI ALES =textTemp

End Function
FUNCI ONES DE HOJ A( NATI VAS):
Para definir funciones personalizadas, a dems de las funciones propias de VBA , se pueden usar las llamadas
funciones de hoja ( Work Sheet Functions en ingles) tambin llamadas funciones nativas, es decir las funciones
que normalmente estn disponibles en las hojas de Excel, como son , SUMA, BUSCARV, MAX, PROMEDI O,
COI NCI DI R, por nombras algunas. Para usarlas debemos anteponer al nombre de la funcin( que debe estar
en ingles) la expresin Application.WorkSheetFunction.[nombre de la funcin](parmetros).Si queremos usar
la funcin BUACARV, la expresin debe ser:

Application.WorkSheetFunction.VLookup(Valor a buscar, Matriz de bsqueda; Columna, Valor lgico)
Alternativamente:
WorkSheetFunction.VLookup() o Function.VLookup()
Como se puede ver los parmetros de la funcin son los mismos que los de las funciones nativas
Empezaremos dando un ejemplo en el que se usa la funcin DESREF que en ingles es Match. Como todos
sabemos la funcin BUACARV solo puede traer valores que estn en la misma fila del valor buscado pero en
columnas a la derecha de este, el problema se podria resolver con un anidamiento de las funciones I NDI CE y
COI NCI DI R, nuestro objetivo es definir una funcin muy parecida a BUSCARV pero que busque hacia la
izquierda, a esta funcin la llamaremos BUSCARVI ZQ
Supongamos que tenemos la siguiente tabla


y queremos:
A) I ntroducir la tabla en una hoja se Excel
B) Que dado el cdigo de producto se devuelva en dos celdas la herramienta y el precio de la misma
C) No emplear anidamiento de funciones
Como vemos el cdigo del artculo se encuentra en la columna central, por lo tanto para responder debemos
hacer una bsqueda a la izquierda y otra a la derecha, por lo tanto debemos recurrir a BUSCARV y a una
UDF( funcin definida por el usuario) que como ya dijimos llamaremos BUSCARI ZQ que definimos con el
siguiente cdigo:
Function BUSCARVI ZQ(valor_a_buscar, matriz_de_busqueda As Range, indice_de_Col As I nteger,
ValorExacto As Boolean)
Dim NrFila As Long
NrFila =Application.WorksheetFunction.Match(valor_a_buscar, matriz_de_busqueda.Resize( , 1),
ValorExacto)
BUSCARVI ZQ =matriz_de_busqueda(NrFila, 1).Offset(0, indice_de_Col)
End Function
ya estamos en condiciones de itroducir la frmula BUSCARI ZQ con sus parmetros

que ubicamos en la celda D16 y BUSCARV

que ubicamos en la celda D15, haciendo esto podemos reponder al punto B) como puede verse en la figura

marcamos con un recuadro rojo la frmula y el rango introducido, que como se ve es el mismo para ambas
frmulas, no as la columna que para BUSCARI ZQ es -1
EXPLI CACI ON DEL CODI GO
Function BUSCARVI ZQ(valor_a_buscar, matriz_de_busqueda As Range, indice_de_Col As I nteger,
ValorExacto As Boolean)
se da el nombre a la funcin y los parmetros, proporcionando el tipo de dato. Notar que no se da el tipo de dato
del parmetro valor_a_buscar ya que este puede ser una cadena de caracteres, un nmero o una combinacin
de ambos. Lo mismo podemos decir del parmetro que devuelve la funcin

Dim NrFila As Long
Se define la variable NrFila
NrFila =Application.WorksheetFunction.Match(valor_a_buscar, matriz_de_busqueda.Resize( , 1),
ValorExacto)
Se asigna a NrFila lo que devuelve la funcion Match (COI NCI DI R) donde se redimenciona la
matriz_de_busqueda con Recize
matriz_de_busqueda.Resize( , 1)
esto se hace para que la matriz de bsqueda seleccionada, que es rectangular, se transforme en una matriz
columna, ya que Match solo busca en rangos columna.
Veamos cono funciona:
Selection.Resize(12,4).Select
si el rango seleccionado inicialmente es C4:E12 , o sea 8 filas y 3 columnas, luego aplicar Resize el Rango
queda con 12 filas y 4 columnas
en nuestro caso el rango seleccionado es 11 filas y 2 columnas, como a las filas las queremos dejar igual no se
pone nada como primer parmetro y si,ademas, queremos que el rango final sea de una columna se pone( ,1)
as, el rango seleccionado queda un rango columna
Se podra haber omitido el Resize seleccionando solo el rango central, esto se hizo para que los parmetros sean
iguales a los de la funcin BUSCADV, salvo por el -1 de indice_de_Col
finalmente el cdigo
BUSCARVI ZQ =matriz_de_busqueda(NrFila, 1).Offset(0, indice_de_Col)
asigna a BUSCARVI ZQ el valor que est en la celda activa matriz_de_busqueda(NrFila, 1) desplazada una
celda a la izquierda(indice_de_Col ). Esto se logra con la PROPI EDAD Offset que seleciona celdas a cierta
distancia de la celda activa
por ejemplo:
ActiveCell.Offset(-5,2).Select
selecciona la celda que se encuentra 5 filas hacia arriba y 2 columnas a la derecha de la celda activa.
de otra manera:
Sheets(1).Range("C2").Offset(2,4).Select
a partir de C2 selecciona 2 filas hacia abajo y 4 columnas a la derecha, es decir C2 pasa a ser G4(C2 =G4),
tener en cuenta que 2 es fila y 4 columna.



como se ve Offset hace lo mismo que DESREF.
La programacin VBA tiene sus propias funciones como Mid y Len, que ya se describieron, estas permiten
trabajar con cadenas de caracteres, con nmeros, fechas, horas, mostrar mensajes por pantalla y muchas otras
que podemos listar por categoras, como sigue:
1-Funciones de conversin de tipos (Conversion)
2-Funciones Financieras (Financial)
3-Funciones de cadenas (Strings)
4-Funciones matemticas (Math)
5-Funciones de comprobacin (I nformation)
6-Funciones de I nteraccin(I nteraction)
7-Funciones de Fecha y Hora (DateTime)
8-funciones del sistema (FileSystem)
Macros

I NTRODUCCI ON:
Las macros son pequeos trozos de cdigo VBA que no deberan tener ms de 15 lneas y no devuelven un valor
en su nombre, como las funciones, sino que hacen tareas especificas, estas tareas muchas veces pueden
realizase manualmente y otras no, en definitiva sirven para automatizar Excel. Las macros pueden vincularse
entre s mediante la palabra recervada Call y de esta forma unirse para formar cdigos mas grandes
Estos cdigos por lo general se ejecutan a pedido del operador, pero tambin pueden hacerlo automticamente,
una forma es debido a que se produzca algn cambio en una hoja de Excel, como puede ser el cambio en el
valor de una celda. A estos cambios se los denomina EVENTOS y para que se ejecuten las macros, hay que
programar dichos EVENTOS.
La forma ms prctica de poner en accin una macro es mediante botones asociados a ellas. Para hacerlo
vamos a la pestaa programador y de all pulsamos el botn I nsertar para que se desplieguen los controles de
formulario, como se ve en la figura


al apretar el cono del botn aparece una cruz, ubicamos esta cruz en el lugar que nos parece conveniente y
arrastrndola, con el botn izquierdo del mouse apretado, podemos darle el tamao adecuado. Al soltar el
mouse tenemos algo parecido a esta imagen

simultneamente aparece un panel donde podemos seleccionar la macro que queremos asociar


al aceptar ya tenemos el botn asociado a la macro, posteriormente lo podemos rotular convenientemente.
A continuacion daremos un ejemplo prctico simple:
Un banco quiere dar de baja las cuentas que no tuvieron movimientos por 3 o ms aos, considerndolas
inactivas en dicho caso y activas en caso contrario.
El banco tiene un listado con las cuentas activas y no activas



Se quiere actualizar dicho listado, o sea eliminar las cuentas inactivas
Este listado tiene 14 clientes y se lo podra actualizar manualmente, pero si imaginamos que la lista tiene 5000 o
ms clientes, se tardara mucho tiempo, por tal motivo es un problema para resolver con una macro.
Coloquemos la lista en la hoja 1 de un libro de Excel 2007 o Excel 2003


insetamos el siguiente cdigo


Luego de de oprimir el botn que asociamos a la macro, que llamamos ActualizarListado, el listado queda


Cdigo para copiar y pegar
Sub ActualizarListado()
Range("E3").Select
Do While ActiveCell.Value <>""
I f ActiveCell.Value ="inactiva" Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End I f
Loop
Range("A1").Select
End Sub

Cuando se dispara una macro no hay vuelta atrs, si se borra un dato, este se pierde(a no ser que se cierre el
archivo no se guarden los cambios y se lo abra otra vez). Muchas veces podemos necesitar el listado original,
por ejemplo para obtener, en el caso que estamos tratando, otro con los clientes que fueron dados de baja, el que
se hara con una macro casi idntica a la dada ms arriba, que dicho sea de paso la confeccion un empleado
del rea de computacin del banco, al que le pidieron las dos listas a ltimo momento. Cacho (as le dicen al
empleado), que por suerte no haba apretado el botn ACTUALI ZAR, decidi hacer las dos cosas al mismo
tiempo, es decir: dejar en la Hoja1un listado con los clientes activos y en la Hoja2 los clientes dados de baja, a
esta hoja la renombro "Bajas", tambin copio como respaldo, el listado original en la Hoja3. Cuando termin el
trabajo le quedaron las siguientes macros

y para el rtulo de "Bajas"

"CopiaRotulo" es llamada por "ActualizarListado2" mediante la palabra reservada "Call"
Las dos listas quedaron como se ve
Lista de los clientes activos

Lista de los clientes dados de baja

Cacho pens que despus de todo, se hubiera tomado menos trabajo cerrando el archivo y abrindolo otra vez,
aunque pensndolo mejor se dijo "ya tengo hecha la macro y seguro que la voy a volver a usar.
Si, seguro que la iba a volver usar y esta vez todo el trabajo sera ms rpido.
Macros para copiar y pegar
Option Explicit
Sub ActualizarListado2()
Dim i As I nteger
Dim k As I nteger
k =1
Dim j As I nteger
j =1
Call CopiaRotulo
Sheets("Hoja1").Select
Application.CutCopyMode =False
Range("E3").Select
Do While ActiveCell.Value <>""
I f ActiveCell.Value ="inactiva" Then
Sheets("Bajas").Select
Range("E65536").End(xlUp).Offset(1, 0).Select
i =ActiveCell.Row
Range("C" & i).Value =Worksheets("hoja1").Range("C" & i +k - j).Value
Range("C" & i).I nterior.ColorI ndex =24
Range("C" & i).Borders(xlEdgeBottom).LineStyle =xlContinuous
Range("C" & i).Borders(xlEdgeLeft).LineStyle =xlContinuous
Range("C" & i).Borders(xlEdgeTop).LineStyle =xlContinuous
Range("D" & i).Value =Worksheets("hoja1").Range("D" & i +k - j).Value
Range("D" & i).I nterior.ColorI ndex =24
Range("D" & i).Borders(xlEdgeBottom).LineStyle =xlContinuous
Range("D" & i).Borders(xlEdgeLeft).LineStyle =xlContinuous
Range("D" & i).Borders(xlEdgeTop).LineStyle =xlContinuous
Columns("D:D").EntireColumn.AutoFit
Range("E" & i).Value =Worksheets("hoja1").Range("E" & i +k - j).Value
Range("E" & i).I nterior.ColorI ndex =24
Range("E" & i).Borders(xlEdgeBottom).LineStyle =xlContinuous
Range("E" & i).Borders(xlEdgeLeft).LineStyle =xlContinuous
Range("E" & i).Borders(xlEdgeTop).LineStyle =xlContinuous
Range("E" & i).Borders(xlEdgeRight).LineStyle =xlContinuous
j =j +1
Range("A1").Select
Sheets("Hoja1").Select
Selection.EntireRow.Delete
Else
k =k +1
ActiveCell.Offset(1, 0).Select
End I f
Loop
Range("A1").Select
End Sub
Option Explicit
Sub CopiaRotulo()
Range("C2:E2").Select
Selection.Copy
Sheets("Bajas").Select
Range("C2").Select
ActiveSheet.Paste
Columns("C:C").EntireColumn.AutoFit
Columns("D:D").EntireColumn.AutoFit
Columns("E:E").EntireColumn.AutoFit

End Sub
Nos podramos preguntar de donde se sac la tabla que uso Cacho, bueno, esta es realidad una base de datos de
la cual se ha obtenido la que tiene el rtulo ESTADO (cuenta activa, cuenta inactiva). La BASE DE DATOS
se obtiene de los FORMULARI OS que tenemos que llenar cuando decidimos sacar una cuenta corriente en un
banco
Este es un modelo real de formulario para la solicitud de una cuenta bancaria de una empresa

De la misma manera, una empresa, podra generar su propia BASE DE DATOS de clientes, recurriendo a la
capacidad que tiene Excel para generar FORMULARI OS, o podramos crear un directorio telefnico y esto es
justamente lo que haremos en el prximo ejemplo de macros pero sin recurrir a los formularios, tema que
dejaremos para despues..
En adelante, como se vio en caso del empleado del banco (Cacho), procurar presentar casos de la vida
cotidiana, con los que se puede encontrar el empleado de una empresa, o de una pyme, situaciones con las que
frecuentemente se ven involucrados profesionales de cualquier orientacin o de un usuario que en realidad no
sabe que esta frente a una aplicacin Excel
EJ EMPLOS PRACTICOS DE MACROS Y CODI GO VBA
DI RECTORI O TELEFONI CO
Se puede encarar el problema anterior usando formularios, este mtodo tiene la desventaja de que el cdigo se
complica un poco, lo que no debera sorprendernos ya que una celda es un objeto mas simple, pero como
veremos, las ventajas superan a las desventajas
DI RECTORI O TELEFONI CO ( USANDO FORMULARI OS)

CONSULTA EN UNA LI BRERIA

CONSULTA EN UNA LI BRERIA (USANDO FORMULARI OS)

TI CKET DE COMPRA

COMBOBOX (CUADRO COMBI NADO) ORDENADO ALFABRTICAMENTE

ALTAS, BAJ AS Y MODI FI CACI ONES

I NFORMES

DI RECTORI O TELEFONI CO

Este directorio telefnico se har sin recurrir a formularios, simplemente pasaremos los datos que introducimos
en tres celdas en la Hoja1 y los pasaremos a la Hoja2, que llamaremos DIRECTORI O

Colocamos los rtulos verticalmente en las celdas coloreadas en azul y en las celdas F6,F7,F8 los datos que
sern pasados a la Hoja DI RECTI RI O pero colocados horizontalmente, luego de aplicar la macro, disparada
con el botn I NTRODUCI R DATOS, todo debe quedar como se ve en la figura de abajo


A medida que se van agregando datos, se va formando el directorio
para hacer esto utilizaremos la siguiente macro en el mdulo 1

Para consultar el telfono y la direccin de alguna persona, en esta ocasin lo haremos utilizando frmulas



colocamos en la celda B6, el apellido y nombre de la persona cuyos datos queremos obtener y en la celda B7 la
frmula


para obtener el telfono y para la direccin la frmula

si la persona no est en el directorio aparece la leyenda "NO ESTA EN EL DI RECTORI O" como muestra la
figura




Descargar DI RECTORI O TELEFONI CO
DI RECTORI O TELEFONI CO (usando formularios)

Este directorio telefnico se har usando FORMULARI OS
Esta manera de encarar el problema tiene ms ventajas ya que con un solo formulario podremos introducir los
datos de nuestros contactos, consultarlos y darlos de baja. Por otro lado se puede dar al formulario un aspecto
ms profesional, lo que ser de mucha utilidad cuando se encaren problemas ms complejos
Accedemos al formulario entrando al editor VBA (Alt+F11) luego vamos a I nsertar y en el men desplegable
que se abre pulsamos en UserForm



y aparece el formulario y los controles con los que podemos configurarlo


Para nuestro formulario vamos a utilizar los comandos: Etiqueta ( Label) Cuadro de texto (TextBox) y botn de
comando ( CommandButton) marcados en rojo en la imagen, estos comandos estn numerados segun el orden
en que los `pnemos


con cada uno de ellos se insertan objetos cuyas propiedades se pueden cambiar en el explorador de propiedades
( tambin puede hacerse con cdigo), Para que aparezca las propiedades de cada objeto solo debemos pulsar en
ellos, por ejemplo en la figura pueden verse las propiedades de un botn al que se le han cambiado las
propiedades Name y Caption, cada una de ellas tiene un nombres por defecto; por ejemplo en la propiedad
Caption pusimos" I NSERTAR" (pues con este botn insertaremos los datos) y en nombre "cmdInsertar" . Esto
es muy importante a la hora de programar porque ayuda la claridad del cdigo (aunque ahora que lo pienso,
hubiera sido ms claro poner "btnInsertar", esto es a nuestro criterio), hemos hecho lo mismo son los otros
controles por ejemplo al TextBox1 lo cambiamos por txtApellidoNombre.



Como el formulario en si mismo tambin es un objeto le cambiamos el nombre por "usfDirectorio" al que le
cambiamos la propiedad Caption por "DI RECTORI O TELEFONI CO" .

Tambin nos har falta insertar un mdulo al que llamaremos " MostrarFormulario" en el que pondremos este
cdigo

se asignar a un botn en la Hoja1


que disparar la macro Iniciar_Captura y como consecuencia se mostrara el formulario de la figura


Ahora lo que nos resta hacer es programar todos los botones, que como puede verse no nos hemos privado a la
hora de ponerlos, la razn es que este directorio se puede adaptar para llenar y mantener una base de datos.
Debemos notar que solo hemos usado tres controles.
Para que los botones funcionen hay que hacer Click en ellos, entonces debeos programar el evento Click y para
hacerlo hay dos maneras: hacer doble click en el objeto "cmdInsertar" o pulsar en este mismo objeto, con el
botn derecho del mouse para que aparezca men en el que apretamos la tecla ver cdigo


en ambos casos vamos a la siguiente pantalla


donde podemos ver en la parte superior, el nombre del botn y el evento Click y el nombre de la macro
"cmdInsertar_Click" lista para que la programemos. Hay otros eventos a los que podramos acceder


pero en este caso nos interesa el evento Cick. Tambin podemos ver haciendo doble click en el formulario( o con
el botn derecho del mouse) todos los objetos que tenemos dentro del mismo



de esta manera haciendo doble Click en cada uno de los 6 botones podemos programarlos como puede verse
abajo


En programacin no hay una sola forma de hacer las cosas, y es probable que haya otro algoritmo ms
eficiente, el que est arriba me pareci fcil de entender, pero ms adelante haremos otra versin
CONSULTA EN UNA LI BRERI A

Una de las tantas veces que fui a una librera, me encontr con una computadora en la que se podan consultar,
entre otras cosas, los libros que haba en existencia, de un determinado autor. No s cmo lo habrn hecho pero
ahora lo vamos a hacer con las macros de Excel en una suerte de interaccin usuario computadora.
Lo primero que hacemos es renombrar tres hojas como se ve en la figura


"PRI NCI PAL" es la pantalla con la que se encuentra el eventual comprador al iniciar su consulta. Para que
tenga un aspecto ms profesional hemos diseado la pgina quitado los encabezados de fila y columna y puesto
la pantalla completa, tambin hemos colocado un cartel que oriente al cliente y un botn. Luego de poner un
color que me pareci adecuado, finalmente la pgina quedo como se muestra


El BOTON DE CONSLTA tiene adjuntada la macro principal en el mdulo1 y hay otras dos macros en el
mdulo 2 y 3 como se puede ver el inspector de proyectos

"AUTORES" es la hoja donde se debera poner una base de datos con todos los autores sus respectivos libros y
el precio de cada uno. Dije se debera colocar una base de datos yo me voy a conformar colocando una tabla
con algunos autores de ciencia ficcin, genero que, por cierto, me gusta mucho
TABLA 1

no son muchos datos pero servirn
AUTOR es la pgina donde va a ir una tabla solo con los datos del autor consultado. Por ejemplo si se pregunta
por Ray Bradbury la tabla debera ser
TABLA 2

que es el resultado de la consulta. Si se quiere hacer otra consulta se debe vaciar la tabla anterior y volver a la
pgina principal, esto se hace con un botn que llamaremos NUEVA CONSULTA que est asociado a una
macro ubicada en el mdulo3
TABLA 3

Lo que ve al usuario despus de apretar el BOTON DE CONSULTA es una pantalla que le pide que
introduzca un autor

al aceptar vamos a la pgina "AUTOR", con el resultado de la consulta como se ve en la TASLA 2
Lo que nos resta es decir cul es el cdigo de las macros que van en los mdulos
mdulo1

mdulo2

mdulo3

Como se puede ver, esta no es una macro aislada sino una aplicacin completa con cierto aspecto profesional,
que por cierto, puede mejorarse
CONSULTA EN LI BRERI A (usando formularios)

La consulta de un autor en una librera usando formularios, es una aplicacin completa muy similar a la que
no los usa, podramos decir que es solo la manera en que se muestran los informes, aun as podremos aprender
muchas cosas tiles que nos podrn servir en el futuro
Empezamos cambiando el nombre de tres Hojas como se ve en la figura

El consultante solo va a ver la Hoja "I NFORME" que tiene el siguiente aspecto



en esta agregamos un calendario y un reloj en la parte superior, aparte de dos imgenes alusivas a los libros,
por otro lado la pgina se abre en pantalla completa y como se puede ver est el "BOTON DE CONSULTA"
donde al apretarlo aparece la pantalla para ingresar el autor a consultar.


Y aqu viene la diferencia, luego de aceptar aparece otra pantalla con el informe



Esta pantalla no es otra cosa que un formulario que contiene un cuadro de lista y el botn "VUEVO
I NFORME" para hacer otra consulta,
Vamos a las macro: en la imagen podemos ver el inspector de proyectos



Como se ve tenemos muchos lugares donde colocar las macros como sin ThisWorkbook, UserForm1 y los
mdulos Copia Rotulo, LimpiaInforme, "MuestraFormulario" y "Principal"

En ThisWorkbook ponemos la macro para la fecha, reloj y pantalla completa seleccionando el evento open
del objeto Workbook (se bebe hacer clik en la pantalla)


En el UserForm1 hay dos objetos:
1- ComandButton1: este objeto es el botn cuya etiqueta es "NUEVO I NFORME". En el I nspector de
"Propiedades" se pueden cambiar estos nombres a otros, que por alguna razn, consideremos convenientes. En
este caso dejamos la propiedad (Name) en su valor por defecto y a la propiedad "caption" le dimos el valor
"NUEVO I NFORME" , como se puede ver en la figura.



Este objeto pertenece a la clase "CommandButton" como cualquier botn que est en un formulario
2-ListBox1: pertenece a la clase "ListBox" y no hemos cambiado su nombre por defecto como se muestra en la
figura



Como vemos en la imagen estos dos objetos pertenecen a una clase mas general llamada UserForm



Lo expuesto es fundamental para programar los objetos y sus eventos

Para programar ComandButton1 lo seleccionamos y elegimos el evento Click


Captamos los datos de la consulta inicializando el "UserForm"


Finalmente las macros quedan as



MODULOS
Se insertaron cuatro mdulos con distintos nombres para mayor claridad
1-MuestraFormulario: esta simple macro ser llamada por Principal, para que mustre la pantalla con el
informe



2- LimpiaInforme : esta macro (Macro1) limoia los datos del rango "LI BROS" que est en la Hoja
"AUTOR"


3 Copia Rotulo: en este ndulo est la macro "CopiaRotulo" cuya funcin es copiar el rtulo de la base de
datos de la Hoja"autores" (en nuestro caso es una tabla) en la Hoja "AUTOR"



4-"Principal": este mdulo tiene la macro "LibrosAutor" que es casi idntica a la macro principal de
CONSULTA EN UNA LI BRERIA , la diferencia es que al final, cuando se sale del while, se llama a la macro
"MostrarFormulario" como se muestra con la flecha




Y as terminamos la explicacin de CONSULTA EN LI BRERIA (usando formularios) que espero haya sido
clara.
Hasta la prxima.

TI CKET DE COMPRA

Este es un tutorial que programa los tickets de compra de un supuesto delivey que vende plantas y flores,
llamado BestFlowers, este negocio pega estos Tickets en las cajas donde pone la mercadera con el detalle de los
productos y su importe antes de enviarlos a destino.
Una caracterstica, general de los tickets es su baja calidad esttica y de impresin, con Excel esto se mejora ya
que se pueden insertar imgenes de logotipos o hacerlos con WordArt y tiene a su disposicin una amplia
variedad de fuentes, por otro lado la impresin se har con una impresora comn, papel de alta densidad y no
con una ticketeadora (que por cierto tiene otras ventajas). Otra caracterstica de los tickets es que no se dejan
filas vacas, como pasa con las facturas, nuestro ticket cumplir con esto tambin. Veamos dos ejemplos de lo
que tenemos que hacer
;
.
como se ve los nmeros de ticket son consecutivos y no hay filas vacas ya que estas se agregan a medida que se
integran nuevos productos. Obviamente para imprimir el segundo ticket hay que vaciar los contenidos del
primero.
Para agregar filas se parte poniendo en la fila 12 las siguientes frmulas:
Celda B12:


Celda D12:

estas frmulas deben ser copiadas, automticamente, a las celdas B13 y D13 al colocar el cdigo de un producto
en la celda A13, completndose la fila al colocar la cantidad de unidades. El proceso continua a medida que se
agregan nuevos cdigos en las filas subsiguientes.
Estas acciones se hacen con la siguientes macros "Copiaformula" (mdulo 1) y "AgregaFila" (mdulo 2).las
cuales deben entrar en accin sin nuestra intervencin, puesto que de lo contrario se perdera el carcter
automtico.






Para hacer esto, "Copiaformula" y "AgregaFila" deben ser llamadas dentro de otra macro que se activa
cuando en un objeto cambia alguna propiedad, En nuestro caso puede ser el cambio de las celdas D13 a D33 de
la Hoja1, que podran cambian de estar vacas a tener el cdigo de un producto en su interior. A este cambio se
lo denomina EVENTO, en este caso nos interesa los eventos de las Hojas o "Worksheet events" que responden
a cambios en una Hoja, como el cambio en una celda o rango de celdas (en nuestro caso sera el rango D13 :
D33), pero este no es el nico evento. Podemos unvestigar todos los eventos disponibles para Worksheet, para
esto hacemos doble click en la Hoja1 del esplorador de proyectos veremos que si desplegamos la ventana
"General" aparecer el objeto Worksheet asociado solo a esta Hoja, como se ve en la imagen


y haciendo click en el botn desplegable de la ventana que est al lado podemos elegir entre todos los eventos
del objeto Worksheet


por defecto est "SelectionChange", que es el evento que se produce cuando se selecciona una celda o un
rango de celdas. Pero podramos haber usado cualquier otro de la lista que considerasemos conveniente, en
nuestro caso elegimos Change y automticamente se genera la macro "Workseet_Change"


que es la que tiene que llamar a "Copiaformula" y "AgregaFila". Finalmente la macro Worcksheet_Change es
la siguiente, una vez que se le inserta el cdigo


Nos falta hacer dos cosas, indispensables para que nuestro Ticket este preparado para un prximo cliente,
vaciar su contenido e incrementar su numeracin en una unidad.
Vaciar el contenido del Ticket
Para vaciar el contenido, vamos a la pestaa "Programador" y en la seccin "Controles" pulsamos
"ModoDiseo y luego "I nsertar" para insertar un botn Active x.



que colocamos en el lugar que nos parezca conveniente


Pulsando en "propiedades" podemos cambiar la propiedad Caption por Borrar y tambin cambiar el nombre
con que se lo identifica por "cmdBorrar" en lugar de "CommandButton1", esto ltimo es una buena costumbre
ya que si hubieran muchos botones(cosa que ocurre con mucha frecuencia) podramos identificar rpidamente
su funcin


El "cmdBorrar" es un objeto y est disponible en la ventana de objetos, luego haciendo click en el botn
desplegable lo seleccionamos y elegimos el evento Click.



Como antes aparece una macro "cmdBorrar_Click" automticamente

en la que se llama a la macro "Borrar", cuyo cdigo es


I ncrementar automaticamente el N del Ticket
Aqu tambin recurrimos a objetos y eventos. El objeto es el cuaderno que contiene la "Hoja1" donde est el
ticket, por lo tanto hacemos doble click en "ThisWorkBook" seleccionamos el objeto" WorkBook" y como
evento "befoPrint", como se puede ver en el editor VBA, o sea que despus de imprimir el Ticket, este cambia la
numeracin


Finalmente el cdigo que ponemos es


Una cosa importante es no olvidarse, despus de imprimir, de vaciar los contenidos con el botn Borrar.
Nota: lo mas pronto que pueda, explicar detalladamente los cdigos.
COMBOBOX(CUADRO COMBI NADO)ORDENADO
ALFABETI CAMENTE


Es muy til ordenar un ComboBox alfabticamente, porque nos facilita enormemente encontrar los datos,
espacialmente cuando estos son muchos.
Supongamos que una agencia de alquiler de autos tiene todo su stock cargado en un ComboBox inserto en un
FORMULARI O, de manera tal que cuando se elige un marca aparezcan todas sus caractersticas, tales como:
estado, ao, kilometraje, color, si esta en servicio o en el taller, si tiene aire acondicionado, etc. Las marcas y
modelos se buscaran por orden alfabtico en un cuadro combinado, apareciendo las caractersticas en los
respectivos cuadros de texto (textBox). Para esto la agencia disponen de una planilla con los datos antes
mencionados que sern la fuente de donde se cargar el ComboBox, como se muestra en la figura

el listado podra ser mucho ms extenso amplindolo mediante otro formulario.
Como se puede ver la planilla tiene 7 columnas, por lo tanto debemos elegir por cul de ellas se har el orden.
En este caso nos decidimos por la columna "B" en orden ascendente.
Empezamos abriendo el editor de VBA (Alt+F11) y diseamos un Formulario al que renombramos
"usfMarcasyModelos", asimismo insertamos el modulo1 y el modulo2. El Formulario deber ser semejante al
de la figura.



Luego cambiamos los nombres de los objetosTextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6
por txtCodigo, txtAo, txtColor, txtAire, txtDisponibilidad, txtUbicacion respectivamente y al ComboBox1 por
cmbMarcaModelo. Estos cambios de nombres son muy tiles para saber qu es lo que contiene cada TextBox,
en especial cuando hay muchos. Lo siguiente es cargar el ComboBox con la columna segn la cual queremos
hacer el orden, para esto hacemos doble cick en el formulario(que es un objeto) y nos aparece por defecto lo
siguiente


que nos invita a programar el UserForm con el evento click, pero nosotros queremos el evento initialize, por lo
tanto lo buscamos en la parte superior derecha (donde dice click)



apareciendo, una vez borrada la macro "Userform_Click, la macro que tenemos que programar

seguidamente insertamos el siguiente cdigo


a estas alturas ya tenemos cargado nuestro Cuadro Combinado pero sin estar ordenado alfabeticamente


Para que esto ocurra debemos llamar a la macro ordenar_arrastre, sealada por la flecha(ubicada en el
mdulo2)

descomentando la lnea de la flecha roja. Ahora s aparece ordenado



Casi lo nico que nos falta es programar una macro para que aparezca el estado del vehculo con sus
caractersticas, esta macro involucra al objeto "cmbMarcaModelo" y al evento "change"



Lo que viene es asignar una macro a un boton ( en la Hoja1) para que aparezca el Formulario


y para terminar progra mar el botn "SALI R"



Esto es todo, en el prximo TUTORI AL veremos cmo agregar datos a la planilla y que estos sigan ordenados.
ALTAS, BAJ AS Y MODI FI CACI ONES


No se me ocurre que una empresa puede no necesitar una aplicacin de ALTAS, BAJ AS Y
MODI FI CACI ONES, en nuestro caso continuaremos con la empresa de renta de autos, que apropsito se llama
RODANDO RENTA CAR.
La descripcin de la aplicacin consiste en cuatro botones que al oprimirlos hacen surgir cuatro pantallas
(formularios), el primero muestra en que situacin se encuentra cada vehculo en el momento presente. El
segundo es el formulario de ALTAS, el tercero el de MODI FI CACI ONES y por ltimo el de BAJ AS, como se
muestra

FLOTA DE VEHI CULOS (consulta)

En esta pantalla se busca la marca y modelo del vehculo que aparece en una lista ordenada alfabticamente en
forma descendente en un comboBox, luego de seleccionar un vehculo, aparecen algunas caractersticas del
mismo que le pueden interesar al cliente; entre otras, una foto y si esta disponible para ser alquilado( textBox
DI SPONI BLE) etc.
AGREGAR VEHI CULOS
En esta pantalla se agregan nuevas unidades, en este punto se existe la posibilidad de agregar una misma
marca y modelo, pudiendo surgir un problema si no se los diferencia de alguna manera ya que al buscarlos y
querer hacer una consulta sobre ellos, solo aparecer el primero que este en la lista. La solucin es muy simple,
tomemos como ejemplo el SALEEN S331, si quisiramos agrega el mismo modelo podramos diferenciarlo
ponindole el nombre SALEEN S331-2, como se ve en la imagen

.de esta manera aparecen las dos unidades.
CAMBI AR ESTADO DE UN VEHI CULO

Aqu el vehculo ha cambiado el estado de estar en disposicin de ser alquilado a lo contrario.

SACAR VEHI CULO DE LA FLOTA

Esta es la pantalla en la que por mltiples motivos se considera que el vehculo ya no puede pertenecer a la flota
(destruccin total, mucho kilometraje, modelo antiguo, etc.)
Es de fundamental importancia que cuando se haga algn cambio en las pantallas de ALTAS, BAJ AS o
MODI FI CACI ONES, este se actualice inmediatamente en cualquiera de los formularios. Tambin hay una
advertencia en la pantalla de altas que nos alerta si algn campo quedo sin llenar, otra advertencia en la
pantalla de modificaciones que tambin nos advierte si estamos seguros de las modificaciones que hicimos y por
ltimo una advertencia en la pantalla de bajas que nos dice si estamos seguros de la eliminacin.
Debo aclarar que las fotos de los autos se deben colocar en este caso en una carpeta junto con el archivo de la
aplicacin, esto no sera necesario si ponemos la ruta completa donde se encuentra la carpeta con los vehculos
siendo muy sencilla la modificacin del cdigo.
Por ltimo podramos insertar la totalidad de la flota desde el formulario de ALTAS.
Ahora vamos a mostrar los cdigos correspondientes a cada uno de los FORMULARI OS, con algunos
comentarios
CODI GO DE FLOTA DE VEHI CULOS (I NFORME)


CODI GO DE ALTAS


CODI GO DE BAJ AS


CODI GO DE MODI FI CACI ONES


Como ya se dijo, al descargar el archivo, poner las imgenes en la misma carpeta que la aplicacin. He puesto
muchas imgines para que se puedan agregar y eliminar.
Hasta el prximo tutorial.
I NFORME SOLI CI TADO POR UN USUARI O

Una de las cosas ms importantes que una buena aplicacin puede brindarnos es una correcta y abundante
informacin, en la que juega un papel central la correcta actualizacin de los datos (ALTAS BAJ A Y
MODI FI CACI ONES).
Vamos a hacer un informe solicitado por un usuario: si un cliente desea alquilar un SEDAN, el programa
debera poder informar si hay disponibilidad de algn vehculo de este tipo y de no haberla, la fecha ms
cercana para la cual podremos disponer de uno (este informe no lo daremos aqu), solo por dar un ejemplo de
las preguntas que se pueden formular y las respuestas que el programa puede dar.
Siguiendo el ejemplo, un cliente podra solicitar un SEDAN de cualquier marca, sera interesante que se
desplegara una pantalla informando si hay uno o no; pues esto, no muy complicado, es lo que ser nuestro
primer informe, en este caso los datos estn en la hoja Flota.

PANTALLA PRI NCI PAL: al apretar el botn "TI PO DE VEHI CULO EN AGENCI A" aparecer la pantalla
emergente donde quien maneja el programa puede introducir el tipo de vehculo solicitado, en este caso un
SEDAN, luego de oprimir el botn aceptar


debe aparecer una pantalla con la informacin



para suerte del cliente hay 2 SEDANES disponibles, uno gris y otro rojo. Podamos haber incluido en la
pantalla el modelo, que es una informacin que podra I nteresar. Si apareciera la pantalla en blanco significa
que no hay ningn SEDAN en la agencia, aunque sera mas prolijo que apareciera la leyenda " EL MODELO
SOLI CI TADO NO ESTA DOSPONI BLE" o " LA AGENCI A NO DI PONE DE ESE MODELO" o mejor an "
LO SENTI MOS, EN LA AGENCI A NO HAY UN MODELO SEDAN", nos decidimos por esta ltima leyenda.
Hacer esto es muy simple, solo hay que modificar un poco el cdigo que ya existente.
Cambiamos el siguiente trozo de cdigo cuando se sale del Loop

por este otro

Tambin debemos agregar un userform2 codificado como sigue



Con estos cabios cuando preguntamos por un modelo que la agencia no tiene, por ejemplo "RURAL", aparece
la siguiente pantalla


que queda mucho mejor que una pantalla vaca

Potrebbero piacerti anche