Beruflich Dokumente
Kultur Dokumente
Cmo es que Excel puede calcular una fecha futura con una simple suma? Para
poder comprender mejor este comportamiento de la herramienta debemos conocer la
manera en que Excel trabaja con fechas.
De esta manera sabemos que la fecha 01/01/1900 tiene asignado el nmero 1 y por lo
tanto cualquier otra fecha ser un nmero entero que representar la cantidad de das
que han transcurrido a partir del 01/01/1900. En la siguiente imagen he agregado una
columna donde he copiado las fechas del ejemplo anterior y he cambiado su formato a
General para ver el nmero entero que le corresponde a cada fecha. Posteriormente, he
abierto el cuadro de dilogo Formato de celdas, donde al seleccionar la categora
General se muestra el nmero entero correspondiente a la celda D2:
Observa que la fecha final tiene asignado el nmero 41285 que es precisamente la suma
de 41275 + 10. Es por esta razn que los clculos con fechas son muy fciles de realizar
para Excel ya que realmente estar trabajando con nmeros enteros que podr sumar o
restar fcil y rpidamente.
Como hemos aprendido hasta ahora, si sumamos un valor entero a una fecha estaremos
sumando cierta cantidad de das. Ahora hagamos un ejemplo con mayor grado de
complejidad y que es calcular la fecha de parto de un beb a partir de una fecha
determinada.
Para realizar este clculo utilizar la Regla de Naegle que indica que la fecha probable
de parto se obtiene de la siguiente manera: A partir de la fecha de la ltima regla de la
mujer sumar un ao, restar tres meses y finalmente sumar 7 das. Hagamos este clculo
paso por paso.
Para sumar un ao a la fecha inicial podra sumar el valor 365, pero har uso de las
funciones FECHA, AO, MES y DIA para comprobar su funcionamiento. As que
considera la siguiente frmula:
=FECHA(AO(A2)+1, MES(A2), DIA(A2))
La funcin FECHA genera una fecha vlida en Excel a partir de los valores numricos
del ao, mes y da. En este caso obtendr el ao de la fecha original que se encuentra en
la celda A2 y le sumar el valor 1 con lo cual obtendr de inmediato el valor del ao
siguiente. Posteriormente indicar tanto el mes como el da de la fecha original. Observa
el resultado de esta frmula:
El siguiente paso para calcular la fecha de parto indica que debemos restar tres meses al
resultado anterior y para eso utilizar de nueva cuenta la funcin FECHA de la siguiente
manera:
=FECHA(AO(B2), MES(B2)-3, DIA(B2))
Observa que en esta ocasin ser el segundo argumento de la funcin FECHA el que
sufra una modificacin para indicar que deseo restar tres meses a la fecha original.
Como resultado obtendremos la fecha deseada:
Como ltimo paso, el procedimiento de clculo nos indica que debemos sumar 7 das a
la fecha anterior por lo que ser necesario hacer dicha suma en el tercer argumento de la
funcin FECHA tal como lo puedes observar en la siguiente imagen:
De esta manera hemos calculado una fecha futura a partir de una fecha inicial
conociendo la cantidad de aos, meses y das a sumar o restar. Y como seguramente lo
estars deduciendo, todo el clculo anterior se puede hacer con una sola frmula de la
siguiente manera:
=FECHA(AO(A2)+1, MES(A2)-3, DIA(A2)+7)
Tengo una columna de datos con fechas de inicio de contratos y una segunda columna
con la duracin de cada uno de ellos. Necesito una tercera columna que calcule la fecha
de vencimiento del contrato.
Duracin en das
Duracin en meses
Por el contrario, una duracin en meses nos obliga a utilizar algunas funciones para
obtener el resultado correcto. La primera funcin que utilizaremos ser la funcin
FECHA, la cual nos ayuda a obtener una fecha en base a un nmero de ao, mes y da.
Considera la siguiente frmula:
=FECHA(2011, 12, 14)
Con esta frmula obtendremos una fecha para el 14 de diciembre del 2011. Esta funcin
ser clave para calcular la fecha de vencimiento de nuestro ejemplo porque es
precisamente el segundo parmetro de la funcin (los meses) donde haremos la suma de
la duracin del contrato para obtener la fecha de vencimiento correcta. Iremos paso por
paso.
El primer parmetro de la funcin FECHA es el ao por lo que utilizar la funcin AO
para extraer el ao de la fecha de inicio de la siguiente manera:
El paso final ser extraer los das de la fecha de inicio con la funcin DIA.
Excel har los clculos adecuados por nosotros y nos devolver la fecha de
vencimiento al transcurrir el nmero de meses especificado.
En caso de que tuviera la duracin del contrato en aos, entonces debo hacer un
procedimiento similar al anterior solo que la suma de la duracin se debe incluir en el
primer argumento de la funcin FECHA que es el parmetro para el ao.
Calcular el tiempo transcurrido
Calcular la diferencia entre dos fechas en Excel es algo muy sencillo. En este artculo
mostrar cmo calcular ese tiempo transcurrido entre ambas fechar y presentar el
resultado en diferentes unidades de tiempo como aos, meses, semanas, etc.
Supongamos que tenemos la fecha de nacimiento de una persona y queremos calcular el
tiempo que ha vivido hasta el da de hoy. Observa la siguiente imagen:
Puede observar que la lnea que se encuentra sombreada es la de los das transcurridos y
la razn principal es porque esa es la operacin ms sencilla de todas. Para obtener la
cantidad de das entre dos fechas es suficiente con realizar una resta entre ambas. En
este ejemplo la frmula utilizada es: =B3-B2
Excel regresar el tiempo transcurrido en das utilizando decimales y por motivos de
presentacin se los he removido, sin embargo t puedes dejar el formato con decimales
si as lo deseas.
Calcular las horas, minutos y segundos
El siguiente paso natural es calcular las horas, lo cual es sumamente sencillo una vez
que tengo el nmero de das. Solamente debo multiplicar el resultado en das por 24:
=A8 * 24
Y una vez que tengo las horas puedo obtener los minutos haciendo una multiplicacin
por 60 que es la cantidad de minutos en una hora: =A9 * 60
Finalmente, y como has de suponer, para obtener los segundos multiplico el resultado
anterior de nuevo por 60: =A10 * 60 y as obtengo los segundos transcurridos entre
ambas fechas.
Tiempo en semanas
Como puedes observar el clculo de das es la parte central para el resto de clculos y
las semanas no son la excepcin ya que las podemos obtener fcilmente realizando una
simple divisin: =A8 / 7
Das laborables
El clculo de das laborales entre dos fechas ya no lo podemos realizar con una simple
operacin aritmtica, pero afortunadamente existe la funcin DIAS.LAB la cual realiza
el clculo por nosotros, solamente es necesario especificar ambas fechas como los
argumentos de la funcin y Excel nos devolver el resultado correcto: =DIAS.LAB(B2,
B3)
Meses y aos
Obtener los meses es una tarea un tanto ms complicada, porque los meses no tienen la
misma cantidad de das. Lo mismo sucede con los aos ya que tenemos los aos
bisiestos los cuales tienen un da adicional.
Sin embargo Excel provee de una funcin que nos ayuda con este clculo, pero debo
advertirte que sta no es una funcin tradicional, de hecho no la podrs encontrar en la
documentacin de Excel y sin embargo la podremos utilizar. La funcin es conocida
como la funcin SIFECHA y aunque en este artculo no entrar en los detalles de sta
funcin observa cmo me ayuda a obtener los meses transcurridos entre dos fechas:
Espera el siguiente artculo donde hablar con mucho ms detalle sobre la funcin
SIFECHA la cual ha permanecido oculta por mucho tiempo y an sigue presente en
Excel 2010.
Fechas en Excel
Excel almacena una fecha como si fuera un nmero entero. Al utilizar un sistema como
ste, Excel puede sumar, restar y comparar fcilmente las fechas sin necesidad de hacer
alguna conversin ni clculo especial.
Por ejemplo, la fecha 1/1/2000 est representada por el nmero de serie 36526 y la
fecha 05/10/2000 tiene asignado el valor 36804. Como puedes imaginar, al realizar una
operacin con fechas se utiliza su nmero de serie para facilitar las operaciones.
El primero y ltimo da de Excel
Excel reconoce todas las fechas posteriores a 1/1/1900. Es por eso que el primer da del
ao 1900 tiene asignado el nmero 1. Por el contrario, el ltimo da que Excel reconoce
es el 31/12/9999 el cual tiene asignado el nmero 2958465.
Valor numrico de una fecha
La funcin FECHA
Esta funcin es de gran utilidad para convertir datos a un formato fecha en caso de que
tengas el da, mes y ao en columnas separadas. Una vez convertidos al tipo de dato
adecuado se podrn hacer operaciones con las fechas sin dificultad alguna.
Das laborables con Excel
La funcin DIAS.LAB nos ayuda a obtener el total de das laborables entre dos fechas,
sin embargo tiene un inconveniente y es que asume que los das de fin de semana son el
sbado y el domingo. Qu hacer si queremos considerar das de fin de semana
diferentes?
La funcin DIAS.LAB
La funcin DIAS.LAB.INTL permite especificar los das del fin de semana que deseo
utilizar. Observa cmo al introducir la frmula Excel me permite seleccionar el fin de
semana adecuado:
Al elegir los das viernes y sbado como el fin de semana a considerar, el resultado de
das laborables para el mes de enero del 2011 cambia a 22 das.
Varios pases del medio oriente tienen un fin de semana establecido en los das viernes y
sbado, lo cual ha sido una de las razones por las que se ha introducido la funcin
DIAS.LAB.INTL en Excel.
Aunque es poco probable que ests leyendo este artculo desde alguno de estos pases,
es ms probable que alguna vez tengas algn trato comercial con alguno de ellos o
simplemente la compaa donde laboras desea hacer un clculo de das laborables
utilizando algn da de la semana en especial.
Frmula para convertir grados decimales a grados, minutos y segundos
10.46 = 102736
36.30 = 36180
132.39 = 1322324
Aunque nuestro impulso inicial sera implementar una frmula en Excel que haga la
conversin paso por paso tal como lo describe el algoritmo de la seccin anterior, la
verdad es que en Excel existe un mtodo mucho ms sencillo.
La solucin se basa en el hecho de que las horas ya tienen un sistema de medicin
sexagesimal y Excel opera perfectamente con dicho sistema. Por si no lo sabes, las
fechas en Excel son nmeros enteros entre 1 y 2958465, adems el tiempo en Excel
tambin es representado por nmeros decimales entre 0.0 y 0.99999999. As que bajo
este principio seguiremos los siguientes pasos para realizar la conversin en Excel.
1. Dividir el valor decimal entre 24 para obtener su equivalencia en das
y horas de acuerdo al sistema de medicin de Excel.
2. Aplicar el formato adecuado al resultado anterior para desplegarlo
como horas, minutos y segundos el cual es tambin un sistema de
medicin sexagesimal.
Bajo este entendido, si los grados decimales se encuentran en la celda A2, la frmula a
utilizar ser la siguiente:
=TEXTO(ABS(A2/24), "[h] mm' ss''")
La funcin ABS nos ayuda a obtener el valor absoluto de los grados decimales divididos
entre 24 el cual ser un valor expresado en das y horas de Excel. El siguiente paso es
aplicar el formato adecuado a travs de la funcin TEXTO. Observa que el formato de
las horas se coloca entre corchetes [] para indicar a Excel que muestre los das como
horas. El resultado de aplicar esta frmula es el siguiente:
Los valores decimales mostrados en la imagen son los mismos valores de ejemplo
utilizados previamente y los valores sexagesimales devueltos por nuestra frmula son
exactamente los mismos que hemos obtenido por el procedimiento descrito en la
seccin anterior.
De esta manera la funcin TEXTO nos ayuda a convertir grados decimales a grados,
minutos y segundos de una manera rpida y eficiente en Excel.
INICIO
FUNCIONES
ACERCA
Excel es una herramienta ampliamente utilizada para generar reportes, los cuales
dependern de la precisin y calidad de los datos, por lo que en ms de una ocasin
necesitaremos eliminar datos repetidos en Excel para poder generar reportes efectivos.
No importa de dnde provengan los datos, la realidad es que ser una accin que
tendremos que realizar frecuentemente por lo que es importante conocer las diferentes
alternativas que tenemos para eliminar duplicados en Excel.
Eliminar repetidos con Filtro avanzado
La primera alternativa que podemos utilizar es el Filtro avanzado que est ubicado en la
ficha Datos > Ordenar y filtrar > Avanzadas. Al hacer clic en el botn Avanzadas se
mostrar el cuadro de dilogo Filtro avanzado donde debemos asegurarnos de elegir las
siguientes opciones:
Al hacer clic en el botn Aceptar se har una copia de los registros nicos y sern
colocados en la celda indicada:
De esta manera habremos eliminado los datos repetidos sin haber modificado los datos
originales. Este mismo mtodo lo podemos utilizar para eliminar datos repetidos en ms
de una columna, por ejemplo, en la siguiente imagen puedes observar que he obtenido
los valores nicos de la combinacin de columnas Nombre y Apellido.
La nica diferencia con el primer ejemplo es que ahora estoy pidiendo a Excel copiar
los registros nicos que se encuentran en las columnas A y B y como resultado obtendr
los valores en las columnas D y E. El mtodo del Filtro avanzado para la eliminacin de
datos repetidos es ampliamente utilizado ya que dicho comando ha estado presente
durante varias versiones de Excel.
El comando Quitar duplicados
A partir de Excel 2007 se introdujo el comando Quitar duplicados que con un solo clic
nos permite eliminar los datos repetidos del rango que hayamos seleccionado
previamente. El comando Quitar duplicados est localizado en la ficha Datos, dentro
del grupo Herramientas de datos. Al pulsar este comando se mostrar el siguiente
cuadro de dilogo:
Otro mtodo que podemos utilizar para eliminar datos repetidos en Excel es utilizar
una tabla dinmica y para ello debemos seleccionar cualquier celda de los datos
originales y pulsar el botn Insertar > Tabla dinmica. Eso mostrar el cuadro de
dilogo Crear tabla dinmica y al pulsar el botn Aceptar tendremos una nueva tabla
dinmica donde debemos arrastrar el campo que contiene los datos duplicados a la
seccin Etiquetas de fila:
De inmediato la tabla dinmica remover cualquier dato repetido y mostrar los valores
nicos bajo la columna Etiquetas de fila. Ser suficiente con copiar las celdas de la tabla
dinmica y pegar dichos valores nicos a cualquier otro rango de celdas para poder
utilizarlo. Si adems quieres saber el nmero de veces que aparece cada uno de los
valores en los datos originales ser suficiente con arrastrar el mismo campo a la seccin
Valores:
Cuando trabajamos con fechas es comn tener la necesidad de extraer el mes para
desplegarlo por su nombre, ya sea para colocarlo en una celda o para concatenarlo con
otra cadena de texto. Hoy revisaremos un mtodo muy sencillo para obtener el nombre
de mes en Excel.
Confusin con el formato de fecha
Ahora que ya sabemos que no podemos tratar las fechas como cualquier otra cadena de
texto, es momento de revelar la funcin que nos ayudar a obtener el nombre de mes
en Excel. Para hacer esta extraccin utilizaremos la funcin TEXTO cuyo objetivo es
precisamente convertir un valor numrico en una cadena de texto y de paso aplicar un
formato. La frmula a utilizar ser la siguiente:
=TEXTO(A2, "mmmm")
Observa que al copiar la frmula hacia abajo obtendremos el mes para cada una de las
fechas del rango. El resultado ser el mismo sin importar la columna que utilicemos ya
que todas las columnas tienen las mismas fechas. Otra opcin de formato disponible
para extraer el nombre de mes es la siguiente:
=TEXTO(B2, "mmm")
En lugar de utilizar cuatro letras m, este formato utiliza solamente tres, lo que
ocasiona que el mes se despliegue con su abreviatura de tres letras de la siguiente
manera:
Ambos formatos nos permiten obtener el nombre de mes en Excel, ya sea desplegando
su nombre completo o su forma abreviada. Si quieres aprender un poco ms sobre la
funcin TEXTO y el manejo de fechas consulta el artculo Extraer informacin de una
fecha.
El Editor de Visual Basic
El Editor de Visual Basic, VBE por sus siglas en ingls, es un programa independiente
a Excel pero fuertemente relacionado a l porque es el programa que nos permite
escribir cdigo VBA que estar asociado a las macros.
Existen al menos dos alternativas para abrir este editor, la primera de ellas es a travs
del botn Visual Basic de la ficha Programador.
El segundo mtodo para abrir este programa es, en mi opinin, el ms sencillo y rpido
y que es a travs del atajo de teclado: ALT + F11. El Editor de Visual Basic contiene
varias ventanas y barras de herramientas.
El Explorador de proyectos tambin nos ayuda a crear o abrir mdulos de cdigo que se
sern de gran utilidad para reutilizar todas las funciones de cdigo VBA que vayamos
escribiendo.
Dentro del Editor de Visual Basic puedes observar una ventana llamada Inmediato que
est en la parte inferior. Esta ventana es de mucha ayuda al momento de escribir cdigo
VBA porque permite introducir instrucciones y observar el resultado inmediato.
Adems, desde el cdigo VBA podemos imprimir mensajes hacia la ventana Inmediato
con el comando Debug.Print de manera que podamos depurar nuestro cdigo. Si no
puedes observar esta ventana puedes mostrarla tambin desde el men Ver.
El rea ms grande en blanco es donde escribiremos el cdigo VBA. Es en esa ventana
en donde escribimos y editamos las instrucciones VBA que dan forma a nuestras
macros.
Es importante familiarizarnos con el Editor de Visual Basic antes de iniciar con la
creacin de macros.
Como hemos visto en el artculo Tu primera macro con VBA, una subrutina nos ayuda a
organizar y agrupar las instrucciones en nuestro cdigo. El da de hoy te mostrar cmo
crear una funcin VBA, la cual es similar a una subrutina excepto por una cosa.
A diferencia de las subrutinas, las funciones VBA fueron diseadas para retornar un
valor. A travs de una funcin podemos agrupar cdigo que nos ayudar a hacer algn
clculo especfico y obtener un resultado de regreso. Una funcin VBA tambin es
conocida como Funcin Definida por el Usuario, UDF por sus siglas en ingls, y una
vez creada puede ser utilizada de la misma manera que las funciones incluidas en Excel
como la funcin SUMAR o la funcin BUSCARV. Esto hace que las funciones VBA
sean una herramienta muy poderosa.
A continuacin mostrar una funcin que toma un rango y regresa la suma de cada una
de sus celdas. Es importante insertar el cdigo dentro de un Mdulo tal como se muestra
en el artculo Tu primera macro con VBA. Posteriormente ir explicando el detalle de la
funcin.
La primera lnea de cdigo comienza con la palabra Function la cual define el inicio de
la funcin. Observa tambin cmo la ltima lnea de cdigo es End Function que est
especificando el trmino de la funcin.
Inmediatamente despus de la palabra clave Function se debe especificar el nombre de
la funcin que en este ejemplo es MiSuma seguida de parntesis que de manera opcional
pueden contener una lista de parmetros.
Parmetros de una funcin VBA
Los parmetros son el medio por el cual pasamos informacin de entrada a la funcin.
Algunas funciones necesitarn de dichas entradas para realizar algn clculo y algunas
otras no, es por ello que los parmetros de una funcin son opcionales. Puedes incluir
tantos parmetros como sean necesarios y solamente debes recordar separarlos por una
coma.
Un parmetro no es ms que una variable y por lo tanto puedes observar que en el
ejemplo he definido la variable rango que ser del tipo Range.
Valor de retorno
Una vez definida la funcin se pueden especificar todas las instrucciones que sern
ejecutas. En el ejemplo he comenzado por definir un par de variables, la variable celda
que ser del tipo Range y la variable resultado del tipo Double. En sta ltima variable
es donde se ir acumulando la suma de todas las celdas.
La parte central de la funcin se encuentra en la instruccin For Each ya que realiza un
recorrido por todas las celdas del rango que fue especificado como parmetro. Para cada
celda que se encuentra se va sumando su contenido en la variable resultado.
Retornando el valor
Una vez que se han hecho los clculos necesarios, es importante regresar el valor. Para
hacerlo es indispensable igualar el nombre de la funcin al valor o variable que contiene
el valor que se desea regresar. En nuestro ejemplo, la variable resultado es la que
contiene la suma de todas las celdas por lo que se iguala con el nombre de la funcin en
la lnea MiSuma = resultado.
Probando la funcin VBA
Finalmente probar la funcinVBA recin creada dentro de una hoja de Excel. Tal
como lo definimos en el cdigo, el nico parmetro de la funcin debe ser un rango del
cual me regresar la suma de los valores de la celda. Observa el siguiente ejemplo.
Aunque la funcin MiSuma hace lo mismo que la funcin de Excel SUMAR, nos ha
servido de ejemplo para introducir el tema de las funciones en VBA. Con este ejemplo
tan sencillo hemos creado nuestra primera funcin VBA.
INICIO
FUNCIONES
ACERCA
Excel nos permite poner nombres a los rangos de celdas de manera que los podamos
identificar adecuadamente al usarlos en nuestras frmulas, pero en esta ocasin te
mostrar cmo hacer que ese nombre se refiera a un grupo de celdas que va en aumento.
Al definir un nombre de rango comenzamos por seleccionar los datos y posteriormente
asignarles un nombre. En la siguiente imagen puedes observar que he asignado el
nombre MiTabla al rango de celdas A1:A3:
Si agrego un nuevo dato por debajo del rango definido no se incluir de manera
automtica:
Sera necesario redefinir el nombre del rango para incluir la nueva celda. Sin embargo,
podemos hacer que un nombre de rango est definido por una frmula y de esa manera
actualizar automticamente los datos que deben ser incluidos.
Rangos dinmicos con DESREF
Para lograr este objetivo utilizaremos la funcin DESREF que nos permite crear una
referencia a un rango. Esta es la sintaxis de la funcin:
DESREF(ref, filas, columnas, [alto], [ancho])
La sintaxis de la funcin DESREF nos indica que el primer argumento debe ser la celda
inicial sobre la cual se basar la referencia. En base a los datos del ejemplo anterior,
colocar como primer argumento la celda A1 que es la primera celda con datos. El
segundo y tercer argumento de la funcin nos permiten especificar cuantas filas y
columnas nos moveremos de la celda inicial. En nuestro ejemplo no queremos
movernos de esa celda, as que estos parmetros sern siempre cero.
El cuarto y quinto argumento son el alto y ancho de la referencia que queremos crear y
aqu es donde viene la parte interesante porque queremos decir a Excel que deseamos
todas las celdas que tienen un contenido. Para lograr nuestro cometido debemos utilizar
la funcin CONTARA, la cual nos ayuda a contar las celdas que no estn vacas. Para
contar las filas que no estn vacas utilizo la siguiente funcin:
=CONTARA($A:$A)
Con los parmetros ya definidos podemos decir que utilizaremos la funcin DESREF de
la siguiente manera suponiendo que los datos se encuentran en la Hoja1:
=DESREF(Hoja1!$A$1, 0, 0, CONTARA(Hoja1!$A:$A), CONTARA(Hoja1!$1:$1))
Esta frmula siempre nos devolver el rango que incluye las celdas que tienen un valor
y que son adyacentes a la celda A1.
Ahora solo resta modificar la definicin del nombre de rango MiTabla para que utilice
esta frmula. Para ello debo ir a la ficha Frmulas y oprimir el botn Administrador de
nombres, se mostrar el nombre de rango previamente definido y en el cuadro de texto
de la parte inferior se deber reemplazar su definicin por la frmula anterior:
Con esta nueva definicin del rango MiTabla no importarn las filas que agreguemos ya
que siempre sern consideradas en el rango. En el siguiente ejemplo, puedes observar
cmo voy agregando nuevos valores en la columna A y son considerados
automticamente en la suma de la celda D5:
Deja pasar algunos segundos hasta que el reloj de tu equipo haya avanzado al menos un
minuto, pulsa la tecla F9 y vers que el valor de la hora se actualizar a la misma hora
del computador. Por esta razn, no podemos fijar la fecha y hora en Excel utilizando
funciones.
Fijar fecha y hora con un atajo de teclado
La nica alternativa que tenemos en Excel para evitar que la fecha y hora se actualicen
constantemente es introducir sus valores directamente en una celda. Pero ya que esta
accin requerira de un ingreso manual, podemos utilizar los siguientes atajos de teclado
para facilitar las cosas:
Estos atajos de teclado son vlidos para una versin de Excel en castellano. Si tienes
una versin en ingls, entonces debers utilizar el atajo Ctrl + ; (punto y coma) para
insertar la fecha actual y el atajo Ctrl + Shift + ; (punto y coma) para la hora.
Macro para insertar fecha y hora actuales
Tambin tenemos la opcin de crear una macro para insertar los valores de la fecha y
hora actuales en una celda. Eso lo podemos lograr gracias a la funcin Now en VBA y
para mostrarlo comenzar insertando un botn de comando ActiveX en la hoja actual y
despus har doble clic sobre el botn para insertar el siguiente cdigo:
1 Private Sub CommandButton1_Click()
2
Range("B1").Value = Now
3 End Sub
Esta macro asigna el valor de la funcin Now a la celda B1 de la hoja actual. Al pulsar
el botn obtendr el siguiente resultado:
Con este mtodo he insertado tanto la fecha como la hora actual en la misma celda. Si
quisiera insertar solamente la fecha entonces debera utilizar la funcin Date en lugar
Cuando tienes una tabla en Excel con muchas columnas es fcil perder de vista la fila a
la que pertenecen los datos. Hoy aprenderemos cmo resaltar la fila de la celda activa
de manera que podamos distinguir fcilmente todos los valores de una fila.
Nuestro objetivo ser crear un apoyo visual para identificar fcilmente los datos que
pertenecen a la misma fila de la celda activa. Al momento de seleccionar una nueva
celda, la fila anterior quedar sin resaltar y la nueva fila ser resaltada. Observa la
siguiente animacin donde queda claro nuestro objetivo:
El cdigo VBA que desarrollaremos har que todas las hojas de nuestro libro tengan
este comportamiento sin necesidad de copiarlo en cada una de ellas. As que sin mayor
prembulo, comencemos con el desarrollo de esta funcionalidad.
Crear una variable VBA global
El primer paso ser crear una variable global en VBA donde almacenaremos el valor de
la celda activa actual y el de la celda activa anterior. Esto es necesario ya que al
movernos a una nueva fila debemos quitar cualquier formato de la fila previamente
resaltada y por lo tanto necesito almacenar una referencia a dicha fila. Para crear esta
variable debes abrir el Editor de Visual Basic y agregar un mdulo de cdigo haciendo
clic derecho sobre el nombre del proyecto > Insertar > Mdulo:
Una vez creado este mdulo debemos colocar la siguiente lnea de cdigo:
1 Public celdaActiva(1) As Range
El hecho de que la variable sea Public nos permite tener acceso a ella desde cualquier
otro mdulo de cdigo. Esta variable es un arreglo en VBA que no es ms que una
coleccin de casillas donde podemos almacenar valores. En este caso la variable
celdaActiva tiene dos casillas del tipo Range las cuales podemos acceder con los ndices
0 y 1.
En este punto la variable celdaActiva creada en el paso anterior an est vaca, as que
haremos uso del evento Workbook_Open para indicarle cul es la celda activa al
momento de abrir nuestro libro de Excel. Inserta el siguiente cdigo dentro del evento
Workbook_Open del objeto ThisWorkbook:
1Private Sub Workbook_Open()
2
3
End Sub
Al abrir nuestro libro se ejecutar el cdigo del evento WorkbookOpen y por lo tanto el
elemento 1 del arreglo celdaActiva tendr una referencia a la celda activa de nuestro
libro. La segunda instruccin que se ejecuta cambiar el valor de la propiedad
ActiveCell.EntireRow.Interior.Color para establecer un color de fondo para toda la fila
de la celda activa. En este caso utilizo la funcin RGB para elegir un color de fondo con
una combinacin especfica de colores rojo, verde y azul. Si quieres saber un poco ms
sobre los colores en Excel y la funcin RGB, consulta el artculo Evaluar el color de
fondo de una celda.
Adems de inicializar la variable celdaActiva al momento de abrir nuestro libro de
Excel, lo haremos tambin al momento de activar una nueva hoja lo que significa que
debemos hacer uso del evento Workbook_SheetActivate que tambin se encuentra dentro
del objeto ThisWorkbook. Despus de haber insertado el mismo cdigo para ambos
eventos, debers tener una vista en el Editor de Visual Basic como la siguiente:
Ahora solo nos resta resaltar la fila de la celda activa en el momento en que
seleccionamos una nueva celda. Ese instante est representado en Excel por el evento
Workbook_SheetSelectionChange donde colocaremos el siguiente cdigo:
1Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
2
3
4
5
End Sub
Ya que este evento se dispara en el momento en que seleccionamos una nueva celda,
la primera instruccin almacena el valor de la celda activa anterior dentro de
celdaActiva(0) e inmediatamente despus guardamos la referencia a la nueva celda
activa dentro de celdaActiva(1) y que en ese instante est referenciada por la variable
Target. Las ltimas dos instrucciones cambian el color de fondo de las filas. Primero
igualamos el color de celda activa anterior a xlNone que significa que removeremos
cualquier color de fondo y enseguida establecemos un color de fondo con la funcin
RGB para la fila de la nueva celda activa. Al finalizar todos estos pasos tendremos un
cdigo como el siguiente:
Eso ser todo. Al haber seguido estos pasos tendrs un libro de Excel que resaltar la
fila de la celda activa en todas las hojas.
Observaciones sobre el mtodo utilizado
El mtodo utilizado para resaltar la fila de la celda activa en Excel mostrado en este
artculo modifica el valor de la propiedad Interior.Color de cada una de las celdas de la
fila. Por esta razn, si tus celdas tienen aplicado algn color, ste ser removido al
momento de seleccionar una celda de la misma fila.
Es importante recordar que los colores que sern removidos sern los aplicados en el
relleno de las celdas a travs de las herramientas de formato. Los colores aplicados por
formato condicional quedarn intactos ya que dichos colores se almacenan en una
propiedad diferente. De hecho, si tus datos tienen reglas de formato condicional, dichos
colores estarn sobre puestos al color aplicado por el cdigo de este ejemplo.
Resaltar fila y columna de la celda activa
Una variante interesante del ejemplo mostrado anteriormente es agregar algunas lneas
de cdigo para resaltar la columna de la celda activa y de esa manera ubicarla tanto
horizontal como verticalmente. El cdigo a utilizar ser el siguiente:
1 Private Sub Workbook_Open()
2
End Sub
6
7
8
9
1
0 End Sub
1
1 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
1
2
1
3
1
4
1
5
Target As Range)
Set celdaActiva(0) = celdaActiva(1)
Set celdaActiva(1) = Target
celdaActiva(0).EntireRow.Interior.Color = xlNone
celdaActiva(0).EntireColumn.Interior.Color = xlNone
Target.EntireRow.Interior.Color = RGB(255, 145, 145)
Target.EntireColumn.Interior.Color = RGB(255, 145, 145)
1 End Sub
6
1
7
1
8
1
9
2
0
Observa que lo nico que he hecho es agregar las lneas de cdigo que hacen referencia
a la propiedad EntireColumn.Interior.Color que resaltan la columna de la celda activa.
Por supuesto que esta versin de cdigo tambin necesitar de una variable global
declarada en un Mdulo de manera similar que en el primer ejemplo. El resultado de
utilizar este cdigo es el siguiente:
Una de las primeras funciones que aprendemos a utilizar en Excel es la funcin SUMA,
as que es prcticamente inevitable razonar que: Si existe una funcin para sumar,
seguramente debe existir una funcin para restar. Sin embargo, despus de hacer una
bsqueda exhaustiva, todo usuario que comienza en Excel se entera de que la funcin
RESTA no existe.
A muchos les parece extrao que no exista una funcin para restar en Excel, pero todo
comienza a hacer ms sentido cuando nos damos cuenta de que podemos restar nmeros
utilizando la funcin SUMA. Lo nico que debemos hacer es utilizar valores negativos
y dejar que la funcin se encargue de realizar la operacin aritmtica. Considera como
ejemplo la siguiente frmula:
=SUMA(10, -3)
Ya que la funcin SUMA nos permite indicar valores numricos o referencias, entonces
tambin es posible restar el valor de varias celdas de la siguiente manera:
Una segunda alternativa que tenemos para restar en Excel es utilizar directamente el
operador aritmtico para la resta que es el guion medio (-). Este operador lo podemos
utilizar ya sea con valores numricos o con referencias de celdas. Observa cmo resto el
valor de las celdas B1 y C1 al valor de la celda A1 utilizando este operador:
A diferencia del ejemplo anterior que utilizaba la funcin SUMA, en esta ocasin los
valores de todas las celdas son positivos y el operador se encarga de hacer las restas
correspondientes. Son los operadores los que nos permiten utilizar Excel como si fuera
una calculadora, por ejemplo, podemos escribir frmulas como la siguiente para
mezclar operaciones de suma y resta:
=A1+B1-C1-D1
Tambin es posible mezclar el operador de resta con la funcin SUMA para restar un
conjunto de nmeros a otro. En la siguiente imagen hago la suma de todos los costos de
una empresa y el resultado lo resto a los ingresos para obtener la utilidad bruta.
La funcin IM.SUSTR est presente desde la versin de Excel 2007 y es utilizada para
restar dos nmeros complejos, pero la verdad es que son muy pocas las personas que
hacen operaciones con este tipo de nmeros.
Lo nico que debemos saber es que un nmero complejo est formado por un nmero
real y un nmero imaginario. Los nmeros que hemos utilizado hasta ahora en este
artculo son reales, as que esta funcin puede ayudarnos perfectamente a restar en
Excel, pero debemos recordar que solo nos permitir restar dos nmeros a la vez.
Observa la siguiente imagen donde hago uso de esta funcin:
Los filtros en Excel nos permiten buscar un subconjunto de datos que cumpla con
ciertos criterios. Generalmente todo comienza cuando tenemos un rango de celdas con
informacin y queremos ver solamente aquellas filas que cumplen con ciertas
condiciones.
Por ejemplo, en la siguiente imagen se pueden ver los datos de ventas de una
empresa. Cmo puedo tener una vista con todas las filas que pertenecen a Hugo? Eso
sera una tarea muy difcil de lograr si no tuviramos la facilidad de crear filtros en
Excel.
Para crear un filtro podemos utilizar el comando Filtro que se encuentra en la ficha
Datos dentro del grupo Ordenar y filtrar.
Al pulsar el botn Filtro se colocarn flechas en el extremo derecho de cada uno de los
encabezados de columna de nuestros datos indicando que podemos hacer uso de los
filtros. El comando Filtro tambin podrs seleccionar desde Inicio > Modificar >
Ordenar y filtrar > Filtro.
Otra manera de crear un filtro es transformar nuestros datos en una tabla de Excel, lo
cual insertar los filtros adems de aplicar un formato especial a los datos.
Cmo usar los filtros en Excel
Para filtrar la informacin debemos elegir una columna y hacer clic en la flecha de filtro
correspondiente para mostrar las opciones de filtrado. Todos los filtros, en la parte
inferior, mostrarn una lista de valores nicos con una caja de seleccin a la izquierda
de cada uno.
Una opcin que tenemos para filtrar los datos es elegir de manera individual aquellos
valores que deseamos visualizar en pantalla. Tambin podemos utilizar la opcin
(Seleccionar todo) para marcar o desmarcar todos los elementos de la lista. En la
imagen anterior he elegido el nombre Hugo de manera que el filtro mostrar solamente
las filas con dicho nombre.
Al pulsar el botn Aceptar se ocultarn las filas que no cumplen con el criterio de
filtrado establecido. Observa que la flecha de filtro de la columna Vendedor ha
cambiado para indicarnos que hemos aplicado un filtro. Adems, los nmeros de fila de
Excel se muestran en un color diferente indicndonos que existen filas ocultas.
Filtrar por varias columnas
Al aceptar estos cambios se mostrarn solamente las filas que cumplen ambos criterios.
Observa que ambas columnas habrn cambiado sus iconos para indicarnos que se ha
aplicado un filtro en cada una de ellas.
Esto demuestra que es posible crear tantos filtros como columnas tengamos en nuestros
datos y entre ms criterios de filtrado apliquemos mucha mayor ser la segmentacin de
datos que obtendremos.
Cmo quitar un filtro en Excel
Para quitar un filtro aplicado a una columna debemos hacer clic en la flecha del filtro y
seleccionar la opcin Borrar filtro de Columna donde Columna es el nombre de la
columna que hemos elegido. Esta accin eliminar el filtro de una sola columna, pero si
tenemos filtros aplicados a varias columnas y deseamos eliminarlos todos con una sola
accin, entonces debemos pulsar el comando Borrar que se encuentra en la ficha Datos
> Ordenar y filtrar.
Ya hemos visto que todos los filtros muestran una lista de valores nicos de la cual
podemos seleccionar uno o varios de ellos y justo por arriba de dicha lista de valores se
muestra un cuadro de texto que nos permite hacer una bsqueda. Por ejemplo, en la
siguiente imagen he colocado la palabra este en el cuadro de bsqueda y como
resultado se ha modificado la lista de valores mostrando solo aquellos donde se ha
encontrado dicha palabra:
Cuando tenemos una lista muy grande de valores nicos y no podemos identificar
fcilmente aquellos que deseamos seleccionar, podemos utilizar el cuadro de bsqueda
para encontrar los valores que necesitamos. Tambin es posible utilizar caracteres
Adems de las opciones ya mencionadas para filtrar en Excel, cuando en una columna
se detecta el tipo de dato texto, se mostrar una opcin de men llamada Filtros de texto
como la siguiente:
De manera similar, si Excel detecta que una columna contiene valores numricos, nos
permitir utilizar filtros especficos para dicho tipo de dato tal como lo puedes observar
en la siguiente imagen:
A diferencia de los Filtros de texto, Excel nos permitir utilizar los Filtros de nmero
para mostrar valores que sean mayores o iguales que otro o simplemente aquellos que
son superiores al promedio.
Filtros de fecha en Excel
Las fechas son el tipo de dato que ms opciones de filtrado nos proporcionan, tal como
lo muestra la siguiente imagen:
Excel nos permitir filtrar las fechas por das especficos como hoy, maana o ayer e
inclusive por perodos de tiempo ms largos como semanas, meses, trimestres o aos
con tan solo seleccionar la opcin adecuada.
Filtrar por color en Excel
No podamos pasar por alto y dejar de hablar de la opcin de Filtrar por color que nos
ofrece Excel. Para que esta opcin se habilite es necesario que las celdas tengan
aplicado un color de relleno ya sea por una regla de formato condicional o modificando
directamente el color de relleno con las herramientas de formato. En nuestro ejemplo he
aplicado una regla de formato condicional para aquellas celdas que tengan un valor
superior a $850 en la columna Total.
Una vez que las celdas tienen un color de relleno, al hacer clic en el filtro de la columna
Total se mostrar habilitada la opcin Filtrar por color y dentro de ella podr elegir
alguno de los colores presentes en la columna.
Primero debemos recordar que un mismo rango de celdas en Excel puede estar sujeto a
varias reglas de formato condicional al mismo tiempo, as que para guardar esa lista de
formatos condicionales se cre la coleccin FormatConditions en VBA la cual enumera
todas las reglas de formato condicional aplicadas en un rango.
MsgBox Range("A1:A10").FormatConditions.Count
3 End Sub
El mensaje nos indica que el rango A1:A10 tiene una sola regla de formato condicional.
Ahora crear una segunda regla para el mismo rango que resaltar de color verde todas
las celdas con un valor menor a 250. Una vez creada la regla de formato condicional,
volver a pulsar el botn de comando y el nmero mostrado en el mensaje habr
aumentado debido a la nueva regla creada:
Cada regla de formato condicional almacena el estilo que aplicar a las celdas que
cumplan con las condiciones establecidas y especficamente el color de relleno se
almacena en la propiedad Interior.Color. Para demostrar el valor de esta propiedad
agregar un nuevo botn de comando con el siguiente cdigo:
1Private Sub CommandButton2_Click()
2
For i = 1 To Range("A1:A10").FormatConditions.Count
MsgBox "Regla " & i & vbLf & _
4Range("A1:A10").FormatConditions(i).Interior.Color
5
Next i
6End Sub
El color devuelto ser un valor entre 0 y 16777215 que corresponde a una de las
combinaciones de colores primarios (rojo, verde y azul) que se pueden formar en Excel.
Si quieres saber un poco ms sobre los colores en Excel consulta el artculo Evaluar el
color de fondo de una celda.
Los colores mostrados con el cdigo anterior son los colores pertenecientes a cada una
de las reglas de formato condicional y no el color de una celda especfica. Para conocer
el color de formato condicional aplicado a una celda ser necesario encontrar la regla
que se cumple sobre dicha celda para entonces obtener el color correspondiente.
Macro para obtener el color de una celda
El desafo ms grande al crear una macro para obtener el color de una celda es descubrir
la regla de formato condicional que est activa. Para eso utilizamos un bucle For Next
que recorrer toda la coleccin de formatos haciendo una evaluacin de cada regla para
descubrir si est activa.
1 Function COLORFC(Celda As Range) As Long
2
3 'Indicar si la relga de formato condicional est activa
4 Dim ReglaActiva As Boolean
5
6
7 For i = 1 To Celda.FormatConditions.Count
8
9
1
0
With Celda.FormatConditions(i)
1
1
1
2
1
3
1
Case xlBetween:
4 Evaluate(.Formula1) _
1
5
Case xlNotBetween:
1 Evaluate(.Formula1) _
6
1
Case xlEqual:
7 Celda.Value
1
Case xlNotEqual:
8 Celda.Value
Case xlGreater:
1
9 Evaluate(.Formula1)
Case xlLess:
2
Evaluate(.Formula1)
0
2 Evaluate(.Formula1)
1
Case xlLessEqual:
2 Evaluate(.Formula1)
End Select
2
3
2
4
2
5
Application.ScreenUpdating = False
2
6
Celda.Select
2
7
ReglaActiva = Evaluate(.Formula1)
Range(ActiveCell.Address).Select
2
8
2
9
Application.ScreenUpdating = True
End If
3
0
3
1
3
2
3
3
3
4
Exit Function
End If
End With
3 Next i
5
3 End Function
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
Las primeras lneas de cdigo se encargan de recorrer todas las reglas de formato
condicional para la celda proporcionada. La primera validacin importante es sobre la
propiedad Type que nos permite saber el tipo de regla que estamos analizando, ya sea
del tipo xlCellValue o del tipo xlExpression. Es importante mencionar que existen ms
tipos de reglas de formato condicional, de hecho la enumeracin
XlFormatConditionType contiene 14 tipos diferentes, pero solamente los dos tipos
mencionados anteriormente tienen una manera de ser evaluados desde VBA. Por esta
razn la funcin COLORFC considera en primer lugar las reglas de formato condicional
que evalan directamente el valor de una celda.
Al momento de crear una regla de formato condicional que utilice una funcin de Excel,
colocaremos su nombre en castellano. Dicha frmula se almacenar en una propiedad
de la regla de formato condicional y al momento de evaluarla desde VBA la cadena de
texto contendr el nombre de la funcin en espaol lo cual ocasionar un error ya que
VBA solamente entiende las funciones de Excel por su nombre en ingls. An as he
dejado esta funcionalidad porque existe un porcentaje de usuarios que utilizan Excel en
ingls y ellos podrn obtener el color de las celdas que utilicen reglas de formato
condicional basadas en frmulas.
Despus de todas estas aclaraciones (que eran necesarias), tenemos una funcin que nos
devolver el color aplicado a una celda desde una regla de formato condicional, as que
ahora solo debemos utilizarla para sumar o contar celdas por color.
Sumar por color de formato condicional
Para sumar por color de formato condicional crear una nueva funcin VBA de la
siguiente manera:
1 Function SUMARPORCOLORFC(CeldaColor As Range, Rango As Range) As
Double
2
3
4
5
6
7
8 Dim Color As Long
9
1 Color = COLORFC(CeldaColor)
0
1
For Each Celda In Rango.Cells
1
1
2
1
3
1
4
1
5
SUMARPORCOLORFC = Total
1 End Function
6
1
7
El primer argumento de la funcin es una celda que contiene el color por el cual
deseamos sumar, as que una de las primeras acciones es obtener dicho color con la
funcin COLORFC. Posteriormente se har un recorrido por todo el rango de celdas
para sumar el valor de aquellas que tengan el mismo color. Observa cmo trabaja
nuestra funcin con los datos de ejemplo:
La funcin devuelve correctamente la suma de las celdas A1 y A9 que son las que tienen
el mismo color que la celda A1 que ha sido indicada como el primer argumento de la
funcin.
Contar por color de formato condicional
Si en lugar de sumar deseamos contar las celdas que tienen un mismo color, ser
suficiente con modificar la funcin anterior para que en lugar sumar el valor de la celda
se sume el valor 1 por cada celda con el color indicado. El cdigo de esta nueva funcin
es el siguiente:
1 Function CONTARPORCOLORFC(CeldaColor As Range, Rango As Range) As
Integer
2
3
4
5
6
7 Color = COLORFC(CeldaColor)
8
9 For Each Celda In Rango.Cells
1
0
1
1
End If
Total = Total + 1
Next Celda
2
1
3
1
4
CONTARPORCOLORFC = Total
1
5
1
6
End Function
1
7
Al utilizar esta funcin con los mismos datos de ejemplo podrs observar que la funcin
CONTARPORCOLORFC nos devuelve el valor 2 que corresponde a las celdas con el
mismo color que la celda A3:
Descarga el libro de trabajo para comenzar a sumar y contar celdas por color de
formato condicional en tus propios libros de trabajo. Solo recuerda que las funciones
creadas en este artculo validarn solo las reglas de formato condicional basadas en el
valor de la celda. Tambin recuerda que podrs evaluar reglas basadas en frmulas
solamente si tienes una versin en ingls de Excel.
Cmo multiplicar horas por dinero en Excel
Tal vez te ha sucedido que llega el momento del pago a los empleados de la empresa y
tienes lista la informacin en Excel con las horas trabajadas durante la semana. Ya has
calculado el total de horas a pagar y solo hace falta la multiplicacin por la tarifa
establecida, sin embargo solo obtienes montos incorrectos.
Cmo se hace la multiplicacin de horas por dinero en Excel? Todo indicara que es
un clculo muy sencillo pero por ms que lo intentas solo consigues datos errneos. En
la siguiente imagen podrs darte cuenta a lo que me refiero.
El problema con la multiplicacin de tiempo por dinero es que las horas en Excel no
son en realidad lo que parece. Para darnos cuenta del valor real de la celda C7 basta con
aplicar el formato General a dicha celda:
Las 40 horas y 30 minutos que inicialmente desplegaba la celda C7, son en realidad el
valor numrico 1.6875 y es la razn por la cual el monto a pagar calculado en la celda
C9 nos devuelve como resultado el monto $168.75.
Al trabajar con datos de tiempo en Excel vemos desplegadas las horas y minutos tal
como los conocemos, pero su valor real es un nmero decimal entre 0.0, para las
00:00:00 horas, y hasta 0.99999999 que representa las 23:59:59 horas. Eso quiere decir
que el valor entero 1 significa un da completo de 24 horas y por tal motivo el valor de
la celda C7 significa que tenemos 1 da entero y 0.6875 de otro da.
Multiplicar horas por dinero en Excel
Para resolver este problema del valor decimal de las horas ser suficiente con agregar la
multiplicacin por 24 de manera que se haga la conversin del valor decimal a la
cantidad correcta de horas. Observa cmo al incluir esta multiplicacin en la frmula de
la celda C9 obtenemos el resultado correcto:
Ahora ya sabes cmo multiplicar horas por dinero en Excel de manera que puedas
calcular y pagar correctamente a cada empleado por las horas trabajadas en la empresa.
Insertar smbolos y caracteres especiales
Excel nos permite insertar smbolos dentro de las celdas de una manera fcil y rpida a
travs del cuadro de dilogo Smbolos. Algunos de los caracteres que podremos insertar
sern los smbolos de monedas, letras del alfabeto griego o caracteres especiales como
el smbolo de derechos reservados.
Para insertar un smbolo en Excel debes ir a la ficha Insertar y pulsar el botn Smbolo
que se encuentra dentro del grupo Smbolos.
Por otro lado, en la pestaa Caracteres especiales encontrars una lista de algunos
caracteres especiales que son usados frecuentemente como el smbolo de Copyright o de
Marca registrada. De igual manera debers seleccionar el carcter que necesitas y
pulsar el botn Insertar para incluirlo en la celda activa. Una vez que hayas terminado
de insertar los smbolos necesarios debes pulsar el botn Cerrar y estars de regreso en
la hoja de Excel.
Referencias 3D
Una referencia nos ayuda a identificar una celda o rango de celdas y de esta manera
podemos indicar a Excel el lugar exacto donde buscar los valores o los datos que
deseamos utilizar. Hoy hablar de manera especial de las referencias 3D en Excel.
Referencias de celdas tradicionales
Ahora deseo crear una nueva hoja que tendr la suma de las celdas B2 de todas las
hojas. Para obtener esta suma podra sumar cada una de las celdas B2 de todas las hojas
de la siguiente manera:
Con esta frmula obtendr la suma adecuada, sin embargo me tardar algunos segundos
en construir la formula y probablemente cometer algn error al introducirla. Para evitar
cualquier problema, podemos hacer esta misma suma de una manera mucho ms rpida
utilizando una referencia 3D.
Crear una referencia 3D en Excel
Cuando deseamos utilizar la misma celda de varias hojas podemos crear una referencia
3D. Para nuestro ejemplo la referencia 3D para las celdas B2 de todas las hojas de los
meses la formamos de la siguiente manera:
ENE:DIC!B2
La referencia 3D indica a Excel que debe considerar todas las hojas de Excel
comprendidas entre la hoja ENE y la hoja DIC y tomar el valor de la celda B2 de todas
ellas. Al indicar esta referencia como el argumento a la funcin SUMA obtendremos el
resultado deseado:
En este ejemplo he utilizado una referencia 3D para indicar una sola celda, sin embargo
las referencias 3D tambin se pueden utilizar con rangos de celdas.
El Asistente para tablas y grficos dinmicos
Por muchos aos he utilizado el Asistente para tablas y grficos dinmicos en Excel
para crear mis tablas dinmicas, sin embargo a partir de Excel 2007 este Asistente ya no
est disponible en la Cinta de opciones y no es tan simple encontrarlo, pero hoy te
mostrar cmo hacerlo.
Encontrando el asistente para tablas dinmicas
Un mtodo para mostrar el Asistente para tablas y grficos dinmicos es utilizar el atajo
de teclado: ALT+T+B. (Si tienes Excel en ingls el atajo es: ALT+D+P). La verdad es
que no es tan sencillo ingresar esta combinacin de teclas ya que si no se hace de
manera adecuada se abrir el cuadro de dilogo para crear una Tabla de datos.
El mtodo que yo sigo es pulsar la tecla ALT por 2 segundos y mientras la mantengo
pulsada, ingresar la combinacin de las teclas T+B. Pero no te preocupes si no puedes
mostrar el Asistente con este mtodo ya que existe otra alternativa que explico a
continuacin.
Otro mtodo para mostrar el Asistente para tablas y grficos dinmicas es agregarlo a la
barra de herramientas de acceso rpido y para hacerlo debes hacer clic derecho sobre la
barra de herramientas y seleccionar la opcin Personalizar barra de herramientas de
acceso rpido y se mostrar el cuadro de dilogo Opciones de Excel. En la seccin
Comandos disponibles en debers seleccionar la opcin Todos los comandos y
entonces buscar el comando correspondiente al Asistente:
La primera de las opciones del Asistente nos permite crear una tabla dinmica con los
datos que tengamos en nuestras hojas de Excel, por ello esta opcin es llamada Lista o
base de datos de Microsoft Excel.
Al seleccionar esta opcin y hacer clic en Siguiente, se mostrar el segundo paso del
proceso que nos permitir especificar el rango de celdas en las que estar basada nuestra
tabla dinmica.
Haz clic sobre cualquier celda de la tabla de datos que se desea considerar en la nueva
tabla dinmica.
Ahora selecciona el comando Tabla dinmica que se encuentra dentro del grupo Tablas
de la ficha Insertar.
En este mismo cuadro de dilogo se puede elegir si se desea colocar la tabla dinmica
en una nueva hoja de Excel o en una ya existente. Haz clic en el botn Aceptar y se
crear la nueva tabla dinmica.
Excel agregar en la parte izquierda del libro la tabla dinmica y en la parte derecha la
lista de campos. Esta lista de campos est dividida en dos secciones, primero la lista de
todos los campos de los cuales podremos elegir y por debajo una zona a donde
arrastraremos los campos que darn forma al reporte ya sea como columna, fila, valor o
como un filtro.
Para completar la tabla dinmica debemos arrastrar los campos al rea
correspondiente. Siguiendo el ejemplo propuesto del artculo anterior, colocar como
columna el campo Producto y como fila al campo Ciudad. Finalmente como valores
colocar el campo Ventas.
Utilizando una tabla dinmica fue posible crear un reporte de una manera fcil y sin la
necesidad de utilizar frmulas. Pronto veremos cmo se pueden elaborar tablas
dinmicas ms complejas que permitirn realizar un anlisis profundo de la
informacin.
Formularios en Excel
Los formularios en Excel son un mtodo para ingresar datos a nuestras hojas y son de
mucha utilidad porque nos ayudan a evitar errores en la captura de informacin.
Podemos comparar los formularios de Excel con los formularios impresos en papel.
Qu es un formulario en Excel?
Seguramente has llenado un formulario en papel, tal vez cuando has acudido a alguna
oficina de gobierno para realizar un trmite, as que sabes de lo que estoy hablando.
Estos formularios contienen instrucciones precisas de lo que debes escribir y contienen
los recuadros necesarios para ingresar los datos.
Los formularios en Excel no son tan diferentes de los formularios impresos ya que de
igual manera proveen de los espacios necesarios para ingresar los datos. Los
formularios en Excel utilizan objetos especiales conocidos como controles de
formulario que son precisamente los que nos permiten agregar campos de texto, listas,
botones de opcin entre otras cosas ms.
Formulario de datos.
Formulario de datos
A travs de un formulario de datos podemos mostrar al usuario la informacin de una
sola fila de una tabla. En este formulario se puede hacer la edicin de la informacin e
inclusive crear un nuevo registro para la tabla.
Los formularios de usuario en VBA, tambin conocidos como UserForm, son cuadros
de dilogo que hacen uso de controles de formulario para solicitar informacin al
usuario. Estos formularios son creados desde el Editor de Visual Basic y administrados
desde cdigo VBA.
Una vez que se ha creado el formulario de usuario podemos arrastrar y soltar los
controles que estn disponibles desde el Cuadro de herramientas:
Si quieres crear un formulario bsico en VBA, sigue los pasos descritos en el artculo
Formularios en VBA.
Los diferentes tipos de formularios en Excel nos evitarn dolores de cabeza ya que
podremos tener cierto grado de control sobre el ingreso de datos que otras personas
realizan sobre nuestras hojas de Excel.
Base de datos en Excel
Una base datos es un conjunto de datos que ha sido organizado bajo un mismo contexto
y cuya informacin est almacenada y lista para ser utilizada en cualquier momento. Las
bases de datos pueden almacenar informacin sobre personas, productos, ventas o
cualquier otra cosa.
Una base de datos organiza la informacin relacionada en tablas las cuales estn
compuestas por columnas y filas. Una tabla tendr un nmero especfico de columnas,
pero tendr cualquier nmero de filas.
Si observas con detenimiento la imagen anterior, notars que una tabla se asemeja
mucho a una hoja de Excel la cual tambin est dividida en columnas y filas. Por esa
razn Excel ha sido utilizado por mucho tiempo, y por muchas personas, como un
repositorio de datos.
Diseo de bases de datos en Excel
Nuestro primer paso en el diseo de una base de datos en Excel ser identificar las
tablas que ocuparemos para organizar la informacin. Para nuestro ejemplo de la
librera podemos mencionar las siguientes tablas:
Para identificar adecuadamente las tablas de una base de datos debes poner atencin en
las agrupaciones naturales de la informacin, es decir, en los sujetos que interactan en
la problemtica analizada. En este caso los sujetos principales son los libros, los clientes
y las rdenes.
Paso 2: Determinar los campos de las tablas
Una vez que hemos identificado las tablas debemos indicar el nombre de cada una de
sus columnas (campos). El nombre del campo deber ser descriptivo y nos ayudar a
identificar cada una de las propiedades de un elemento de la tabla.
Por ejemplo, para cada libro en venta en la librera guardaremos su cdigo ISBN, el
ttulo, el autor y el precio por lo que dicha tabla quedar definida de la siguiente
manera:
Los campos de cada tabla dependern de la informacin que est a tu disposicin para
ser ingresada en la base de datos. Por ejemplo, algunas empresas o negocios tendrn
inters en capturar ms informacin sobre sus clientes lo cual har que su tabla de
Clientes tenga ms campos que los mostrados en el ejemplo anterior.
Paso 3: Identificar la llave primaria de cada tabla
Una llave primaria nos permitir identificar de manera nica cada uno de los registros
de las tablas. En el caso de la tabla Libros, el ISBN ser la llave primaria ya que es un
cdigo nico internacional para cada libro publicado por lo que dicho nmero jams se
repetir.
En el caso de las tablas para rdenes y Clientes crearemos un nmero consecutivo que
identificar de manera nica cada una de las filas.
Paso 4: Identificar las relaciones entre tablas
Este paso es de utilidad para asegurarnos que podremos vincular la informacin de las
tablas a travs de la relacin que existe entre dos de sus campos. Por ejemplo, si para
una determinada orden de compra quiero saber el ttulo del libro que ha sido vendido,
bastar con relacionar la columna ISBN de la tabla rdenes con la columna ISBN de la
tabla Libros para conocer el ttulo.
De manera similar, si deseo conocer el cliente para una determinada orden de compra,
solo deber seguir la relacin indicada por el campo IDCliente en ambas tablas.
Paso 5: Identificar datos repetidos en tablas
Aun cuando pensemos que hemos terminado con el diseo de nuestra base de datos, es
importante hacer un breve ejercicio con algunos datos reales para identificar la posible
existencia de datos repetidos y tomar las decisiones adecuadas para evitarlos.
Por ejemplo, considera el caso de la tabla Libros donde podramos tener uno o ms
ttulos escritos por el mismo autor. En ese caso, estaramos repitiendo el nombre y
apellido del autor en varios registros de la tabla.
Para evitar la repeticin de datos lo recomendable es crear una nueva tabla que
almacene la informacin de los autores y hacer referencia a dicha tabla a travs de su
campo llave tal como se muestra en la siguiente imagen:
Estos son los datos de la orden de compra nmero 1 donde el cliente ha comprado 3
libros, siendo dos de esas copias del mismo ttulo. El problema con estos datos es que se
repite el nmero de orden y eso no sera posible ya que esa es nuestra llave primaria en
la tabla y no puede repetirse. Adems para cada registro se repite la Fecha, as como las
columnas IDCliente y TipoPago. Para resolver este problema debemos crear una tabla
adicional que almacenar los libros de cada orden de compra de la siguiente manera:
Es as como el haber identificado datos repetidos en las tablas nos ha hecho tomar la
decisin de agregar tablas adicionales a nuestro diseo para minimizar el espacio
utilizado por nuestra base de datos que ser de gran importancia al momento de que los
datos crezcan. De esta manera nuestro diseo final queda de la siguiente manera:
Una vez que tenemos el diseo de la base de datos podemos crearla fcilmente en Excel
siguiendo dos recomendaciones:
El motivo para utilizar tablas de Excel es que existen mltiples beneficios de utilizar
tablas entre los cuales estn los filtros y el reconocimiento automtico de nuevas filas y
columnas. Por otro lado, la razn por la cual colocar cada tabla en su propia hoja de
Excel es para facilitar el crecimiento de los datos ya que si colocas varias tablas en una
misma hoja probablemente tendrs que moverlas o redefinirlas cada vez que alguna de
ellas aumente de tamao y se sobrepongan entre s.
Consultar la base de datos en Excel
Una vez que se ha creado la base de datos en Excel y comiencen a crecer los datos,
seguramente te encontrars con la necesidad de relacionar la informacin de diferentes
tablas para obtener datos complementarios. Por ejemplo, considera las siguientes dos
tablas:
El resultado de la frmula es correcto ya que la orden nmero 1 fue hecha por el cliente
con un IDCliente igual a 5 y que corresponde a Luis cuyo Email es el mostrado en la
celda F2. De esta manera puedes relacionar la informacin de las diferentes tablas en tu
base de datos en Excel, ya sea utilizando la funcin BUSCARV o la combinacin de
funciones INDICE/COINCIDIR ya que ambas nos permite crear frmulas para buscar
datos.
Si quieres practicar un poco ms con este tipo de frmulas, descarga el libro de trabajo
que contiene el ejemplo que acabamos de realizar. Antes de finalizar este artculo, es
necesario hacer algunas aclaraciones importantes sobre las bases de datos en Excel,
pero para eso necesito explicar un poco sobre los sistemas de gestin de bases de datos.
Sistemas de gestin de bases de datos (DBMS)
Excel no es un DBMS
Aunque exista una gran cantidad de personas que utilizamos Excel para almacenar
informacin, eso no lo convierte en un sistema de gestin de bases de datos. Excel no
tiene un servicio que controle la insercin o eliminacin de los datos sino que el mismo
usuario puede hacerlo directamente en la aplicacin.
Algunas desventajas que tenemos al utilizar Excel para almacenar nuestros datos son las
siguientes:
Conclusin
Excel nos permite convertir un rango de celdas en una imagen. Esta imagen
puede ser totalmente esttica o tambin puede ser una imagen que refleja los
cambios de los datos originales.
Imagen esttica de un rango
Para crear una fotografa de un rango de celdas debes seleccionar todas las
celdas y oprimir la combinacin de teclas Ctrl + C para copiarlas al
portapapeles. Despus debes pulsar el botn Imagen que se encuentra en el
men desplegable del botn Pegar.
El resultado ser una imagen que ser colocada justo encima del rango de
celdas original por lo que debes mover con el ratn la nueva imagen hacia una
nueva ubicacin. Al seleccionar la imagen se mostrar la ficha
contextual Herramientas de imagen la cual te permitir aplicar un formato.
Para crear una imagen que se actualice con los datos seguimos un
procedimiento similar al anterior pero al momento de pulsar el botn Pegar
seleccionamos el comando Imagen vinculada.
Puedes darte cuenta que una imagen est vinculada porque al seleccionarla se
mostrar dentro de la barra de frmulas el rango de celdas al que est
vinculada. Si deseas desvincular la imagen ser suficiente con borrar el
contenido de la barra de frmulas.
Macro para copiar datos de una hoja a otra en Excel
Cuando necesitas copiar celdas de una hoja a otra en Excel existe la opcin de copiar los
datos mediante frmulas, sin embargo dicho mtodo hace un uso extensivo de funciones
y adems es necesario agregar una hoja intermedia para remover los datos no deseados.
Hoy crearemos una macro para copiar datos de una hoja a otra y podrs ver que este
mtodo es mucho ms directo y adems deja nuestras hojas sin tantas frmulas. Al
desarrollar esta macro nos aseguraremos de que se pueda copiar un rango completo de
celdas o que se puedan copiar solamente las celdas visibles despus de haber aplicado
un filtro. Para nuestro ejemplo trabajaremos con los siguientes datos:
Al momento de personalizar esta macro para copiar tus propios datos, debers realizar
las siguientes configuraciones:
Las ltimas dos instrucciones del cdigo mostrado anteriormente inicializan las
variables rngOrigen y rngDestino con la informacin de los objetos previamente
configurados.
Copiar y pegar datos con VBA
Despus de haber definido los objetos a utilizar solo nos restar copiar las celdas de la
hoja origen y pegarlas en la hoja destino.
Ahora que ya tienes una idea clara de las instrucciones utilizadas en la elaboracin de
esta macro, te dejo el cdigo completo de la subrutina CopiarCeldas:
1 Sub CopiarCeldas()
2
3 'Definir objetos a utilizar
4 Dim wsOrigen As Excel.Worksheet, _
5
6
7
wsDestino As Excel.Worksheet, _
rngOrigen As Excel.Range, _
rngDestino As Excel.Range
8
9
10
11
12
13
14
15
16
17
30
31
End Sub
Para probar nuestra macro recin creada insertar un botn de formulario en la hoja que
contiene los datos originales y al momento de que Excel muestre el cuadro de dilogo
Asignar macro seleccionar la subrutina CopiarCeldas. Como resultado tendremos un
botn que nos permitir copiar datos de una hoja a otra en Excel.
Para nuestra primera prueba dejar el cdigo de la macro tal como fue desarrollado, es
decir con la celdaOrigen haciendo referencia a la celda A1 y lo mismo para la
celdaDestino. Al pulsar el botn copiar, la hoja Destino de nuestro libro se ver de la
siguiente manera:
Los datos se han copiado correctamente de la hoja Origen a la hoja Destino. Las celdas
no tienen formato porque la instruccin VBA que usamos para pegar hace uso del
parmetro xlPasteValues.
Copiar celdas visibles
Para el segundo ejemplo haremos los siguientes ajustes. Primero borrar los datos de la
hoja Destino. Despus aplicar un filtro a la columna Categora en los datos de la hoja
Origen.
Finalmente editar la macro (lnea 28) para cambiar el parmetro xlPasteValues por el
parmetro xlPasteAll de la siguiente manera:
rngDestino.PasteSpecial xlPasteAll
Con estos ajustes realizados, pulsaremos el botn Copiar ubicado en la hoja Origen y
obtendremos el siguiente resultado en la hoja Destino:
En esta ocasin se han copiado solamente las celdas visibles y adems tienen el mismo
formato que las celdas originales.
Ahora descarga el libro de trabajo y comienza a utilizar la macro para copiar datos de
una hoja a otra en Excel. Solo recuerda que debes configurar cada una de las variables
en el cdigo VBA de acuerdo al nombre de las hojas de tu libro e indicar las referencias
a las celdas de origen y destino.
Controles ActiveX en Excel
Los controles ActiveX son un tipo de controles que nos permiten agregar funcionalidad
de formularios a nuestros libros de Excel. Existe otro tipo de controles que es conocido
como Controles de formulario y que tienen una funcionalidad similar, sin embargo
existen algunas diferencias entre ambos tipos.
Controles ActiveX y controles de formulario
A diferencia de los controles de formulario, los controles ActiveX tienen una serie de
propiedades que podemos configurar pulsando el botn Propiedades que se encuentra
dentro del grupo Controles de la ficha Programador.
Antes de poder ver las propiedades de un control ActiveX debemos pulsar el botn
Modo Diseo el cual nos permitir seleccionar el control y posteriormente ver sus
propiedades. Cada tipo de control ActiveX mostrar una ventana de Propiedades con sus
propias caractersticas. A continuacin un ejemplo de la ventana Propiedades para un
botn de comando ActiveX:
Otra diferencia entre los controles de formulario y los controles ActiveX es que los
primeros pueden tener asignada una macro y al hacer clic sobre el control de formulario
se iniciar la ejecucin de dicha macro.
Los controles ActiveX no tienen asignada una macro explcitamente sino que podemos
asignar cdigo VBA para cada evento del control. Un evento de un control ActiveX
puede ser el evento de hacer clic sobre el control, el evento de hacer doble clic, el
evento de obtener el foco sobre el control ActiveX, entre otros eventos ms. Para
asignar cdigo a uno de los eventos de un control ActiveX solamente debemos hacer
clic derecho sobre l y seleccionar la opcin Ver cdigo.
Esto mostrar el Editor de Visual Basic con una subrutina para el evento Click() donde
podremos escribir nuestro cdigo.
Para insertar una marca de agua en Excel es necesario utilizar una tcnica alternativa
ya que la herramienta no tiene una funcionalidad integrada para esta tarea. En esta
ocasin mostrar cmo utilizar un texto o una imagen como marca de agua.
Texto como marca de agua en Excel
Una vez que te encuentras en la hoja donde deseas insertar un texto como marca de
agua debes hacer clic sobre la ficha Insertar y pulsar el botn Encabez. pie pg. que se
encuentra dentro de la ficha Texto.
Se insertar una nueva rea tanto para el Encabezado como para el Pie de pgina dentro
de la hoja de Excel. Dentro del Encabezado ingresa el texto que deseas que se muestre
como marca de agua. Selecciona el tamao adecuado de la fuente as como su color.
Finalmente, para mover el texto hacia abajo posiciona el cursor al inicio de la palabra y
presiona la tecla Entrar cuantas veces sea necesario para tener el texto a la altura que
deseas.
Para colocar una imagen como marca de agua en Excel debemos utilizar el mismo
procedimiento anterior dentro del Encabezado de una hoja solo que en esta ocasin en
lugar de escribir un texto se insertar una imagen. Una vez que estamos listos para
insertar el Encabezado debemos ir a la ficha contextual Herramientas para encabezado
y pie de pgina y pulsar el botn Imagen.
Se mostrar un cuadro de dilogo que nos permitir buscar la imagen que deseamos
insertar y al pulsar el botn Insertar se mostrar el texto &[Imagen] como parte del
Encabezado de la hoja.
Si deseas ver la imagen que has insertado en el encabezado es suficiente con hacer clic
sobre cualquier celda fuera del Encabezado y Excel mostrar la imagen.
Si deseas mover la imagen hacia abajo debers seguir la misma tcnica mostrada
anteriormente que es posicionarte al principio del texto del Encabezado, que en este
caso sera antes del smbolo &, y pulsar la tecla Entrar para mover la imagen hacia
abajo.
Si necesitas cambiar el tamao de la imagen que acabamos de insertar como marca de
agua debes seleccionar el botn Dar formato a la imagen que se encuentra en la ficha
contextual Herramientas para encabezado y pie de pgina.
Por supuesto que tendramos la opcin de ordenar hoja por hoja de manera
manual, pero eso nos llevara un tiempo considerable por lo que en esta
ocasin crearemos una macro para ordenar hojas en Excel y automatizar por
completo este proceso.
Macro para ordenar hojas de Excel alfabticamente
La macro es muy sencilla ya que haremos un recorrido de todas las hojas del
libro utilizando dos bucles For-Next. El primer bucle nos servir para tomar hoja
por hoja y el segundo bucle para comparar cada una de ellas con el resto de
las hojas del libro. Si al hacer la comparacin descubrimos que alguna hoja
debe ir detrs de la otra haremos el movimiento correspondiente. Para crear
esta macro abrir el Editor de Visual Basic y crear un nuevo mdulo (Insertar
> Mdulo) donde colocar el siguiente cdigo VBA:
1
Sub OrdenarHojas_Ascendente()
2
3
4
For a = 1 To Sheets.Count
For s = a + 1 To Sheets.Count
Sheets(s).Move Before:=Sheets(a)
End If
7
8
9
Next s
Next a
10
11
End Sub
Observa con detenimiento que este cdigo hace la comparacin de dos hojas a
la vez con la siguiente lnea de cdigo:
If UCase(Sheets(a).Name) > UCase(Sheets(s).Name) Then
Nuestro cdigo utiliza dos variables para recorrer todas las hojas. La variable
a indica la hoja actual y la variable s ser la hoja siguiente a la hoja actual.
La funcin Ucase convierte en maysculas el nombre de ambas hojas para
poder compararlas correctamente y utilizamos el operador mayor que (>) para
saber si la hoja actual es mayor que la hoja siguiente.
En programacin, una cadena de texto ser mayor que la otra si sus letras
iniciales aparecen despus en el alfabeto. Lo que evaluamos con nuestra
instruccin es si el nombre de la hoja actual aparece despus (en el alfabeto)
que el nombre de la hoja siguiente. Si dicha condicin se cumple, entonces
ser necesario moverlas de posicin para comenzar a ordenar alfabticamente.
Eso es precisamente lo que hacemos con la siguiente lnea de nuestro cdigo:
Sheets(s).Move Before:=Sheets(a)
Sub OrdenarHojas_Descendente()
2
3
4
For a = 1 To Sheets.Count
For s = a + 1 To Sheets.Count
Sheets(s).Move Before:=Sheets(a)
End If
7
8
9
Next s
Next a
10
11
End Sub
Este cuadro de dilogo tambin lo puedes abrir desde la ficha Programador >
Cdigo > Macros. Una vez abierto el cuadro de dilogo debers elegir la macro
deseada y pulsar el botn Ejecutar. Si elegimos la
subrutina OrdenarHojas_Ascendente, el resultado ser el siguiente:
Orden personalizado en
Excel
Excel nos permite ordenar los datos en un rango por cualquiera de sus
columnas utilizando el comando Ordenar de A a Z para aplicar un orden
ascendente o el comando Ordenar de Z a A para un orden descendente pero
existen ocasiones en las que necesitamos aplicar un orden personalizado en
Excel.
El comando Orden personalizado en Excel
Este comando abrir el cuadro de dilogo Ordenar el cual nos permitir ordenar
los datos por mltiples columnas e inclusive ordenarlas por el color de las
celdas. Tambin podremos crear un orden personalizado para cualquiera de las
columnas basndonos en una lista personalizada.
Cuando trabajamos en Excel es muy fcil ordenar una tabla de datos por
cualquiera de sus columnas ya sea de manera ascendente o descendente,
pero a veces necesitamos ordenar por varias columnas y la nica manera de
hacerlo es utilizando el cuadro de dilogo Ordenar.
Por ejemplo, considera un rango de datos con informacin sobre rdenes de
compra donde queremos ordenar la informacin por el nombre de la ciudad y
posteriormente por la fecha de la orden. Todo comienza por seleccionar
cualquiera de las celdas de datos y pulsando el comando Inicio > Modificar >
Ordenar y Filtrar > Orden personalizado.
Una vez que se abre el cuadro de dilogo debers elegir las opciones para el
primer nivel que son tres: Columna, Ordenar segn y Criterio de ordenacin.
Para la opcin Columna encontrars una lista con todos los encabezados de
columna de la tabla de datos y solo debers elegir aquella por la cual se
realizar el ordenamiento. Para nuestro ejemplo ser la columna Ciudad.
Observa que al detectar que la columna Fecha orden es de tipo fecha, las
opciones para el Criterio de ordenacin cambian y podemos seleccionar la
opcin De ms antiguos a ms recientes que nos permite ordenar las fechas de
manera ascendente. Para aplicar los dos niveles de ordenacin definidos
Como ya hemos visto en la seccin anterior, el botn Agregar nivel nos permite
crear nuevos criterios de ordenacin para poder ordenar los datos por varias
columnas. Pero, si por alguna razn decidimos eliminar alguno de ellos ser
suficiente con hacer clic sobre dicho criterio para seleccionarlo y en seguida
pulsar el botn Eliminar nivel.
As mismo el cuadro de dilogo Ordenar muestra el botn llamado Copiar
nivel el cual nos permite hacer una copia de cualquiera de los criterios
previamente creados. Solo ser necesario seleccionar el criterio deseado y
pulsar el botn Copiar nivel para crear una copia y posteriormente modificar
sus propiedades.
En el ejemplo mostrado previamente, los criterios de ordenacin se aplicaron
en el mismo orden en el que aparecen en el listado. Si por alguna razn deseas
modificar ese orden podrs hacerlo utilizando los botones de flechas que estn
al lado del botn Copiar nivel que son conocidos como los
botones Subir y Bajar.
Ahora los datos estn ordenados primero por fecha y luego por ciudad. Puedes
observar que para aquellas filas que tienen la misma fecha, las ciudades
aparecen en orden ascendente (alfabtico) por ejemplo, para el da 01/07/2010
aparece primero Barcelona y luego Monterrey o para el da 01/08/2010 se
muestra Bogot y despus Monterrey.
Ordenar con lista personalizada en Excel
Excel detectar automticamente los posibles colores para una misma columna
y nos permitir elegir entre ellos. Despus de elegir el color deseado y pulsar el
botn Aceptar obtendremos el siguiente resultado:
Sin importar cul de los dos mtodos anteriores utilices tendremos la misma
consecuencia que explicar a continuacin. El resultado original de la funcin
SUMA era un valor numrico pero el resultado de nuestras frmulas es una
cadena de texto. Esto implica que el valor contenido en la celda B12 ya no
podr utilizarse en otro clculo numrico porque ahora es simplemente texto.
El resultado de las dos frmulas anteriores en la celda B12 se ha alineado a la
izquierda indicando que es una cadena de texto. En la siguiente imagen
puedes observar cmo al intentar sumar el nmero uno al resultado de la celda
B12 obtendr el error #VALOR! ya que no se pueden realizar clculos con
cadenas de texto:
Para resolver este problema debers utilizar la funcin TEXTO que nos
ayudar a aplicar el formato adecuado a la fecha al momento de hacer la
concatenacin. Por ejemplo:
2
3
5
6
7
8
9
10
End Sub
Con este cdigo recorremos todas las celdas del rango A1:A7 y por cada celda
agregamos un nuevo elemento al ComboBox. Observa que el cdigo est
dentro del evento UserForm_Initializelo que ocasionar que la carga de datos
se haga en el momento en que se inicialice el formulario.
Creamos el nombre MiLista que nos servir para hacer referencia a este rango
dinmico de celdas. En el ltimo cuadro de texto, donde generalmente
colocamos una referencia a un rango de celdas, colocaremos la siguiente
frmula:
=DESREF(Ejemplo2!$A$1,0,0,CONTARA(Ejemplo2!$A:$A))
Esta frmula devolver una referencia a un rango que inicia en la celda A1 (de
la hoja Ejemplo2) y termina N filas por debajo. La cantidad de filas a
desplazarse hacia abajo ser el resultado de la funcin CONTARA que cuenta
las celdas no vacas de la columna A.
De esta manera queda creado nuestro nombre de rango dinmico que
utilizaremos para cargar datos al ComboBox. Si quieres saber un poco ms
sobre la creacin de este tipo de nombres te recomiendo leer el
artculo Nombres de rango dinmicos. En las siguientes secciones haremos
uso de este rango dinmico recin creado.
ComboBox en hoja de Excel con rango dinmico
With ComboBox1
.Value = ""
.ListFillRange = "=MiLista"
End With
6
7
8
End If
End Sub
Para hacer que un ComboBox que est ubicado dentro de un formulario cargue
sus datos desde el rango dinmico, debemos utilizar el siguiente cdigo:
1
2
3
5
6
7
8
9
10
End Sub
En este caso no es necesario agregar cdigo adicional ya que cada vez que
abramos el formulario se actualizarn los elementos del ComboBox.
Solo resta que descargues el libro de trabajo para seguir probando con los
ejemplos mostrados en este artculo. En el archivo descargado encontrars dos
hojas, la primera contiene los primeros dos ejemplos del artculo y la segunda
hoja contiene los ejemplos que hacen uso del rango dinmico.
Los estilos de celda los encontramos en la ficha Inicio dentro del grupo Estilos.
Si haces clic en el botn Estilos de celda podrs ver una gama de estilos
previamente definidos en Excel.
6
7
Sub Iniciar()
8
9
10
11
12
With ActiveWorkbook.Styles(EstiloNombre)
If .Interior.Color = EstiloColor Then
13
14
.Interior.Color = EstiloColor2
Else
15
16
17
.Interior.Color = EstiloColor
End If
End With
18
19
Application.OnTime Siguiente, "Iniciar"
20
21
End Sub
22
23
24
25
26
EstiloColor = ActiveWorkbook.Styles(EstiloNombre).Interior.Color
27
Iniciado = True
28
End If
29
30
End Sub
31
32
Sub Detener()
33
34
35
ActiveWorkbook.Styles(EstiloNombre).Interior.Color = EstiloColor
36
37
End Sub
38
EstiloColor2: Ser el color con el que se alternar el color de fondo original del
estilo de celda que para nuestro ejemplo ser el color negro (0).
vez hecho esto, solo restar ir a la ficha Vista, pulsar el botn Macros y
finalmente elegir la macro Iniciar:
En este ejemplo he elegido los colores rojo y negro como los colores
alternantes. El color rojo fue elegido grficamente al momento de crear el estilo
de celda, pero el valor numrico del color negro fue colocado directamente en
el cdigo. Si quieres alternar con un color diferente al negro, ser indispensable
conocer su valor numrico y la nica manera hacerlo en Excel es a travs de
cdigo VBA.
Conversin de unidades en
Excel
Las unidades de medida han estado presentes a lo largo de la historia de la
humanidad y son adoptadas por convencin para medir una determinada
magnitud fsica. Sin embargo, hoy en da no todos los pases del mundo han
adoptado el mismo sistema de medicin por lo que se hace necesario recurrir a
la conversin de unidades para encontrar los valores equivalentes entre
ambos sistemas.
Cuando hablamos de la conversin de unidades nos referimos primordialmente
a la conversin entre el Sistema Internacional de Unidades y el Sistema
anglosajn de unidades que son los dos sistemas ms reconocidos en el
mundo, aunque este ltimo es utilizado de manera oficial solamente por tres
pases: Estados Unidos, Liberia y Birmania.
Conversin de unidades en Excel
g Gramo
sg Slug
Unidades de longitud
m Metro
mi Milla terrestre
in Pulgada
ft Pie
yd Yarda
ang Angstrom
pica Pica
Unidades de tiempo
yr Ao
day Da
hr Hora
mn Minuto
sec Segundo
Unidades de presin
Pa Pascal
atm Atmsfera
Unidades de fuerza
N Newton
din Dina
Unidades de energa
J Julio
e Ergio
cal Calora IT
eV Electronvoltio
Wh Vatio-hora
flb Libra-pie
c Calora termodinmica
Unidades de potencia
HP Caballos
W Vatio
Unidades de magnetismo
T Tesla
ga Gauss
Unidades de temperatura
C Grado Celsius
F Grado Fahrenheit
K Kelvin
Unidades de capacidad
tsp Cucharadita
tbs Cucharada
oz Onza lquida
cup Taza
pt Pinta de EE.UU.
qt Cuarto de galn
gal Galn
l Litro
Para beneficio de todos los lectores, en especial para aquellos que no tienen
experiencia con macros, haremos este ejercicio paso a paso. Para comenzar
con la grabacin de una macro debes pulsar el botn Grabar que se encuentra
en el extremo inferior izquierdo de la barra de estado de Excel:
Esto abrir el cuadro de dilogo Grabar macro, donde tendremos que nombrar
forzosamente la macro como Auto_Open.
Una vez que has creado la macro llamada Auto_Open podrs ver su cdigo
VBA desde la ficha Vista > Macros y dentro del cuadro de
dilogo Macro debers seleccionarla y pulsar el botnModificar.
Sub Iniciar()
2
3
4
5
End Sub
Este tercer ejemplo hace uso del evento Workbook_Open por lo que es muy
similar al segundo ejemplo que hicimos, con la nica diferencia de que he
editado el cdigo de la subrutina Iniciar de la siguiente manera:
1
Sub Iniciar()
2
3
4
Worksheets("Hoja1").Range("B1").Value = _
Worksheets("Hoja1").Range("B1").Value + 1
5
6
ThisWorkbook.Save
7
8
End Sub
Las referencias en Excel son parte fundamental de la hoja de clculo ya que a travs de
ellas podemos identificar cada una de las celdas de un libro de trabajo y de esa manera
acceder al valor contenido en cualquiera de ellas.
El objetivo de este artculo es aclarar la mayor cantidad de dudas sobre el tema de
referencias en Excel y ser til para aquellas personas que comienzan a utilizar la
herramienta pero tambin para aquellos que ya tienen un poco de tiempo utilizando la
hoja de clculo y no han escuchado sobre temas como las referencias 3D o el estilo de
referencia F1C1. Los temas de los que hablar en este artculo son los siguientes:
Referencias 3D
Ya que todos los valores de una hoja de clculo estn almacenados en las celdas, es de
suma importancia para los usuarios de Excel conocer la manera en que debern acceder
a dichos valores utilizando las referencias. Sin ms prembulo, comenzaremos con este
estudio de las referencias en Excel.
Qu son las referencias en Excel?
Todo usuario de Excel debe saber que todas las hojas estn divididas en columnas y
filas. Esta divisin se hace evidente en la interfaz grfica de Excel de la siguiente
manera:
En conclusin, la referencia de una celda nos indica su ubicacin dentro de una hoja,
es decir, nos ayuda a conocer rpidamente la columna y fila a las que pertenece.
Tipos de referencias en Excel
Una referencia siempre ser la direccin de una celda dentro de una hoja y siempre
estar formada por la columna y fila en donde se ubica la celda. As que, cuando
hablamos de tipos de referencias en Excel estamos hablando sobre los diferentes tipos
de comportamiento que pueden tener las referencias al momento de ser copiadas a otras
celdas.
Es muy fcil copiar frmulas en Excel, pero qu sucede con las referencias de dicha
frmula al momento de hacer la copia? Es ah en donde su comportamiento depender
del tipo de referencia que se haya utilizado y analizaremos las alternativas que tenemos
en las prximas tres secciones.
Referencias relativas en Excel
La frmula que ha sido copiada a la celda C3 nos devolver como resultado el valor
cero. Al revisar la frmula de dicha celda nos daremos cuenta que eso se debe a que
Excel ha modificado automticamente las referencias de la frmula. En lugar de la celda
En esta ocasin la nueva celda se encuentra una fila hacia abajo y tres columnas a la
derecha de la celda original y por lo tanto las referencias se adecan a tal movimiento
aadiendo tres columnas y una fila a cada referencia de la frmula copiada.
Las referencias relativas son muy tiles cuando necesitamos aplicar una misma frmula
sobre un rango de datos. Por ejemplo, en la siguiente imagen puedes ver una hoja donde
las columnas A y B tienen valores numricos y ahora necesito colocar la multiplicacin
de ambos valores en la columna C. Para hacerlo rpidamente, coloco la frmula
=A1*B1 en la celda C1 y posteriormente copio dicha frmula hacia debajo:
Hay ocasiones en las que necesitamos fijar la referencia a una celda de manera que
permanezca igual an despus de ser copiada. Si queremos impedir que Excel
modifique las referencias de una celda al momento de copiar la frmula, entonces
debemos convertir una referencia relativa en absoluta y eso lo podemos hacer
anteponiendo el smbolo $ a la letra de la columna y al nmero de la fila de la
siguiente manera:
En este caso la celda C3 devolver el mismo resultado que la celda C1 porque ambas
frmulas hacen referencia a las mismas celdas an despus de haberla copiado.
Tendremos el mismo efecto al copiar la frmula de la celda C1 hacia la derecha:
La celda C2 hace el clculo del rea para el primer crculo tomando en cuenta el valor
de Pi que est almacenado en la celda F1. En este momento la referencia a la celda F1
es relativa y si copio la formula hacia abajo obtendr el siguiente resultado:
Todas las frmulas harn referencia a la celda F1 porque est establecida como absoluta,
pero Excel modificar correctamente las referencias a las celdas de la columna B para
obtener el resultado correcto.
Con esto hemos cubierto los dos tipos de referencias en Excel ms utilizados. Si quieres
ver algunos ejemplos adicionales sobre estos dos tipos de referencias te recomiendo
consultar el siguiente video tutorial: Referencias relativas y absolutas en Excel.
Referencias mixtas en Excel
Estos son los cuatro tipos de referencias de los cuales puedes elegir al momento de
construir tus frmulas. Recuerda que esta clasificacin se basa en el comportamiento de
la referencia al copiar una frmula.
Cmo cambiar entre tipos de referencia
Un consejo muy til para hacer ms eficiente el tiempo invertido al ingresar cualquier
referencia en una frmula es el uso de la tecla F4 cuando nos encontramos en el modo
de edicin. Cuando el cursor de edicin se encuentra sobre una referencia y pulsamos la
tecla F4, Excel cambiar el tipo de referencia sin la necesidad de que ingresemos
manualmente el smbolo $. Hagamos el siguiente ejemplo para conocer el
funcionamiento de este atajo de teclado:
1. Selecciona la celda B1 e ingresa la frmula =A1 pero no pulses la
tecla Entrar.
2. El cursor de edicin se encontrar parpadeando al final de la
referencia y si pulsas la tecla F4 una vez, la referencia se
transformar automticamente en absoluta =$A$1.
3. Si vuelves a pulsar la tecla F4 tendrs una referencia mixta como
=A$1.
4. Y si pulsas una cuarta vez la tecla F4, la referencia ser cambiada por
la otra opcin de referencia mixta =$A1.
5. Al pulsar una quinta vez la tecla F4 volvers a la referencia relativa
original.
La tecla F4 solamente cambiar la referencia que est sobre el cursor de edicin as que,
si quieres aplicar este cambio en varias referencias de una misma frmula, entonces
debers colocar el cursor sobre cada referencia que ser cambiada y pulsar F4 cada vez.
Referencias a rangos de celdas
Hasta ahora hemos visto cmo hacer referencia a una sola celda, pero Excel nos permite
hacer referencia a un conjunto de celdas adyacentes utilizando el operador de rango que
est representado por los dos puntos (:) y que deber colocarse entre dos referencias de
celdas. Sin embargo, esas dos referencias de celdas no son al azar, sino que deben ser el
extremo superior izquierdo y el extremo inferior derecho de las celdas adyacentes a las
que deseamos referirnos.
Considera el siguiente grupo de celdas adyacentes donde cada una de ellas tiene un
valor numrico. La referencia para este rango de celdas ser B2:D4 y puedes ver que
dicho rango es reconocido por Excel al momento de hacer la suma.
Esto definitivamente es una gran ventaja ya que de lo contrario tendramos que indicar
todas las referencias a las nueve celdas, pero con este mtodo podemos referirnos
fcilmente a todo el rango de celdas. Solo debes recordar que la primera referencia
corresponde a la celda del extremo superior izquierdo y la segunda referencia a la celda
inferior derecha.
En este ejemplo ambas referencias son relativas, pero nada impide que utilicemos
referencias absolutas al crear una referencia a un rango, por ejemplo: $B$2:$D$4. Todas
las reglas que explique anteriormente para las referencias relativas, absolutas y mixtas
tambin aplicarn para las referencias a rangos de celdas.
En todos los ejemplos mostrados hasta este punto he utilizado referencias dentro de la
misma hoja pero en ms de una ocasin nos veremos en la necesidad de hacer referencia
a una celda que se encuentra en una hoja diferente.
La nica regla que debemos seguir es utilizar el nombre de la hoja donde se encuentra la
celda de nuestro inters e inmediatamente colocar el signo de exclamacin () seguido
de la referencia a la celda. De esta manera, si queremos referirnos a la celda C5 de la
Hoja2, debemos hacerlo de la siguiente manera:
Una prctica que es altamente recomendable en las referencias a celdas de otra hoja, es
rodear el nombre de la hoja con comillas simples () ya que eso evitar cualquier error
en caso de que el nombre de la hoja tenga un espacio en blanco, por ejemplo:
Para saber ms sobre este tipo de referencias te recomiendo consultar el artculo Hacer
referencia a celdas de otras hojas en Excel.
Referencias a celdas en otro libro
Si la celda que necesitas acceder se encuentra en otro libro, entonces debers indicar el
nombre del libro encerrado entre corchetes [] antes del nombre de la hoja de la siguiente
manera:
Observa que en este ltimo ejemplo el nombre del libro y la hoja, as como la ruta, estn
encerrados entre comillas sencillas lo cual es ampliamente recomendable en caso de
tener espacios en blanco en los nombres de las carpetas de la ruta, o en el nombre del
libro u hoja.
Referencias 3D
Las referencias 3D son tiles cuando necesitamos hacer operaciones con las mismas
celdas en diferentes hojas. Por ejemplo, si vamos a sumar la celda A1 de la Hoja1,
Hoja2 y Hoja3, normalmente utilizaramos la siguiente frmula:
=SUMA(Hoja1!A1, Hoja2!A1, Hoja3!A1)
A diferencia de esta nomenclatura, las referencias 3D nos permiten indicar las mismas
referencias de una manera abreviada:
=SUMA(Hoja1:Hoja3!A1)
Es muy importante mencionar que no es posible utilizar este tipo de referencias con
cualquier funcin de Excel. Las funciones matemticas y estadsticas son las que
permitirn su uso pero no podrs utilizar este tipo de referencias en funciones de
bsqueda como BUSCARV o COINCIDIR.
Adems de acceder una sola celda en varias hojas utilizando las Referencias 3D,
tambin puedes crear una referencia a un rango de celdas de la siguiente manera:
=SUMA(Hoja1:Hoja3!A1:C25)
Para que Excel utilice este tipo de referencia debes ir a Archivo > Opciones > Frmulas
> Trabajando con frmulas > Estilo de referencia F1C1.
Al seleccionar esta opcin y aceptar los cambios, notars de inmediato un cambio en los
encabezados de columna ya que dejarn de ser letras y se mostrarn como nmeros.
Adems podrs observar el estilo de referencia F1C1 en el Cuadro de nombres y ya no
estar permitido utilizar el estilo de referencia anterior.
Es importante que conozcas todos los aspectos de las referencias en Excel ya que
juegan un papel fundamental en el uso de la hoja de clculo y las frmulas. Si
comprendes correctamente su funcionamiento podrs evitar una gran cantidad de
errores, y resultados incorrectos, que se generan en Excel por el uso incorrecto de las
referencias.
Pegar valores en Excel con el teclado
Todos sabemos que el mtodo abreviado de teclado para pegar es CTRL+V, sin
embargo este mtodo en Excel pega todo el contenido de una celda incluyendo su
formato. Si queremos pegar solamente el valor de una celda debemos utilizar el Pegado
especial.
De todas las opciones que existen dentro de Pegado especial, la opcin de pegar Valores
es sin duda la ms utilizada. Ya que utilizamos este comando frecuentemente
deberamos tener un mtodo abreviado de teclado para hacerlo, sin embargo no existe
uno hasta el momento.
Agregar el comando a la barra de herramientas
Para conocer el mtodo abreviado de teclado para este nuevo botn bastar con pulsar la
tecla ALT una sola vez para que Excel muestre la tecla que debemos pulsar:
Otra opcin para pegar valores en Excel con el teclado es crear una macro y asignarle
una tecla de mtodo abreviado. La macro que nos ayuda a pegar valores es la siguiente:
1 Sub PegarValores()
2 Selection.PasteSpecial Paste:=xlValues
3 End Sub
Una vez que hayas creado la macro, abre el cuadro de dilogo Macro (ALT + F8) y en la
lista de macros disponibles selecciona la macro recin creada y pulsa el botn Opciones.
Se mostrar el cuadro de dilogo Opciones de la macro donde podremos asignar una
tecla de mtodo abreviado.
Una vez elegido el mtodo abreviado para la macro podremos ejecutarla con solo pulsar
la combinacin de teclas establecidas.
INICIO
FUNCIONES
ACERCA
Cuando colocas el puntero del ratn sobre el controlador de relleno, el puntero cambia a
una cruz negra. El controlador de relleno es de mucha utilidad para generar nmeros
consecutivos en Excel y para hacerlo debemos seguir los siguientes pasos:
1. Selecciona la primera celda que tendr un nmero y escribe el valor
inicial. Por ejemplo el nmero 1.
2. En la celda inferior escribe el siguiente valor de la serie lo cual
establecer un patrn de nmeros a seguir. Escribe por ejemplo el
nmero 2.
3. Selecciona ambas celdas y arrastra el controlador de relleno hacia
abajo hasta llegar al nmero que deseas.
Otro mtodo que podemos utilizar para numerar filas automticamente en Excel es a
travs de la funcin FILA. Este mtodo mostrar siempre el nmero de la fila de cada
celda por lo que siempre tendremos un incremento lineal. Para este mtodo tambin
utilizamos el controlador de relleno para copiar la misma frmula hacia abajo. Observa
la siguiente animacin:
Una ventaja de utilizar la funcin FILA es que la podemos combinar fcilmente con una
cadena de caracteres para generar nmeros consecutivos alfanumricos.
Inclusive la funcin FILA nos puede ayudar a generar cdigos de nmeros consecutivos
muy especficos como 000-001, 000-002, etc. Estos nmeros pueden ser de mucha
utilidad para indicar cdigos de productos o nmeros de orden de compra. Para obtener
este tipo de numeracin de filas debemos utilizar la siguiente frmula:
=TEXTO(FILA(), "000-000")
Hay ocasiones en las que despus de realizar algn clculo con los datos de nuestra hoja
necesitamos reemplazar las frmulas por sus valores de manera que dicho valor
permanezca fijo y no vuelva a cambiar al momento de actualizar los clculos de la hoja.
En esta ocasin te mostrar tres mtodos para realizar esta conversin en Excel
incluyendo la creacin de una macro para automatizar dicha tarea.
Primero har un ejemplo para dejar en claro la problemtica a la que me refiero.
Supongamos que en la celda B1 de mi hoja necesito insertar la fecha y hora actuales
utilizando la funcin AHORA.
Todo funciona perfectamente hasta que cierro el libro y lo vuelvo a abrir ya que en ese
momento la funcin AHORA actualizar automticamente el valor de la celda B1 con
un valor de hora diferente.
Esta actualizacin automtica tambin suceder si se vuelven a calcular las frmulas del
libro es decir, cuando se introduce una nueva frmula en cualquier celda del libro o
cuando se pulsa la tecla F9. As que, para fijar el valor de la celda B1 ser necesario
convertir la frmula en valor y eso ser precisamente lo que trataremos en las siguientes
secciones.
Convertir frmulas en valores con Pegado Especial
Una vez que hayamos pegado los valores habr desaparecido la frmula de la celda B1
y tendremos solamente un valor, as que sin importar que se vuelvan a calcular las
frmulas del libro o que volvamos a cerrar y abrir el libro, el valor de la celda B1
permanecer exactamente igual. En la siguiente imagen puedes observar cmo la barra
de frmula ya no muestra la funcin AHORA para la celda B1 sino que muestra un
valor fijo.
Para reemplazar todas las frmulas de la columna Nombre completo ser suficiente con
seleccionar el rango C4:C6, copiar las celdas y volverlas a pegar sobre s mismas
asegurndonos de elegir la opcin Solo valores.
De esta manera habrs convertido tres frmulas a sus respectivos valores en un solo
paso y este mismo mtodo lo podrs utilizar con cuantas celdas sea necesario.
Convertir frmulas en valores con F9
El segundo mtodo que puedes utilizar para convertir frmulas en valores es pulsar la
tecla F9 al momento de estar introduciendo la frmula o al momento en que la ests
editando. En la siguiente animacin te muestro cmo hacer esta conversin al momento
de introducir una frmula.
Selection.Copy
5
6
Selection.PasteSpecial Paste:=xlPasteValues
8
9
10
Application.CutCopyMode = False
11
12
End Sub
Una vez copiado el cdigo debers guardar la nueva macro haciendo clic en el botn
Guardar de la barra de herramientas del Editor de Visual Basic.
Una vez guardados los cambios podrs cerrar la ventana del Editor y entonces asignar el
atajo de teclado a la nueva macro para lo cual debers ir a la ficha Vista en Excel y
pulsar el botn Macros.
Despus de seleccionar la macro recin creada debers pulsar el botn Opciones el cual
mostrar un nuevo cuadro de dilogo donde podremos asociar un atajo de teclado. Para
este ejemplo ser la combinacin de teclas CTRL+k tal como se muestra en la siguiente
imagen:
Debers pulsar el botn Aceptar para cerrar este cuadro de dilogo y posteriormente
pulsar el botn Cancelar para cerrar el cuadro de dilogo anterior. Para probar la macro
ser suficiente con seleccionar el rango C4:C6 y pulsar la combinacin de teclas
CTRL+k para convertir las frmulas en valores.
En el archivo de descarga he dejado las frmulas tal como las ves en la imagen anterior
de manera que puedas probar este comportamiento por ti mismo.
En esta ocasin hemos revisado tres alternativas para convertir frmulas en valores en
Excel ya sea utilizando la opcin de Pegado Especial, o pulsando la tecla F9 al
momento de ingresar o editar una frmula, o a travs de una macro la cual nos permitir
realizar la conversin utilizando un atajo de teclado.
Si ests utilizando Excel 2007, debers hacer clic en el botn Opciones y posteriormente
elegir la opcin Habilitar este contenido. Una vez que hayas realizado estas acciones
tendrs disponible todas las mejoras realizadas a la nueva versin del calendario 2015
en Excel.
Sin duda esta mejora ser de gran ayuda para identificar visualmente cualquier fecha
importante. Lo mejor de todo es que la asignacin de la categora se har en un solo
lugar y se replicar automticamente en todos los calendarios disponibles. Ms adelante
explicar con detalle lo sencillo que es asignar una categora para cualquier da del ao
as como algunas opciones de personalizacin de estas categoras.
La segunda mejora en el calendario 2015 es la insercin automtica de comentarios para
cualquier da del ao y es la razn por la cual se utilizan las maros. Por ejemplo, si para
el da 1 de enero del 2015 elijo la categora Festivo y adems proporciono el comentario
Ao Nuevo, dicho texto ser insertado automticamente como un comentario en la
celda para dicho da y ser mostrado al momento de colocar el puntero del ratn sobre la
celda:
Esta insercin de comentario se hace automticamente con una macro y de igual manera
se encargar de actualizar o de eliminar los comentarios al momento de indicarlo en la
hoja correspondiente. En las prximas secciones explicar con detenimiento la manera
de elegir una categora y de indicar este tipo de comentarios para cualquier da del ao.
A diferencia del formato anterior, en este calendario por meses cada da del ao est
dividido en dos celdas. La celda superior es la que contiene la fecha para cada da y ser
la celda a la que se aplicar el color de relleno de acuerdo a la categora seleccionada as
como el comentario en caso de tenerlo .
La celda inferior de cada da es de libre captura y podrs insertar cualquier texto que te
ayude a organizar y mantener el control de las actividades del da.
Festivo Verde
Aniversario Azul
Vacaciones Amarillo
Importante Anaranjado
Si quieres remover la categora de algn da ser suficiente con seleccionar dicha celda
y pulsar la techa Suprimir. Por ltimo, la tercera columna de la hoja Diario nos permite
indicar el comentario que ser insertado en los calendarios de las hojas Completo,
Mensual y Mini.
Es as como la hoja Diario nos permitir elegir la categora de cada da del ao y por lo
tanto su color de relleno, as como los comentarios que sern insertados
automticamente en los diferentes calendarios. Finalmente debo decir que para eliminar
un comentario ser suficiente con seleccionar la celda correspondiente bajo la columna
Comentarios de la hoja Diario y pulsar la tecla Suprimir.
Por ejemplo, si deseas renombrar las categoras por el nombre de cada color, la tabla
quedar de la siguiente manera:
Esto ocasionar que en la hoja Diario, al momento de elegir una categora para
cualquier da, la lista de nombres disponibles muestre los cambios hechos en la hoja
Configuracin.
Es importante tener cuidado con la hoja Configuracin ya que es necesario mantener sin
cambios la columna ID porque dicho identificador es utilizado para actualizar el color
de relleno en los diferentes calendarios. Por otro lado, la columna Color solamente se
muestra con motivos ilustrativos y el hecho de cambiar el color de relleno de esas celdas
no ocasionar un cambio en los colores asignados a las categoras.
Si deseas hacer un cambio en los colores asignados a las categoras, o agregar categoras
nuevas, ser necesario hacer algunos ajustes avanzados dentro del libro los cuales
explicar en la siguiente seccin pero que solo recomiendo si tienes experiencia
trabajando con formatos condicionales.
Si por el contrario deseas agregar una nueva categora al calendario, debers comenzar
por agregar su descripcin en la hoja Configuracin. Por ejemplo, en la siguiente
imagen he agregado la categora Celebracin con el identificador 6 y un color prpura.
Recuerda que el color indicado en esta hoja es solamente ilustrativo y solo es til para
recordar el color asignado a la categora pero no tiene efecto alguno sobre el calendario.
El siguiente paso ser crear una nueva regla de formato condicional dentro de cada hoja
del libro indicando una frmula similar a la siguiente:
=SI.ERROR(INDICE(DiasCategorias, B5-FechaInicio+1),0)=6
Con estos dos ajustes habrs creado una nueva categora dentro del calendario 2015 y al
momento de elegirla dentro de la hoja Diario se aplicar el color de relleno
correspondiente en los calendarios de las diferentes hojas.
Podemos agrupar por fechas una tabla dinmica con tan solo seguir algunos pasos
sencillos. Supongamos que tengo una tabla de datos que contiene las ventas de
diciembre del 2011 y de enero del 2012 de la siguiente manera:
Despus de crear una tabla dinmica basada en este rango de datos obtenemos el
siguiente resultado:
Los datos en la tabla dinmica se ven exactamente igual que el rango de datos origen
porque no hemos agrupado por fechas.
Agrupar por fechas una tabla dinmica
Para agrupar por fechas una tabla dinmica debemos hacer clic derecho en cualquier
celda de la columna de fechas y seleccionar la opcin de men Agrupar. Se mostrar el
cuadro de dilogo Agrupar.
En este cuadro de dilogo debes seleccionar las opciones Meses y Aos de manera que
la tabla dinmica haga una clara distincin entre los meses de 2011 y 2012. Al pulsar el
botn Aceptar tendremos los datos agrupados por fecha.
Para desagrupar los datos debemos hacer clic derecho sobre una celda de la columna de
fechas y seleccionar la opcin Desagrupar.
Uso de nombres en Excel
Cuando hacemos referencia a una celda utilizamos su direccin: columna y fila, pero
Excel nos permite crear nombres para referirnos a esa misma celda o rango de celdas.
Despus de definir un nombre lo podremos utilizar dentro de nuestras frmulas.
Crear un nombre en Excel
Lo mismo podemos hacer para un rango de celdas. Selecciona todas las celdas del rango
y escribimos su nombre:
Una vez que hayas creado varios nombres podrs administrarlos utilizando el
Administrador de nombres. Este comando lo encontrars en la ficha Frmulas dentro del
grupo Nombres definidos. Al pulsar el botn se mostrar el cuadro de dilogo
Administrador de nombres:
Desde este cuadro de dilogo podrs editar y eliminar los nombres previamente creados.
Tambin podrs crear nuevos nombres al pulsar el botn Nuevo.
Utilizar los nombres en Excel
Podemos utilizar los nombres en Excel dentro de nuestras frmulas y de esta manera
hacer que la frmula sea ms fcil de entender. En el siguiente ejemplo calcular el
porcentaje de comisin que le corresponde a Anglica por las ventas realizadas durante
el primer trimestre del ao:
Observa que en la frmula he utilizado la funcin SUMA para obtener el total de las
ventas. La frmula SUMA(Ventas) equivale a tener la frmula SUMA(B4:B6) pero ya
que dicho rango tiene un nombre asignado puedo utilizarlo en lugar de la direccin.
Finalmente el resultado de la suma es multiplicado por el nombre Comisin que
corresponde a la celda B1.
La declaracin If-Then-Else
Parece que todo funciona muy bien en el cdigo anterior pero an lo podemos mejorar
agregando la declaracin Else de manera que tengamos una declaracin de la forma IfThen-Else. Esta variante nos permite hacer la siguiente evaluacin: Si se cumple la
condicin Entonces haz esto De lo contrario haz otra cosa.
La declaracin Else en VBA nos permite indicar otro bloque de instrucciones que se
deben ejecutar en caso de que la condicin sea falsa. De esta manera podemos tomar
una accin determinada en caso de que la condicin se cumpla o en caso de que no se
cumpla. Ahora modificar el ejemplo anterior para asegurarme de que en caso de que la
condicin de calificacin mayor o igual a 60 no se cumpla se despliegue el resultado
reprobado. Observa el siguiente cdigo.
Por ltimo quiero que observes que en este segundo ejemplo la declaracin If-ThenElse termina con la declaracin End If. Siempre que utilicemos la declaracin If-Then o
la declaracin If-Then-Else debemos terminar con End If.
La nica ocasin donde no se termina con End If es cuando la declaracin If-Then se
puede colocar en una sola lnea como es el caso del primer ejemplo de este artculo.
Ejemplo de casilla de verificacin en Excel
En la celda B3 tenemos el costo normal del evento y en la celda B4 el costo del evento
con membresa. Las casillas de verificacin estn bajo la columna Miembro y el precio
del evento se muestra bajo la columna Costo. En caso de seleccionar la casilla de
verificacin el valor del costo deber modificarse por el valor de la celda B4.
Vincular casilla de verificacin a una celda
El primer paso ser vincular la casilla de verificacin a una celda. Para ello abrimos las
propiedades de cada control y especificamos la celda a la que quedar vinculada en la
propiedad LinkedCell.
diferentes. En la siguiente imagen puedes ver que todas las cajas de verificacin han
quedado vinculadas a una celda:
Finalmente ocultar la columna E para que no se vean las celdas vinculadas y colocar
la frmula de suma en la celda C11 para mostrar el costo total. Observa el
comportamiento de la columna Costo y la suma total al momento de seleccionar las
casillas de verificacin.
Una casilla de verificacin es un control ActiveX que podemos utilizar para permitir
que un usuario marque una opcin y por lo tanto poder conocer sus preferencias al
verificar dicho valor en cdigo VBA.
El control ActiveX casilla de verificacin
La otra propiedad de una casilla de verificacin que tal vez quieras modificar ser la
propiedad Value que de manera predeterminada tendr el valor False lo cual indica que
el control se mostrar desmarcado. Si deseas que el control se muestre marcado de
manera predeterminada, debes poner el valor True en la propiedad Value:
Una casilla de verificacin nos dir su ha sido seleccionada o no, es decir, nos
devolver un valor FALSO o VERDADERO. Para leer este valor debemos acceder a la
propiedad Value del control de la siguiente manera:
Private Sub CheckBox1_Click()
Range("C4").Value = CheckBox1.Value
End Sub
Esta lnea de cdigo coloca el valor de la casilla de verificacin en la celda C4. De esta
manera, al seleccionar la casilla de verificacin obtendr el siguiente resultado:
Para validar en VBA si la casilla de verificacin tiene un valor u otro podemos utilizar
un cdigo como el siguiente:
If CheckBox1.Value = True Then Range("C4").Value = 1
If CheckBox1.Value = False Then Range("C4").Value = 0
El segundo paso ser pulsar el comando Cmara, el cual tomar la fotografa de las
celdas seleccionadas y nos permitir pegar la imagen en cualquier otra rea de la misma
hoja o en otra hoja del libro con tan solo hacer clic. Observa cmo realizo esta accin:
Puedes notar que Excel trata este elemento como una imagen ya que nos permite rotarla
e inclusive cambiarla de tamao. Tambin podrs observar que al seleccionarla se
mostrar la ficha contextual Herramientas de imagen sin embargo no es cualquier
imagen. Observa cmo al modificar los datos en la tabla original, se actualiza la
informacin dentro de la imagen: