miércoles, septiembre 11, 2013

Formato condicional en gráficos de Excel - segunda nota

En la primer nota del tema mostré una macro para aplicar un formato condicional sencillo a un gráfico de Excel. Esa macro aplica el formato siempre a los puntos de la primer serie de datos del gráfico. Es decir, que si tenemos más de una serie de datos en nuestro gráfico, no podemos elegir a qué serie aplicar el formato.

En esta nota mostraré una macro que nos permite elegir la serie de datos a la cual queremos aplicar el formato. Recordemos que estamos hablando de un formato muy sencillo (una gama de colores combinado de izquierda a derecha) y que en notas posteriores trataremos el tema de señalar máximos y mínimos de una serie y el formato de acuerdo al valor del punto de la serie.

Empecemos por agregar una serie de datos a nuestro ejemplo que ahora muestra los saldos de las cuentas para los años 2011 y 2012



















Nuestra macro ahora evalúa cuantas series hay en el gráfico. Si hay más de una serie, se abre un formulario que nos permite elegir la serie a la cual queremos aplicar el formato






















Una vez elegida la serie, elegimos los parámetros del formato (ver la explicación en la nota anterior)























y obtenemos el resultado buscado


El cuaderno con el ejemplo y los códigos puede descargarse aquí. También pueden descargar este complemento e instalarlo en la máquina. Luego pueden crear un icono en la barra de acceso rápido para poder utilizarlo con comodidad en todo cuaderno.

martes, septiembre 10, 2013

Formato condicional en gráficos de Excel - primera nota

Excel no tiene un método incorporado para aplicar formato condicional en gráficos. En el pasado mostramos técnicas que nos permiten aplicar formatos dinámicos en gráficos. Pero formato condicional va más allá de eso.

Supongamos este gráfico, donde los puntos de la serie (cantidad de cuentas según saldo) están ordenados según la categoría (monto del saldo)


Ahora supongamos que queremos aplicar algo similar al formato condicional de manera que el color de las columnas donde las columnas tengan una gama de colores que vayan del del rojo para el primer punto (los saldos más negativos) al verde (los saldos más positivos). Es decir, esto:



Una posibilidad es hacerlo manualmente. El método manual tiene dos inconvenientes:

  • Es tedioso y cansador si se trata de muchos puntos
  • La elección de los colores de la gama es dificultosa


Como con toda tarea cansadora, aburrida y dificultosa, la solución es desarrollar una macro.

Mi solución se basa en la función RGB del Vba.

Algunas palabras sobre el tema. RGB significa (en inglés) Rojo (Red), Verde (Green) y Azul (Blue). La combinación de estos colores primarios de la luz permite generar una amplia gama de colores. Cada gama de estos colores está representado por un número que va de 0 (ausencia del color) a 255. La función RGB tiene tres argumentos, uno para cada color primario. Esta tabla muestra algunos ejemplos:


El cuaderno se puede descargar apretando el símbolo de Excel en la barra inferior de la imagen. Cambiando los números en el rango de valores (cualquier número entero entre 0 y 255) poderá verse en la columna "Color" el color resultante.

Este video muestra como RGB genera colores a medida que vamos cambiando aleatoriamente los valores de los argumentos



En esta primera nota mostraré una macro sencilla para formar los puntos de una serie en el gráfico con una gama de colores (rojo a verde, azul a rojo, etc.). Esta macro puede usarse para el  caso de un gráfico con una única serie de datos.
En las próximas notas veremos como transformar la macro para gráficos con más de una serie de datos y como adaptarla para señalar máximos y mínimos de una serie.

En esta macro hacemos los siguiente:
  1. Evaluamos si el objeto activo es un gráfico, en caso contrario aparecerá una advertencia pidiendo al usuario que elija un gráfico.
  2. Aparecerá un formulario donde el usuario debe señalar un valor inicial para cada color. Las posibilidades son "255" (empieza con este valor y se va reduciendo hasta cero); "0" (empieza en cero y va aumentando hasta 255); "255-K" (constante 255) y "0-K" (constante 0).
  3. Calculamos el "salto" de cada color dividiendo 256 por el número de puntos de la serie. Con este factor aumentamos o disminuimos el valor inicial del color en intervalos constantes. En caso de 255-K o 0-K, el valor es contante.
  4. Con un loop For...Next vamos generando los valores de la función RGB para cada punto y lo aplicamos al punto de la serie.
Este modelo consiste en una macro, un userform (formulario) con los controles para la elección de los colores y sus correspondientes eventos. Este video muestra como funciona la macro.



El cuaderno con el ejemplo y los códigos puede descargarse aquí. También pueden descargar este complemento e instalarlo en la máquina. Luego pueden crear un icono en la barra de acceso rápido para poder utilizarlo con comodidad en todo cuaderno.

Como señalo más arriba, en las próximas notas subire un código más completo (gráficos con más de una serie y posibilidad de señalar máximos y mínimos).


domingo, septiembre 08, 2013

Power Pivot potencia lo que ya conoces de Excel - Conócelo

Power Pivot no es algo difícil de aprender

Muchas de las funciones DAX que encuentras en Power Pivot son iguales o similares a las funciones existentes en el Excel tradicional.

No solamente el nombre de las funciones es similar, sino también sus parámetros y la forma en que trabajan.

image
Figura muestra la lista de funciones estadísticas disponibles en DAX
Tomemos por ejemplo la funciones:
Nombre en DAX Nombre en Excel castellano
MAX() MAX()
MIN() MIN()
SUM() SUMA()
AVERAGE() PROMEDIO()
DISTINCTCOUNT() No existe en Excel tradicional

y ahora vamos a utilizar las funciones en el contexto de la siguiente tabla:
Producto Venta
A 13
B 27
C 39
B 23
A 22
A 27
C 32

En realidad, ésta tabla seria mucho mas “grande” en el mundo real y tendría otras columnas que definirían mas cada registro pero con este ejemplo solamente queremos demostrar el concepto de lo sencillo que es crear una medida con las funciones DAX.

Una vez tengamos la tabla de arriba, la importamos a nuestro modelo de datos en Power Pivot utilizando la opción de “Crear tabla vinculada” en la cinta de Power Pivot:

image

y luego vamos a verla en Power Pivot de la siguiente manera:

image

La ventana de Power Pivot es algo nuevo y luce mucho a la hoja de cálculo que tanto conocemos y amamos.

Es un lugar donde se cargan las tablas que vamos a utilizar y cada hoja o tab representa una tabla. El ambiente no es igual al del Excel tradicional tipo R1C1 o A1 donde existen referencias de columnas y filas. El ambiente de Power Pivot es parecido al de una tabla creada en Excel en donde se trabajan con referencias de Columnas y una calculación o fórmula trabaja a lo largo de toda la nueva columna. (como se muestra en la siguiente figura)


image

Sobre todo, tenemos que entender que en Power Pivot no es posible modificar los datos o borrarlos, lo que crea una manera segura de administrar los datos y proteger los mismos y, gracias a todo lo anterior mencionado, las soluciones creadas con Power Pivot son mas robustas a las creadas con el Excel tradicional.
Es algo que Microsoft tuvo que cambiar para poder llegar a un nivel robusto y fue una buena decisión en cuanto a la herramienta. Lo que sí se nos es posible, es crear nuevas columnas calculadas y medidas o campos calculados que es justamente lo que vamos a plantear en el siguiente punto.


Para crear una medida vamos a crear una tabla dinámica:

image

Una vez dentro de la tabla dinámica podemos definir una nueva medida:

image



Una medida o campo calculado es simplemente la nueva manera para crear fórmulas que trabajen utilizando el modelo de datos creado con Power Pivot.

En el Excel tradicional se conocían simplemente como Campos Calculados pero su uso no era/es muy conocido y también tiene algunas limitantes. Microsoft nunca invirtió mucho dinero en esta característica de Excel por lo que luce, se siente y trabaja igual que la versión que existe desde el Excel 2003:


image 
Insertar campo calculado en tabla dinámica tradicional de Excel

Ahora le damos clic al botón de “Nueva medida” para obtener la ventana de configuración de medida (la nueva forma de crear campos calculados con Power pivot):

image

dentro de esta nueva ventana podemos definir una medida simple como se muestra en la figura.
=SUM( Tabla1[Venta] )
donde SUM simplemente necesita 1 argumento el cual necesita ser una columna de tipo de dato numérico.

Pude crear una medida para cada una de las funciones que quería y he obtenido la siguiente tabla dinámica:

image

Nota como el conteo de Productos es una medida que hace un conteo distintivo de la columna “Producto” de la Tabla1 (algo que no es posible de manera nativa en el Excel tradicional).

...y luego, como era de esperarse, tuve la idea de ver dichas agregaciones por Producto, por lo que he agregado el campo de Producto a etiquetas de fila:

image

y funciona correctamente Sonrisa

Te invito a probar Power Pivot y también puedes ver el siguiente video donde explico de principio a fin qué es Power Pivot, Power View y como te podría ayudar en tus análisis y tu vida profesional.



BannerFans.com