lunes, 29 de noviembre de 2010

Fórmulas dinámicas utilizando la función CELDA (CELL)

Una de las ventajas de Excel es que permite crear libros de trabajo que sean interactivos y que puedan producir diferentes resultados dependiendo de ciertos valores ingresados por el usuario. Esta interactividad permite explorar la información de diversas maneras haciendo mucho más útil nuestro libro de trabajo.

La interactividad puede lograrse de diversas formas pero una de las más sencillas para el usuario final es ir seleccionando distintas celdas y utilizar su contenido como parámetro para que produzca distintos resultados. Este proceso es muy fácil ya que el usuario solo debe seleccionar distintas celdas para ver como se actualiza el contenido. Para lograrlo utilizaremos la función llamada CELDA, que nos permite obtener información de una celda de nuestra planilla de cálculo.

La función CELDA (CELL para la versión en Inglés), tiene dos parámetros. El primero indica el tipo de información que se quiere obtener y el segundo es la celda sobre la cual buscaremos información.

Si queremos saber si la celda B8 está protegida podemos usar la siguiente fórmula =CELDA("proteger",B8), si el valor devuelto es 1 entonces está protegida y si el valor es 0 entonces no está protegida. Hacer clic en http://office.microsoft.com/es-es/starter-help/celda-funcion-celda-HP010342226.aspx?CTT=1 para ver los distintos parámetros de la función CELDA.

Si omitimos el segundo parámetro, la función CELDA devolverá información de la celda activa. Por ejemplo la fórmula =CELDA("DIRECCION") devuelve la dirección de la celda activa.


Veamos el ejemplo

Tenemos un listado de ventas de productos por país y queremos que al seleccionar una celda de la tabla nos informe el total del producto y del territorio incluido en esa línea.


Para el caso del territorio podemos usar la fórmula =SUMAR.SI(A2:A14,INDIRECTO(CELDA("direccion")),C2:C14). Utilizamos la función INDIRECTO para que el valor devuelto por la función CELDA sea transformado a una referencia que luego es utilizada por SUMAR.SI como la condición para realizar la suma.

Para realizar el total del producto simplemente cambiamos el rango que se usa como primer parámetro de la función SUMAR.SI quedando de la siguiente forma =SUMAR.SI(B2:B14,INDIRECTO(CELDA("direccion")),C2:C14).

Esta fórmula solo funciona si estamos en la columna correcta, para solucionarlo haremos algunos cambios en las formulas.

En primer lugar vamos a definir nombres para que la formula no sea tan larga y difícil de entender. Por un lado definimos el nombre UltCelda al que le asignamos la fórmula =CELDA("dirección") y luego nombre UltCol a la fórmula =CELDA("columna") y UltFila a la fórmula =CELDA("fila").



Para saber si la celda activa se encuentra dentro del rango de la tabla usamos la función SI y chequeamos que los valores de UltFila y UltCol estén dentro de los límites de la tabla de la siguiente forma =SI(O(UltCol>2,UltFila>14),"Fuera de rango",…).

Para obtener el nombre del producto sin importar en que columna de la tabla me encuentro, utilizamos =DESREF(INDIRECTo(UltCelda),0,2-UltCol), lo que nos permite ajustar la celda con el cálculo 2-UltCol. Si estoy en la columna A entonces 2-Ultcol será igual a 1 y eso nos desplazará una columna devolviendo la referencia a la columna B.

La fórmula final para los países es =SI(O(UltCol>2,UltFila>14),0,SUMAR.SI(A2:A14,DESREF(INDIRECTO(UltCelda),0,1-UltCol),C2:C14)) y para los productos =SI(O(UltCol>2,UltFila>14),0,SUMAR.SI(B2:B14,DESREF(INDIRECTO(UltCelda),0,2-UltCol),C2:C14)).

El último paso consiste en hacer que Excel recalcule la hoja cuando cambiamos de celda. Seleccionar una nueva celda no es suficiente para que Excel recalcule toda la hoja por lo tanto tenemos que agregar una pequeña macro para hacerlo.

La macro debe agregarse en la hoja que contiene las fórmulas antes explicadas.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub


Esta macro se ejecuta cada vez que se cambia la celda activa y lo que hace es forzar un recalculo de la hoja.

Para acceder al archivo de ejemplo hacer clic aquí.

lunes, 4 de octubre de 2010

Cálculo de antiguiedad de deuda con INDICE y COINCIDIR

En una nota anterior expliqué como utilizar las funciones INDICE y COINCIDIR (INDEX y MATCH) para buscar valores, en la nota de hoy explicaré como utilizar ambas funciones para construir un cálculo de antigüedad de deuda.

Tenemos un listado de facturas con sus fechas de vencimiento y los importes.


Cálculamos los días desde el vencimiento utilizando una fecha de referencia ubicada en la celda J7, también se puede utilizar la fecha actual para que se actualice automáticamente. Para realizar el cálculo pero tomando días laborales debemos utilizar la fórmula DIAS.LAB.

Una forma de resolverlo es con SI anidados utilizando la siguiente fórmula =SI(D2<30,"0-30",SI(D2<60,"30-60",SI(D2<90,"60-90","+90"))). El problema que presenta esta solución es que se puede volver muy grande si tenemos varios rangos y es dificil de ingresar y mantener. Adicionalmente si queremos cambiar algún rango o agregar nuevos tenemos que modificar todas las fórmulas.

Definimos dos rangos con nombres que son RangoValores y RangoNombre, estos definene los distintos rangos sobre los cuales calcularemos la antigüedad de deuda. En el RangoValores tenemos que escribir el límite superior de cada rango y en RangoNombre ponemos la descripción que identifica a cada rango.

La fórmula que utilizamos es INDICE(RangoNombres,COINCIDIR(D2,RangosValores,1)). La función COINCIDIR toma el valor búscado, en nuestro ejemplo "D2" y lo busca en RangoValores devolviendo la posición dentro de RangoValores. El último parámetro de la fórmula COINCIDIR nos permite definir si buscamos un valor exacto en ese caso definimos el parámetro con el valor 0 o bien buscamos el valor mas grande en nuestro RangoValores que sea menor al valor búscado.


Si necesitamos modificar los rangos o agregar nuevos simplemente tenemos que modificar los dos nombres que definimos anteriormente y nuestra fórmula funcionará sin tener que ajustarla.

Para acceder el archivo de ejemplo hacer clic aquí.

sábado, 21 de agosto de 2010

Cálculos con fechas en Excel usando DIA.LAB y DIAS.LAB (WORKDAY, NETWORKDAYS)

Luego de los valores numéricos las fechas deben ser el siguiente tipo de dato más común en Excel y por ello hoy explicaré como realizar algunos cálculos con fechas. Entre los ejemplos utilizaremos dos funciones muy útiles llamadas DIA.LAB y DIAS.LAB que nos permitirán hacer cálculos con fechas pero tomando solo días laborales.

Entre los cálculos de fechas más comunes encontramos el cálculo de una fecha a x días del día actual. Otro cálculo común es el número de días que hay entre dos fechas.



Veamos unos ejemplos


Para obtener la fecha que se encuentra a 30 días a partir de hoy utilizamos =AHORA() + 30 o para saber que fecha corresponde a 7 días antes de hoy utilizamos =AHORA() - 7.

Si tenemos dos fechas y se encuentran en las celdas A1 y A2 entonces podemos ingresar la fórmula =A1-A2 que nos calculará la cantidad de días.

Estos cálculos los podemos realizar de esta forma ya que Excel guarda internamente las fechas como valores numéricos que representan el número de días transcurridos desde el 01/01/1900. La parte decimal se utiliza para determinar la cantidad de segundos, minutos y horas desde el comienzo del día. Pueden probarlo usando la función AHORA y luego cambiando el formato de la celda a numérico.

En muchos casos no necesitamos hacer estos cálculos con días corridos sino con días laborales y para ello Excel tiene dos funciones DIAS.LAB y DIA.LAB

Primero analizaremos la función DIA.LAB que nos permite calcular una fecha que se encuentra a x días laborales de una fecha inicial. Esta función toma tres parámetros, el primero es la fecha inicial sobre la cual haremos el cálculo. El segundo es la cantidad de días positivo para una fecha futura o negativo para una pasada. El tercer parámetro es un array con fechas que son feriados los mismos no se consideran días laborales.

