Excel Total

Embed Size (px)

Citation preview

Calcular una fecha futura en ExcelEn ocasiones necesitamos calcular la fecha que corresponde a cierta cantidad de das posteriores a la fecha actual, por ejemplo, qu fecha ser dentro de 10 das? Afortunadamente este tipo de clculo es muy fcil de realizar en Excel.Determinar una fecha finalSi queremos conocer la fecha de conclusin de una tarea y sabemos su fecha de inicio y su duracin, entonces ser tan simple como hacer una suma en Excel, por ejemplo:=HOY() + 10La funcin HOY nos devolver la fecha actual y al sumar el valor 10 obtendremos la fecha que corresponde a diez das posteriores al da de hoy. Este clculo funciona para cualquier fecha y lo puedes observar en el siguiente ejemplo donde hago la misma operacin pero con diferentes fechas de inicio y duracin:

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.Las fechas en Excel son nmerosLos clculos de fechas son muy sencillos de realizar porque las fechas en Excel son en realidad nmeros enteros. Si tienes tiempo utilizando Excel sabrs que todas las celdas tienen un valor, y que dicho valor puede desplegarse en pantalla de una manera diferente lo cual sucede con las fechas: su valor es numrico pero se despliega en pantalla con un formato que estamos acostumbrados a reconocer como fecha. Por ejemplo, si en una celda de Excel colocas el valor 1 y posteriormente le das el formato de fecha corta, observars que Excel cambia el valor desplegado de la celda por la fecha 01/01/1900.

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.Ejemplo: Calcular la fecha de partoComo 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)Calcular una fecha futura en das laborablesLos ejemplos que hemos desarrollado hasta ahora hacen los clculos con das naturales es decir, tomando en cuenta todos los das del calendario. Sin embargo, es muy comn vernos en la necesidad de calcular una fecha futura pero considerando los das de descanso semanal.Por ejemplo, supongamos que para los datos de nuestro primer ejemplo necesitamos sumar la duracin en das laborables a partir de la fecha de inicio, es decir, sin contabilizar los sbados y los domingos. Para lograr este tipo de clculo podemos utilizar la funcin DIA.LAB de la siguiente manera:

Debes tener cuidado de no confundir la funcin DIA.LAB con la funcin DIAS.LAB ya que la diferencia es solamente una letra. La funcin DIA.LAB calcular una fecha a partir de un nmero especificado de das laborables. Tambin es importante recordar que esta funcin siempre considerar el fin de semana como los das sbado y domingo y no hay nada que podamos hacer para modificar dicho comportamiento. Pero si necesitas usar das de descanso diferentes, entonces debes utilizar la funcin DIA.LAB.INTL que en su tercer argumento nos permitir elegir de un listado de opciones para los das de descanso:

Si elijo el nmero 17 para nuestros datos de ejemplo, se calcular la fecha final considerando el da sbado como el nico da de descanso semanal y por lo tanto obtendremos el siguiente resultado:

Es as como al utilizar ambas funciones, DIA.LAB y DIA.LAB.INTL, podemos calcular una fecha futura en Excel considerando los das de descanso semanal. La primera funcin tiene establecidos los das de descanso como sbado y domingo mientras que la funcin DIA.LAB.INTL nos permitir elegir los das de descanso que mejor convengan para nuestros clculos.Determinar una fecha de vencimiento en ExcelTengo 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 dasSi la columna de duracin est en das, entonces el clculo es muy sencillo porque solamente necesito sumar ambas columnas para obtener la fecha de vencimiento.

Duracin en mesesPor 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 segundo paso en este procedimiento es extraer el mes de la fecha inicio utilizando la funcin MES y adems sumarle el nmero de meses de la duracin. Esto har que Excel sume los meses necesarios que necesitamos para llegar a la fecha de vencimiento.

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.

Es importante notar que la funcin FECHA ajusta automticamente el ao en caso de que sea necesario. En nuestro ejemplo, al sumar 2 meses a la fecha 30 de diciembre del 2011 forzosamente tendra que dar como resultado una fecha en el ao 2012 y Excel hace el clculo correctamente.Duracin en aosEn 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 transcurridoCalcular 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:

Tiempo transcurrido en dasPuede 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-B2Excel 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 segundosEl 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 * 24Y 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 * 60Finalmente, 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 semanasComo 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 / 7Das laborablesEl 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 aosObtener 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:

De una manera similar, esta funcin obtiene los aos transcurridos:

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 ExcelExcel 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 ExcelExcel 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 fechaEs realmente sencillo conocer el valor numrico de una fecha, solamente cambia el formato de la celda que contiene una fecha a un formato General y Excel desplegar su valor numrico.

La funcin FECHAFinalmente mencionar la funcin FECHA la cual nos ayuda a obtener el nmero de serie que le corresponde a una fecha dados el da, el mes y el ao.

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 ExcelLa 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.LABPrimero comprobar lo que he dicho. As que utilizar la funcin DIAS.LAB para calcular los das laborables del mes de enero del 2011. Observa el siguiente ejemplo.

Efectivamente existen 21 das laborables en el mes de enero considerando los sbados y domingos como fin de semana. Pero si quisiera tomar como das de descanso el viernes y el sbado el nmero de das laborables del mes sera diferente. Para obtener el resultado deseado utilizar la funcin DIAS.LAB.INTL.La funcin de Excel DIAS.LAB.INTLLa 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 segundosHablando de trigonometra y los sistemas de medicin de ngulos nos encontramos con que existen dos sistemas de medicin muy comunes: el sistema decimal y el sistema sexagesimal. En esta ocasin crearemos una frmula en Excel para convertir del sistema decimal al sexagesimal.El sistema sexagesimalEl sistema sexagesimal es un sistema que divide cada unidad en 60 unidades de orden inferior, es decir, es un sistema en base 60. Este sistema lo podemos ver reflejado en la medida del tiempo, pero tambin es ampliamente utilizado para medir la amplitud de los ngulos donde las unidades de medicin son los grados, minutos y segundos.Hoy en da existen aplicaciones de computadora, como AutoCAD, que hacen mediciones de ngulos y que nos permiten elegir un sistema de medicin, ya sea el sistema de grados decimales o el sistema de grados, minutos y segundos (sexagesimal). Por esta razn se hace conveniente encontrar un mtodo eficaz para convertir los valores entre ambos sistemas.Algoritmo de conversinAntes de presentar la frmula de Excel que realiza esta conversin, es importante mostrar los pasos para convertir un valor del sistema decimal al sistema sexagesimal y as podremos comprobar que la frmula propuesta funcionar correctamente. Como ejemplo convertiremos el valor decimal 121.135 al sistema sexagesimal de la siguiente manera:1. La parte entera de los grados decimales ser tambin los grados del sistema sexagesimal (121).2. Multiplicar los decimales del valor original por 60 (.135 * 60 = 8.1).3. La parte entera del resultado anterior sern los minutos (8).4. Multiplicar los decimales del paso 2 por 60 (.1 * 60 = 6).5. El resultado del paso anterior sern los segundos (6).6. Tomar los resultados de los pasos 1, 3 y 5 para formar el resultado final (12186).Siguiendo estos mismos pasos podremos convertir grados decimales a grados, minutos y segundos sin mayor problema, as que basados en este algoritmo de conversin puedes comprobar que los siguientes resultados son correctos: 10.46 = 102736 36.30 = 36180 132.39 = 1322324Frmula en Excel para convertir grados decimalesAunque 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 ACERCACmo eliminar datos repetidos en ExcelExcel 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 avanzadoLa 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:

Copiar a otro lugar: Copiar el resultado a otro rango de celdas. Rango de lista: Debes colocar el rango que contiene los datos originales. Copiar a: Indica la celda donde se iniciar la copia de los datos. Slo registros nicos: Esta es la opcin ms importante de todas ya que se encargar de hacer una copia de los registros nicos eliminando as los datos repetidos.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 duplicadosA 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:

El comando Quitar duplicados detectar los encabezados en los datos y marcar automticamente la opcin Mis datos tienen encabezados en caso de haber encontrado alguno. Adems se mostrar la lista de columnas donde se buscarn los valores duplicados y podremos seleccionar las columnas que necesitamos incluir en la validacin. Al pulsar el botn Aceptar se eliminarn los datos repetidos y podremos ver un mensaje con los resultados del comando recin ejecutado:

Es importante recordar que al eliminar datos repetidos con el comando Quitar duplicados estaremos afectando directamente los datos originales.Eliminar repetidos con Tabla dinmicaOtro 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:

Ahora ya conoces diferentes alternativas para eliminar datos repetidos en Excel. Puedes experimentar con todas ellas y elegir la que mejor se acomode a tus necesidades.Cmo obtener el nombre de mes en ExcelCuando 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 fechaAlgunos pensaran que cambiando el formato de la fecha, por un formato que despliegue el nombre del mes, sera posible utilizar la funcin EXTRAEpara obtener el nombre del mes. Sin embargo, pronto se dan cuenta de que eso no es posible dada la naturaleza de las fechas en Excel.Las fechas jams podrn ser tratadas como cadenas de texto ya que son valores numricos. Lo que sucede es que Excel cambia la manera de desplegar el nmero en pantalla aplicando ciertos formatos personalizados de celdas de manera que se muestre como una fecha para nosotros.Para comprobar lo que acabo de mencionar har un pequeo ejemplo. En la siguiente imagen puedes observar la misma serie de fechas en las columnas A, B y C donde la nica diferencia es el formato de la fecha. Si la columna C fuera una cadena de texto, entonces podra extraer el primer carcter de la izquierda con la siguiente frmula:=EXTRAE(C2,1,1)Ahora observa el resultado de la frmula anterior al aplicarla sobre los datos de ejemplo:

El resultado de la funcin EXTRAEes el nmero 4 aun cuando dicho nmero no forma parte de la fecha mostrada en la celda C2. Lo que sucede es que la fecha 1 de enero de 2013 tiene asignado el nmero 41275 y la funcin EXTRAE nos est devolviendo acertadamente el primer dgito de dicho nmero.Frmula para obtener el nombre de mesAhora 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")La celda A2 contiene la fecha 01/01/2013, as que le corresponde el mes de enero el cual ser desplegado con el formato 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 BasicEl 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.

En la parte izquierda se muestra el Explorador de proyectos el cual muestra el proyecto VBA creado para el libro actual y adems muestra las hojas pertenecientes a ese libro de Excel. Si por alguna razn no puedes visualizar este mdulo puedes habilitarlo en la opcin de men Ver y seleccionando la opcin Explorador de proyectos.

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.

Creando una funcin VBAComo 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 palabra clave FunctionLa 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 VBALos 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 retornoComo mencion al principio, la caracterstica principal de una funcin es que puede regresar un valor. Es por eso que al definir una funcin se debe indicar el tipo del valor de retorno que tendr dicha funcin. En este caso el valor de retorno ser de tipo Double y se est especificado por las palabrasAs Double que aparecen despus de los parntesis.Cuerpo de la funcin VBAUna 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 valorUna 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 VBAFinalmente 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 ACERCANombres de rango dinmicosExcel 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 DESREFPara 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)Y para contar las columnas que no estn vacas:=CONTARA($1:$1)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.Editar el nombre de rangoAhora 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 cmovoy agregando nuevos valores en la columna A y son considerados automticamente en la suma de la celda D5:

Fijar la fecha y hora en ExcelEn ocasiones necesitamos insertar la fecha y hora actuales en una celda de nuestra hoja y que dicho valor permanezca fijo despus de haberlo insertado. Muchos intentarn hacerlo con las funciones de Excel, pero pronto se darn cuenta que no es posible.Insertar fecha y hora con funcionesAl utilizar funciones de Excel para insertar la fecha y la hora, el valor mostrado en la celda ser actualizado automticamente al momento de recalcular las frmulas y por lo tanto los valores de la fecha y hora jams sern fijos.Puedes comprobar este comportamiento utilizando la funcin AHORA, que nos devuelve tanto la fecha como la hora actual. Es probable que al ingresar la funcin se muestre solamente la fecha, pero podemos cambiar el formato personalizado de la celda por dd/mm/aaaa hh:mm para mostrar tambin la hora:

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 tecladoLa 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: Insertar la fecha actual: Ctrl + , (coma) Insertar la hora actual: Ctrl + : (dos puntos)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 actualesTambin 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:123Private Sub CommandButton1_Click()Range("B1").Value = NowEnd 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 de la funcin Now y si quisiera insertar solamente la hora debera utilizar la funcin Time.Si al utilizar este mtodo la celda muestra el error ###### ser porque la columna est demasiado angosta como para mostrar la fecha y hora, pero se resolver fcilmente con tan solo aumentar el ancho de la columna.Descarga el libro de trabajo y comprueba el uso de estas tres funciones VBA que sern tiles para fijar la fecha y hora en Excel.Cmo resaltar la fila de la celda activa en ExcelCuando 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 globalEl 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:1Public 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.