La segunda función DIAS.LAB nos permite contar la cantidad de días laborales que hay entre dos fechas. Esta función toma tres parámetros, el primero es la fecha inicial, el segundo es la fecha final y el último es el array con fechas que son feriados y no serán considerados como días laborales.



Veamos unos ejemplos


En la siguiente imagen mostramos los cálculos de fechas utilizando los cálculos con días corridos y con días laborales.


Para calcular los días laborares entre dos fechas usamos =DIAS.LAB(B1;B2;Feriados) y para calcular la fecha que se encuentra a 60 días laborales de la fecha de inicio usamos =DIA.LAB(B1;60;Feriados)

Feriados es una matriz o array con valores constantes que contiene los días que no consideramos como laborales. En nuestro ejemplo el día 9 de Julio es considerado feriado. Para más ayuda sobre arrays haga clic aquí.

lunes, 2 de agosto de 2010

Mejoras para el gráfico de Cascada o Waterfall

En la nota anterior expliqué como crear un gráfico de cascada, ahora realizaremos algunos cambios que mejoraran ese gráfico. Si bien estos cambios también pueden lograrse mediante macros, en este artículo mostraré alternativas sin usar macros ya que en ciertos casos es necesario generar un archivo sin incluir macros.

Como en el ejemplo anterior utilizamos la siguiente tabla para armar nuestro grafico y le asignamos el nombre TablaChart.



Veamos los cambios



El primer cambio nos permitirá asignarle distintos colores a las variaciones, en el caso que sean positivas o negativas. Para lograr esto separamos los valores positivos y negativos en dos columnas que serán incluidas como dos series distintas de datos y por lo tanto podremos asignarle distintos colores.

La columna que tiene los valores positivos contiene la siguiente fórmula =SI(B2>0;B2;0). En el caso de ser un valor negativo entonces mostramos un cero y por lo tanto esto no queda visible en el gráfico. A esta columna la llamaremos Series2Mas.

Por otra parte la columna que tiene los valores negativos contiene la siguiente fórmula =SI(B2<0;ABS(B2);0). Similar al caso anterior, si la variación es positiva se mostrará cero y sino el valor absoluto. A esta columna la llamaremos Series2Menos.


El otro cambio es la utilización de las tablas de Excel 2007 para que podamos ingresar nuevas filas según la necesidad y el gráfico se actualice automáticamente. Para lograr que funcione correctamente la tabla y se actualicen las fórmulas debemos utilizar una misma fórmula para cada fila y que ésta haga referencia a la misma fila.

En el ejemplo anterior las fórmulas de la columna Series1 eran diferentes para la primera y última fila ya que siempre llevan el valor cero. Lo primero que debemos lograr es una fórmula que devuelva 0 solo para la primera y última fila de la tabla. Para saber si estoy en la primera fila utilizamos FILA(TablaChart) y si es igual a FILA(), que devuelve la fila actual, entonces estamos en la primer fila. Para calcular la última fila FILA(TablaChart)+FILAS(TablaChart)-1, de la misma forma chequeamos si esta es igual a FILA(). La fórmula completa sería =SI(O(FILA(TablaChart)=FILA();FILA(TablaChart)+FILAS(TablaChart)-1 = FILA());0;B2).

Finalmente la fórmula utilizada para acumular los valores, en el ejemplo anterior llamada Ultimo tope, tampoco funciona correctamente al insertar nuevas filas en una tabla y por ello lo reemplazamos por =SUMA($B$2:B2), la referencia absoluta fija la primer fila mientras que la segunda se incrementa a medida que se incrementan las filas en la tabla.

Si integramos la fórmula para acumular con la explicada en el paso anterior obtenemos la siguiente fórmula =SI(O(FILA(TablaChart)=FILA();FILA(TablaChart)+FILAS(TablaChart)-1 = FILA());0; SI(B2<0;SUMA($B$2:B2);SUMA(B$2:B2)-B2))


Para acceder al archivo del ejemplo haga clic aquí.

domingo, 11 de julio de 2010

Crear un gráfico de Cascada o Waterfall

Excel posee muchos tipos de gráficos predeterminados (ver tipos aquí) y por ello es una herramienta muy utilizada para la visualización de datos. Un gráfico bastante utilizado que no está incluido en el paquete estándar, es el gráfico de Cascada. Este gráfico es muy conveniente para explicar la variación entre un valor inicial y un valor final.

Un buen ejemplo para el gráfico de cascada es cuando tenemos un valor inicial y otro final como por ejemplo el número de unidades vendidas el mes anterior y el del mes actual. Para explicar la variación entre estos dos valores se pueden definir varios conceptos positivos o negativos que llevan del valor inicial al final.

En este artículo explicaré como podemos crear un gráfico de Cascada utilizando uno de los tipos de gráficos incluidos con Excel.


Veamos el ejemplo



Tenemos una lista con dos valores uno inicial y otro final y cinco variaciones que explican la diferencia entre los dos valores.


Tomaremos como base de nuestro gráfico el tipo de gráfico de barras apiladas incluido en Excel.


Para realizar el gráfico de cascada necesitaremos agregar algunas columnas auxiliares que serán utilizadas en nuestro gráfico. La columna Series1 muestra el valor que se encuentra entre el valor 0 y el comienzo de la variación. La columna Series2 muestra las variaciones y como nuestro gráfico muestra solo valores positivos esta columna es el valor absoluto de la variación. La última columna Último Tope calcula el valor total de las dos columnas anteriores, esta es utilizada para graficar la siguiente variación.


Las formulas incluidas en cada columna son:

Para la columna Series1 utilizamos =SI(B3<0;E2+B3;E2). Aquí tenemos que tomar en cuenta dos condiciones, una si la variación es negativa y la otra si es positiva. En el caso de ser negativa tomamos el último tope, calculado en la fila anterior y le sumamos la variación (como esta es negativa es una resta). Esto nos dará el punto de partida de la variación. Si la variación es positiva solamente tomamos el último tope.

Para la columna Series2 utilizamos =ABS(B3) para obtener el valor absoluto. Esta columna es necesaria ya que no queremos graficar las variaciones negativas debajo del eje x sino que solo queremos reducir el valor sobre el cual graficamos la variación (este cálculo lo realizamos en la columna Series1).

Para la columna Último Tope utilizamos =E2+B3. Esta fórmula calcula el valor sobre el cual termina nuestra columna en el gráfico y se realiza en base al último valor más la variación.

Luego graficamos las columnas Series1 y Series2 y obtendremos un gráfico similar al siguiente.


El último paso es hacer las columnas de la serie 1 transparentes para lograr el efecto del gráfico de cascada. Para ello seleccionamos el gráfico y luego la ficha Formato del grupo Herramientas de Gráficos. Seleccionamos la Serie 1 de la lista desplegable Selección actual y finalmente seleccionamos Sin relleno de la lista desplegable.




Para acceder al archivo del ejemplo haga clic aquí.

domingo, 13 de junio de 2010

Importar información desde Internet (Web Queries)

Internet es una fuente de información y para sacar ventaja de esa información y poder utilizarla en nuestros archivos de Excel explicare la herramienta Web Queries que nos permite importar información de una página web directamente a nuestro archivo de Excel.


Veamos como realizar la importación



Para importar datos debemos seleccionar la opción Desde Web de la ficha Datos. Luego se debe ingresar la dirección de la página que contiene los datos que queremos importar.


Solamente podrán ser importados datos que se encuentren dentro de una tabla (HTML ‹table›). En la pantalla de importación se deberá seleccionar que parte de la página o etiqueta ‹table› se desea importar. Para ello se debe hacer clic en los íconos que figuran en la página.


Una vez completado estos paso se puede refrescar la conexión y se actualizaran los datos que hayan cambiado en la tabla de la página web.

La principal ventaja es cuando tenemos información que se actualiza regularmente ya que Excel nos permite actualizar dicha información desde Excel simplemente haciendo clic en el botón Actualizar todo en la sección Conexiones de la ficha Datos.



Veamos un ejemplo donde importamos información que se actualiza regularmente



En este ejemplo importaremos la información de tasas de cambio, que son actualizadas diariamente.

En primer lugar creamos la conexión con la siguiente URL : http://www.oanda.com/lang/es/currency/historical-rates?lang=es&result=1&date1=01.05.10&date=30.06.10&date_fmt=normal
&exch=USD&exch2=&expr=ARS&expr2=&margin_fixed=0
&format=ASCII&SUBMIT=Obtener+Tabla