Inicializar la variable celdaActivaEn 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:1234Private Sub Workbook_Open()Set celdaActiva(1) = ActiveCellActiveCell.EntireRow.Interior.Color = RGB(255, 145, 145)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:

Resaltar la fila de la celda activaAhora 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:123456Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)Set celdaActiva(0) = celdaActiva(1)Set celdaActiva(1) = TargetceldaActiva(0).EntireRow.Interior.Color = xlNoneTarget.EntireRow.Interior.Color = RGB(255, 145, 145)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 utilizadoEl 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 activaUna 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:1234567891011121314151617181920Private Sub Workbook_Open()Set celdaActiva(1) = ActiveCellActiveCell.EntireRow.Interior.Color = RGB(255, 145, 145)ActiveCell.EntireColumn.Interior.Color = RGB(255, 145, 145)End SubPrivate Sub Workbook_SheetActivate(ByVal Sh As Object)Set celdaActiva(1) = ActiveCellActiveCell.EntireRow.Interior.Color = RGB(255, 145, 145)ActiveCell.EntireColumn.Interior.Color = RGB(255, 145, 145)End SubPrivate Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)Set celdaActiva(0) = celdaActiva(1)Set celdaActiva(1) = TargetceldaActiva(0).EntireRow.Interior.Color = xlNoneceldaActiva(0).EntireColumn.Interior.Color = xlNoneTarget.EntireRow.Interior.Color = RGB(255, 145, 145)Target.EntireColumn.Interior.Color = RGB(255, 145, 145)End Sub

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:

Cmo restar en ExcelCuando comenzamos a utilizar las hojas de clculo es normal preguntarnos cmo realizar las operaciones aritmticas ms elementales como sumar y multiplicar, pero estoy seguro que cuando eras principiante en Excel te preguntaste en ms de una ocasin cmo restar en Excel.La funcin RESTA en Excel?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)En esta frmula he colocado el valor -3 como segundo argumento de la funcin SUMA y por lo tanto al realizar el clculo obtendr el resultado de la operacin diez menos tres:

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:

Observa que he especificado valores negativos en las celdas B1 y C1 y por lo tanto la funcin SUMA en realidad estar haciendo una resta de dichos nmeros. De esta manera podemos concluir que al no existir la funcin RESTA en Excel, podemos utilizar la funcin SUMA siempre y cuando indiquemos los valores negativos.El operador aritmtico para la restaUna 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-D1Tambin 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.

Si quieres saber un poco ms sobre los operadores aritmticos en Excel consulta el artculo: Tipos de operadores en Excel.Restar con la funcin IM.SUSTRLa 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:

La celda C1 muestra correctamente el resultado de la operacin 10 menos 3. La nica peculiaridad del resultado es que el nmero 7 est alineado a la izquierda, lo cual nos indica que Excel lo ha identificado como una cadena de texto. Esto se debe a que los nmeros complejos son representados en Excel como cadenas de texto, as que debes tener eso en cuenta si alguna vez decides utilizar la funcin IM.SUSTR para hacer una resta en Excel.Filtros en ExcelLos 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 decrear filtros en Excel.

Cmo crear filtros en ExcelPara 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 ExcelPara 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 columnasSi queremos segmentar an ms los datos mostrados en pantalla podemos filtrar por varias columnas. En el ejemplo anterior filtr las filas pertenecientes a Hugo, pero si adems necesito saber las que pertenecen a la regin Norte y Sur, entonces debo seleccionar dichas opciones dentro del filtro de la columna Regin:

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 ExcelPara 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.