Si queremos que nuestros datos se actualicen automáticamente pondremos una fecha a futuro con lo cual sin cambiar la conexión se actualizarán datos nuevos.

Finalmente aplicamos unas fórmulas para separar los datos que se descargan en una sola columna para poder utilizarlos en Excel.

Para acceder a los archivos de ejemplos haga clic aquí.

Dentro de un entorno corporativo esta herramienta nos permitirá importar en Excel información que se encuentre en otra aplicación web o intranet.

En una futura nota mostraré como utilizar parámetros y macros con las conexiones para poder modificar el contenido que se desea descargar.

domingo, 23 de mayo de 2010

Rangos Dinámicos

Excel nos permite trabajar con cantidades muy grandes de datos y muchas veces esta información va creciendo a medida que transcurre el tiempo. Al modificarse los rangos en donde se encuentran los datos se deben modificar las fórmulas que usan dichos datos para que incluyan la totalidad del rango.

Si tenemos un archivo con muchas fórmulas esto genera un trabajo tedioso y que puede generar resultados incorrectos. Para facilitar este proceso es posible definir nombres a los rangos utilizados que nos permite ajustar el rango definido para ese nombre y luego todas las fórmulas utilizarán el nuevo rango. Para rangos de datos que cambian constantemente este proceso también puede volverse tedioso.

En la nota de hoy veremos una alternativa que nos permite definir el rango dinámicamente sin tener que actualizar las fórmulas o los nombres de los rangos.

Para poder definir el nombre del rango dinámicamente debemos detectar cual es la última fila utilizada en el rango y para ello utilizamos la siguiente fórmula array : =MAX(FILA(1:65378)*(A1:A65378<>"")) (recuerden presional Ctrl + Shift + Enter)
Luego definimos el nombre UltimaCelda para la celda que contiene esta fórmula.

Esta fórmula genera en primer lugar un arrary con números de filas (FILA(1:65378)) del tamaño que nosotros deseamos. Esto definirá el límite de crecimiento del rango. Luego se genera un array con valores lógicos, que serán VERDADEROS si la celda no esta vacía. Al multiplicarlos solo me quedan los valores de las filas con datos, el resto es siempre cero. Finalmente la función MAX devuelve el valor máximo del array.

Con esta información definimos un nuevo nombre en Excel llamado Rango. (Para mas información ver nota sobre nombres) y en el campo Aplica a en lugar de escribir un rango fijo (del tipo A1:C10) escribimos la siguiente fórmula: =DESREF(Hoja1!$A$1;0;0;UltimaCelda)


La función DESREF permite definir un rango a partir de una celda de referencia, la función toma 5 parámetros. El primero es la celda de referencia, los siguientes dos indican la cantidad de filas y columnas de distancia que va a tener nuestro rango desde el valor de referencia. Los últimos dos valores indican la cantidad de filas y columnas que tendrá nuestro rango.

Para descargar el ejemplo haga clic aquí.

Otra aplicación de esta fórmula es para la definición del rango de impresión. Si ya hemos definido una, entonces encontraremos en la lista de nombre uno llamado : Área_de_Impresión si ingresamos la fórmula arriba explicada el rango se actualizará automáticamente.

miércoles, 21 de abril de 2010

Descubriendo las funciones de Excel 3 BUSCARH (HLOOKUP)

Retomando los artículos sobre funciones de búsquedas, explicaremos en el artículo de hoy una función que no es muy utilizada pero es muy fácil ya que es similar a otra función que es una de las de mayor uso en Excel. Por supuesto no referimos a BUSCARV.

La función BUSCARH (HLOOKUP para la versión en inglés) nos permite realizar búsquedas en un rango y una vez encontrado devolverá una celda que se encuentra en la misma columna pero a una cantidad determinada de líneas hacia abajo.

Dicha función toma cuatro parámetros. El primero es el valor buscado, el segundo es el rango donde se va a realizar la búsqueda, el tercero es el número de la fila dentro del rango que se utilizará para devolver el valor y el último parámetro indica si queremos que el valor buscado coincida exactamente con algún valor en el rango.

Si no hay coincidencias se devuelva el error #N/A. Si deseamos evitar este error podemos utilizar la función SI.ERROR como se explicó en una nota anterior.

Como pueden ver los parámetros y su funcionamiento son muy similares a la función BUSCARV y por lo tanto surge la pregunta: ¿Por qué tenemos dos funciones tan similares?

En muchos casos en Excel tenemos que trabajar con datos de planillas creadas por otras personas y por lo tanto no podemos cambiar los formatos sino que tenemos que adaptarnos a ellos. De acuerdo como estén distribuidos la función BUSCARH puede ser mas conveniente que BUSCARV.



Veamos algunos ejemplos.


Disponemos de una lista de ventas donde se muestran en las columnas las regiones y en las filas los meses.


Si deseamos buscar las ventas del mes de Mayo para la región Sur podemos utilizar la siguiente fórmula =BUSCARH("Sur";B1:E13;6;FALSO) y para buscar las ventas del mes de Agosto para la región Oeste podemos utilizar =BUSCARH(“Oeste”;B1:E13;9;FALSO).

Podran ver que el número de la fila sumando uno es igual al nro del mes. Esto es porque la primer fila contiene los encabezados. De esta forma podemos fácilmente obtener los distintos meses utilizando los valores.

martes, 2 de marzo de 2010

Formato condicional para resaltar los elementos buscados

El formato condicional es una herramienta que nos permite aplicar el formato que deseamos a una celda de acuerdo a cierto criterio. Estos criterios pueden ir desde algunos simples como por ejemplo si el valor de la celda es mayor que un número determinado a algunos muy complejos donde una formula de Excel se evalúa como verdadero o falso para determinar si aplica el formato o no.

Para los criterios simples, Excel dispone de varias combinaciones que podemos utilizar seleccionando la opción de Formato Condicional de la sección Estilos en la ficha Principal.



Para ver más información sobre el uso de estos criterios simples del formato condicional pueden visitar este link: http://office.microsoft.com/es-es/excel/HP100739393082.aspx?pid=CH100648453082



Veamos el ejemplo


Utilizando el formato condicional resaltaremos los valores de una lista que se encuentren en otra lista. Con este ejemplo daremos formato a todos los valores que coincidan y nuestra lista de valores buscados pueden contener más de uno.

Disponemos de dos listas que contienen valores, la lista en la columna "A" tiene todos los datos y la lista en la columna "C" son aquellos que queremos resaltar.


Definimos un nombre llamado Valores para el rango en la columna "C" donde se encuentran los datos buscados. De esta forma es más flexible la cantidad de datos a buscar y más sencilla la formula.

Ahora debemos ingresar la formula que será evaluada para definir si se tiene que aplicar o no el formato condicional. Para ello activar la celda que contiene el primer dato de la lista (en este ejemplo la celda A2) y debemos seleccionar la opción de formato condiciona y elegir la última opción Nueva Regla.

En la pantalla de Nueva regla de formato seleccionamos Usar una fórmula para determinar que celdas formatear. En el cuadro de texto ingresamos la siguiente fórmula: =COINCIDIR(A2;Valores;0) > 0

La función COINCIDIR buscará el valor en la lista Valores y devolverá la posición una posición mayor a cero significa que fue encontrado.


Es muy importante no utilizar referencias absolutas ya que esto nos permitirá aplicar el formato condicional y la formula siempre evaluará el contenido de la celda a formatear y no utilizar siempre el contenido de la celda A2.

Al ingresar la fórmula Excel nos muestra la pantalla del Gestor de Reglas de Formato Condicional aquí podemos indicar en qué rango de celdas aplicamos el formato condicional modificando el rango en la columna Aplicar a.


Finalmente vemos que Excel ha resaltado las celdas cuyos valores se encuentran en la columna "C".


domingo, 24 de enero de 2010

Acceder los elementos de una tabla mediante fórmulas

Si bien podemos considerar que todas las hojas de Excel son una tabla, en Excel 2007 se introdujo una nueva herramienta llamada "Tablas". Esta herramienta permite darle un nombre a un rango determinado de celdas y poder acceder a los elementos de la tabla mediante una referencias, y no el nombre de la celda donde está el dato, que pueden usarse en formulas.