Filtrar en Excel buscando valoresYa 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 comodines como el asterisco (*) o el smbolo de interrogacin (?) tal como si hiciramos una bsqueda aproximada en Excel de manera que podamos ampliar los resultados de bsqueda.Filtros de texto en ExcelAdems 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:

Al elegir cualquiera de estas opciones se mostrar un cuadro de dilogo que nos permitir configurar cada uno de los criterios disponibles. Por ejemplo, al elegir la opcin Comienza por se mostrar el siguiente cuadro de dilogo:

Si colocamos la letra a en el cuadro de texto junto a la opcin comienza por, entonces Excel mostrar solamente los elementos de la columna Vendedor que comiencen por la letra a.Filtros de nmero en ExcelDe 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 ExcelLas 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 ExcelNo 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.

Sumar y contar celdas por color de formato condicionalHace algunos meses publique el artculo Operaciones con colores en Excel y de inmediato recib preguntas sobre la posibilidad de utilizar dichas funciones para evaluar los colores aplicados a una celda a travs del formato condicional.Las funciones creadas en ese artculo evalan la propiedad Interior.Color que tiene cada una de las celdas en Excel, sin embargo, el formato condicional no utiliza dicha propiedad sino que tiene su propia versin para almacenar el color de fondo de una celda. Por esa razn no es posible utilizar dichas funciones para evaluar colores establecidos a travs de una regla de formato condicional.As que hoy crearemos una nueva funcin VBA (UDF) para sumar y contar celdas por color de formato condicional. Pero antes de iniciar con el cdigo hablaremos un poco sobre los objetos y propiedades que debemos evaluar para obtener el color de fondo proveniente de un regla de formato condicional.La coleccin FormatConditionsPrimero 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.Para comprender el funcionamiento de esta coleccin haremos un ejemplo. Considera la siguiente lista de nmeros en el rango A1:A10 donde he aplicado una regla de formato condicional que resalta en color rojo los valores mayores a 750.

Ahora insertar un botn de comando ActiveX en la misma hoja y colocar el siguiente cdigo VBA en su evento Click:123Private Sub CommandButton1_Click()MsgBox Range("A1:A10").FormatConditions.CountEnd Sub

La nica lnea de cdigo ejecutada se encargar de mostrar el valor de la propiedad Count de la coleccin FormatConditions la cual contiene el recuento de las reglas de formato condicional para el rango indicado. Al hacer clic sobre el botn de comando se mostrar el siguiente mensaje:

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:

Es as como la coleccin FormatConditions nos permite obtener informacin sobre las reglas de formato condicional aplicadas a un rango de celdas. Ahora centraremos nuestra atencin a una propiedad especfica de dicha coleccin.La propiedad FormatCondition.Interior.ColorCada 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:123456Private Sub CommandButton2_Click()For i = 1 To Range("A1:A10").FormatConditions.CountMsgBox "Regla " & i & vbLf & _"Color: " & Range("A1:A10").FormatConditions(i).Interior.ColorNext iEnd Sub

El cdigo anterior recorre todos los elementos de la coleccin FormatConditions y para cada elemento mostrar un mensaje con el nmero de regla y su color de relleno que est almacenado en la propiedad Interior.Color. Al pulsar el botn obtengo el siguiente resultado:

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 celdaEl 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.12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849Function COLORFC(Celda As Range) As Long'Indicar si la relga de formato condicional est activaDim ReglaActiva As Boolean'Recorrer todas las reglas de formato condicional para la celda indicadaFor i = 1 To Celda.FormatConditions.Count'Evaluar la regla FormatConditions(i)With Celda.FormatConditions(i)'Si la regla est basada en el valor de la celdaIf .Type = xlCellValue Then'Identificar el operador de la regla y evaluar si est activaSelect Case .OperatorCase xlBetween: ReglaActiva = Celda.Value >= Evaluate(.Formula1) _And Celda.Value Evaluate(.Formula1)Case xlLess: ReglaActiva = Celda.Value < Evaluate(.Formula1)Case xlGreaterEqual: ReglaActiva = Celda.Value >= Evaluate(.Formula1)Case xlLessEqual: ReglaActiva = Celda.Value