Las principales ventajas es que las referencias son más fáciles de usar que los nombres de las celdas ya que pueden tener el nombre que el usuario desee. Funciona de forma similar a la definición de un nombre para un rango.

Se puede cambiar el tamaño de la tabla o mover la tabla y esto ajustara todas las referencias a la tabla sin tener que cambiar las formulas una por una.

Si alguna de las columnas de la tabla tiene una fórmula esta se copiará automáticamente al resto de las líneas.

Las referencias a una tabla se componen de la siguiente forma : =NombreTabla[NombreColumna]

También se pueden acceder distintas partes de la tabla utilizando la siguiente notación


  • =NombreTabla[#Todas] Para acceder a la tabla completa.

  • =NombreTabla[#Datos] El rango de todos los datos, sin encabezados ni totales.

  • =NombreTabla[#Encabezados] Solamente incluye la primer línea de encabezados.

  • =NombreTabla[#Totales] Solamente incluye la última línea.



Veamos algunos ejemplos.


Utilizaremos una tabla de datos como la siguiente


Si todavía los datos no fueron convertidos a una tabla se debe seleccionar la opción tabla de la ficha Insertar. Luego se debe definir el nombre tblVentas. El nombre se puede cambiar seleccionado la ficha Herramientas de tabla (solo aparece cuando la celda activa es parte de la tabla) y completar el campo nombre de tabla.


Utilizando fórmulas similares a las explicadas en la nota de sumas condicionales con mas de un criterio, utilizaremos referencias a las tablas para obtener los resultados.

Si deseamos obtener la cantidad de productos para un determinado país podemos usar la fórmula =SUMAR.SI(TblVentas[Pais];"Argentina";TblVentas[Cantidad]).

Para obtener la cantidad de un producto determinado y en un solo país podemos usar la fórmula =SUMAR.SI.CONJUNTO(TblVentas[Cantidad];TblVentas[Pais];"Argentina";TblVentas[Producto];"Manzana").

También podemos combinar otras fórmulas de Excel y por ejemplo obtener un promedio de unidades =PROMEDIO(TblVentas[Cantidad]) o el precio promedio de todas las ventas =TblVentas[[#Totals];[Importe]]/TblVentas[[#Totals];[Cantidad]].

Para acceder al archivo del ejemplo pueden hacer clic aquí.

sábado, 2 de enero de 2010

Ranking con posiciones duplicadas usando la función JERARQUIA

En el artículo de hoy explicaré como utilizar la función JERARQUIA (o RANK para la versión en Inglés), que nos permite determinar la posición de un elemento dentro de la lista con valores numéricos. Cuando existen dos o más elementos que tienen el mismo valor la función les asigna el mismo. En algunos casos esto no es el comportamiento deseado por lo tanto veremos una variante para solucionarlo.

Primero explicaré como funciona la función JERARQUIA. Esta función toma tres parámetros, el primero indica la celda que contiene el valor a evaluar. Luego se indica el rango de celdas donde están todos los valores que forman parte del ranking. Finalmente se indica el orden 0 para ascendente, es decir el mayor valor tiene ranking 1, y 1 para descendente.


Veamos algunos ejemplos


Tenemos una lista de precipitaciones promedios como la siguiente :


En la columna C aplicamos la siguiente fórmula =JERARQUIA(B2;$B$2:$B$13;0) y obtenemos el ranking de mayor a menor.


En el puesto 9 tenemos dos meses, Agosto y Septiembre que tienen el mismo valor. De ahí saltamos al puesto 11 y no tenemos un mes en el puesto 10. Para solucionar este problema podemos utilizar una variante en la fórmula antes descripta: =JERARQUIA(B2;$B$2:$B$13;0)+CONTAR.SI($B$2:B2;B2)-1


La segunda parte de la formula cuenta cuantas veces aparece el valor de la fila que estamos calculando el ranking desde el principio de la tabla hasta la fila actual. Por lo tanto si el valor esta repetido el que figure mas abajo tendrá un ranking mayor. Es muy importante poner la referencia "$B$2:B2" fijando el comienzo del rango para que siempre empiece desde el principio de la tabla pero si copiamos la fórmula hacia abajo se incrementa el rango.