Todas las entradas de: Domenec

Filtro rápido

Esta es una visualización muy interesante para cuando tenemos muchos valores donde buscar o filtrar: por ejemplo la lista de clientes o artículos.

Descarguemos la Smart Filter de la página de visualizaciones. Y en nuestro documento pulsamos en Visualizaciones, importar desde archivo, buscamos el Smart filter y lo importamos.

Creamos una nueva página y ponemos un gráfico de barras apiladas con

Así obtenemos un gráfico de ventas por familia.

Ahora lo que nos interesa es poder filtrar por cliente, uno o varios. Si ponemos un selector con el cliente obtendremos

Y si tenemos muchos clientes y queremos buscar uno o varios en concreto debemos desplazarnos a lo largo de la lista.

Ahora, en una parte vacía del lienzo, vamos a añadir nuestro visualizador importado, el Smart Filter

Y le ponemos en Field, el Cliente

Y en formato, activamos Label

Ahora tenemos un visualizador que parce muy sencillo, un cuadro de selección pero que es muy potente

En la barra de búsqueda escribamos Bla, se nos destacan los dos clientes que su nombre contiene esa palabra

Podemos seleccionar uno u otro o ambos

Una manera rápida y sencilla de filtrar por texto en una lista larga de elementos

Guardemos la página como Filtro rápido

Añadir visualizaciones

Hay desarrolladores que crean modelos de visualización y podemos descargarlos e incorporarlos a nuestros Power BI

Las visualizaciones extra las podemos encontrar en la web de visualizaciones

La línea de tiempo

Hay una visualización muy útil para representar la jerarquía de fechas, la Time Line.

De hecho hace mismo que el segmentador de fecha de las tablas dinámicas de Excel, y es sorprendente que Microsoft no lo haya incluido como estándar.

Vamos a la web de visualizaciones, hacemos clic en la que nos interesa y obtenemos una pantalla con dos opciones

Descargar en visual y descargar ejemplo

Pulsamos sobre la primera y después de aceptar las condiciones empieza la descarga.

Es muy recomendable bajarse también el ejemplo, pues nos permitirá ver el funcionamiento con datos de muestra que lleva incorporados.

Ahora en el Power Bi debemos insertar esta visualización, para ello, en visualizaciones hacemos clic en

Aceptamos las condiciones, buscamos la carpeta de descarga y hacemos clic en el objeto para que se importe. Y nos aparecerá como una visualización más.

Para probarlo creamos una página nueva, con una visualización de grafico de columnas apiladas con

Y obtenemos el típico gráfico de barras. Para añadir el Tiem Line, hacemos clic en un espacio en blanco de lienzo y añadimos el Time line, y Time le ponemos el campo Date del calendario

Puede que se nos muestre como Date y Año, basta hacer clic con el botón derecho y seleccionar Date

Ahora tenemos un espléndido segmentador con fechas: años, trimestres, meses, semanas, días

Podemos seleccionar trimestres (Quorters), y con el Shift apretado pulsar en Q4 del 2013 y Q1 u Q2 del 2014

El grafico se adapta a lo seleccionado.

Atención, si queremos filtrar por semanas, es necesario ir a Formato, y cambiar el valor en First Day of Week, dejando Monday

Guardamos la página como Línea de tiempo

Cuadro de mando integral

Ahora ya tenemos los conocimientos necesarios para crear nuestro cuadro de mando integral.

Creamos una página nueva, y le añadimos el visualizador matriz y lo llenamos como

Para mejorar el aspecto visual vamos a formato y en Encabezados de fila le ponemos un color de fondo

Y en Valores ponemos un color en Alternar color de fondo

Así conseguimos una matriz más elegante

También podemos activar el borde, como esta en el ejemplo

A la derecha de esta matriz añadimos un visualizador Mapa, donde indicamos

Y si queremos vamos a formato y cambiamos el color de los datos.

Y obtenemos un mapa de las ventas por provincia

Al que podemos cambiar el titulo o activar el borde como en el ejemplo.

A su derecha insertamos el visualizador Treemap, y en campos ponemos

En Formato, cambiamos el título y activamos el borde y obtenemos

Debajo de la matriz ponemos un gráfico circular, con los campos

En formato cambiamos el título y el borde y obtenemos

Debajo del mapa ponemos un gráfico de doble escala, y en campos ponemos

En formato cambiamos el título y el borde y obtenemos

Debajo del Treemap ponemos un segmentador para poder filtrar por cliente. En campos ponemos

Y obtenemos un Selector de clientes

Debajo del grafico de doble escala ponemos un segmentador y en campo el Año del calendario

En formato vamos a hacer unos cambios para hacerlo más visible.

En general, la orientación la ponemos a Horizontal

En Elementos aumentamos el tamaño de la fuente

Y en fondo, ponemos un color

Ahora el segmentador destaca mucho más

Y por último, en el hueco que nos queda libre ponemos un calibre con

Y en formato, eje medidor, definimos los valores

Ya tenemos nuestro calibre

Ahora tenemos completado nuestro Cuadro de mando integral

Donde todos los visualizadores están relacionados entre sí.

Le invito a que filtre por:

  • Provincia y vea que salen solo sus clientes y sus artículos.
  • Por familia y vea salen solos los clientes que han comprado y en representantes se destaca la parte de sus ventas.
  • Por año y vea como todos los valores se ajustan
  • Por representante y se muestran sus clientes y los artículos y familias que han vendido
  • Por cliente para ver solo su información.

Guarde la página como cuadro de mando integral.

 

 

 

Calibre, velocímetro o medidor

Este es un tipo de indicador semicircular que nos indica la posición en que estamos respecto a un objetivo

Creamos una nueva página y ponemos el objeto Calibrar

En valor ponemos el Importe

Para poner los valores mínimo, máximo y destino podemos ponerlos vinculando a campos de nuestra tabla si los tenemos, o en este caso los vamos a poner a mano.

Para ello accedemos a Formato, desplegamos en Eje medidor e indicamos los valores que consideramos oportunos.

Nos aparece un cuadro medidor todo lleno porque la suma de importes es superior al límite máximo

Añadimos un segmentador por años e indicamos el año 2013, ahora el medidor está más ajustado

Vamos a repetir este medidor para ponerlo para los años 2014 y 2015

Seleccionamos el medidor y lo copiamos y pegamos dos veces, y desplazamos los medidores a la derecha

Podemos seleccionarlos con CTRL y usar las opciones de alineación superior y distribuir horizontalmente para sitúalos bien

Nos aseguramos que el segmentador no tenga nada filtrado, ningún año

Copiamos y pegamos el segmentador dos veces y también lo distribuimos usando la herramienta de alinear de la pestaña formato

Pero no vemos los años, pues hay vinculaciones entre segmentadores. Ahora vamos a vincular cada segmentador con un medidor.

Pulsamos en el primer segmentador y con el botón Editar interacciones vemos que afecta a todos los otros objetos: el embudo está activo.

Desactivamos todo dejando que afecto solo al primer medidor

Filtramos por 2013 y vemos que afecta solo al primer medidor.

En el segundo segmentador hacemos lo mismo para que solo afecte al segundo medidor.

Filtramos por 2014 y verificamos que solo afecta al segundo medidor.

En el tercer segmentador hacemos lo mismo para que solo afecte al tercer medidor.

Filtramos por 2015 y verificamos que afecta solo al tercer medidor.

Ahora tenemos tres medidores con información de cada año

Renombramos la página como medidores

Mapa de árbol y tarjetas

Una visualización muy interesante es el mapa de árbol, que además podemos combinar varios entre sí, y con otras visualizaciones, por ejemplo tarjetas.

Creamos una nueva página y ponemos el visualizador Treemap

En Grupo ponemos familia, y en Valores las unidades.

Y obtenemos un gráfico donde la cantidad de unidades de cada familia hace más grande o pequeño el rectángulo.

De algún modo este tipo de grafico es similar a uno circular, pero nos permite ver la información de otro modo.

Ahora debajo de este vamos a añadir otro Treemap para los artículos. Por tanto hacemos clic en una zona libre del panel y añadimos el visualizador Treemap

En grupo ponemos Articulo, y en valores las Unidades.

Y obtenemos un grafico

Si en el de familias hacemos clic sobre una familia, por ejemplo Bicicletas de paseo, automáticamente en el de artículos se intensifican los artículos de dicha familia.

Para desactivar el filtro, basta pulsar otra vez sobre la familia seleccionada.

Y si pulsamos sobre un artículo, por ejemplo Gafas, se ilumina en familias la parte correspondiente a las mismas. Y si nos situamos encima veremos información interesante

De la familia Recambio hemos vendido 22203 unidades, pero de gafas (lo que esta Highlighted), solo 8065.

Vamos a vincular dos visualizaciones más con estas para tener más información.

Pulsamos en una parte vacía del lienzo y añadimos la visualización tarjeta

Y en campos ponemos las unidades

Nos aparece un recuadro que muestra las unidades vendidas

Y está vinculado a la visualizaciones anteriores, si filtramos por familia salen sus unidades y si filtramos por articulo las suyas.

Hacemos clic en una parte vacía del lienzo y añadimos el visualizador Tarjeta de varias filas

En Campos ponemos: Familia, Artículo, Unidades, Importe.

Por tanto nos aparece un informe que muestra esos cuatro valores, en función de lo que tengamos filtrado

Guardamos la página como TreeMap y Tarjetas

 

 

 

 

Tendencia anual móvil

Hay negocios donde la venta es estacional y nos interesa comparar periodos NO anuales, sino por ejemplo los 12 últimos meses, los 12 meses anteriores.

Esto lo podemos solucionar creando una medida que calcule la Tendencia Anual Móvil.

Si estamos a 31-8-14, queremos saber el acumulado de ventas desde 1-9-13 hasta 31-8-14.

O sea, desde el siguiente día al mismo periodo del año anterior: 31-8-13 más 1 día nos da 1-9-13, hasta la fecha máxima que estamos calculando.

Para ello usaremos la función Calculate donde le pasaremos la medida Importe, y como filtro un intervalo entre esas fechas, cosa que solucionamos con la función DATESBETWEEN

Vamos datos, tabla Facturas ventas y creamos una nueva medida y ponemos:

TAM = CALCULATE([Importe]; DATESBETWEEN(Calendario[Date];NEXTDAY(SAMEPERIODLASTYEAR(LASTDATE(Calendario[Date])));LASTDATE(Calendario[Date])))

No olvidemos marcar formato con separador de miles y dos decimales.

Para verificarlo creamos una tabla y ponemos la date del calendario, dejando solo seleccionados el año y el mes. Y el Importe y el TAM.

En esta tabla el TAM va sumando el mes corriente y sus 11 meses anteriores.

Renombramos la pagina como TAM

DAX: funciones de fecha

Como la gestión de fechas y sus periodos es una de las grandes potencias de Power BI vamos a ver unas cuantas funciones que nos ayudaran a detallar la información.

Vamos a datos, a la tabla calendario y vamos añadir una nueva columna

Donde ponemos

Año = Calendario[Date].[Año]

El intelisense nos ayuda a escribir todo: al escribir Date, ya podemos elegir Calendario.Date, y al poner este se despliegan distintas opciones que aprovechamos, en este caso el año.

Importante, hay que seleccionar la columna y en Modelado, Resumen predeterminado, indicar NO resumir.

Del mismo modo añadamos columnas para

Día = Calendario[Date].[Día]

Mes = Calendario[Date].[Mes]

Mes numero = Calendario[Date].[NroMes]

Trimestre numero = Calendario[Date].[NroTrimestre]

Trimestre = Calendario[Date].[Trimestre]

Y todas estas columnas que son numeros las marcaremos como No resumir

Nos quedara una tabla con todas estas columnas

Que podremos aprovechar en nuestros informes.

También crearemos columnas con las siguientes funciones que nos dan más información

Día semana = FORMAT(Calendario[Date];”dddd”)

Día semana numero = WEEKDAY(Calendario[Date];2)

Semana numero = WEEKNUM(Calendario[Date];2)

Así tenemos el día de la semana en letras, su número y el número de la semana dentro del año

Ahora vamos a crear una tabla y usar alguno de estos valores: El mes del calendario, y el importe de facturas ventas

Obtenemos una tabla con muy mala pinta, los meses NO están bien ordenados. Esto es así porque Power BI ordena alfabéticamente.

Volvamos a Datos, a nuestra tabla calendario, seleccionemos la columna Mes y Modelado, Ordenar por columna, indiquemos Mes numero

Ahora si volvemos al informe, los meses ya salen bien ordenados

Esta es una opción muy interesante de Power BI, ordenar una columna de datos por el valor de otra columna.,

Vamos a probar lo mismo con los días de la semana. Creamos una nueva tabla con Día semana e importe y obtenemos

Ahora cambiemos la ordenación en Datos, seleccionando la columna Día semana e indiquemos por Día semana numero

La tabla se ha reordenado automáticamente

Para terminar y ya que tenemos el acumulado anual y los meses vamos a crear un gráfico que nos muestre como han crecido las ventas.

En esta misma página, añadimos un gráfico de columnas agrupadas y ponemos

El grafico nos muestra los 12 meses, y tres barras de colores, una para cada año. Y vemos que van ascendiendo pues es el valor acumulado.

Es importante recordar que para todo uso de fecha, hay que referirse siempre a los campos de la tabla Calendario.

Guardemos la página como funciones de fecha

DAX: Funciones de inteligencia de tiempo

Una de las grandes ventajas de Power Bi es que tiene funciones para comparar los datos por periodos de tiempo. Por ejemplo: ventas entre años, lo que llevamos vendido del año, la Tendencia Anual Móvil, etc…

Pero para que esto funcione es necesario disponer de un intervalo continuo de fechas, y lo más normal es que en nuestras tablas de datos no haya ventas todos los días.

Así que aprenderemos como crear una tabla de fechas, un calendario, como relacionarlo con nuestras ventas y como sacar partido de las funciones de inteligencia de tiempo

Tabla Calendario

Vamos a datos, modelado, e indicamos nueva tabla

Dato que tenemos ventas desde el 2013 hasta el 2015, ponemos

Calendario = CALENDAR(“1-1-2013″;”31-12-2015”)

Y esto nos crea una nueva tabla que tiene todas las fechas en ese intervalo

Pero en realidad nuestras ventas son dinámicas, y hoy tenemos estos periodos y mañana podemos tener otros, así que estaría bien tener una tabla dinámica, que coja desde la primera fecha de la que hay ventas, hasta la última fecha en la que hay ventas.

Así que cambiemos la definición de la tabla y pongamos

Calendario = CALENDAR(MIN(‘Facturas Ventas'[Fecha]); MAX(‘Facturas Ventas'[Fecha]))

O sea desde el día mínimo hasta el día máximo

Ahora vemos como el calendario empieza el 5-1-13, el primer día que hay ventas

Y termina el 22-12-15

Pero en realidad lo que nos interesa es desde el 1-1 del primer año que hay ventas, hasta el 31-12 del último año que hay ventas, para así poder comparar periodos completos, años, trimestres, etc…

Para ello aprovecharemos la función DATE que permite indicar un año, un mes y un día, y a partir de esos tres parámetros construye una fecha

Sustituyamos pues nuestra definición de la tabla por

Calendario = CALENDAR(DATE(YEAR(MIN(‘Facturas Ventas'[Fecha]));1;1); DATE(YEAR(MAX(‘Facturas Ventas'[Fecha]));12;31))

Ahora sí, tenemos del 1-1-13 al 31-12-15

Y lo veremos más claro si le damos formato fecha con dd-mm-yyyy

Nos queda un último paso importante, vincular la fecha de nuestras ventas con este calendario. Para ello vamos a Relaciones

Y arrastramos la Fecha de Facturas ventas a la Date de Calendario. Power Bi establece una relación y nos la muestra.

Esta es una de las grandes ventajas de Power BI, podemos relacionar datos de distintas tablas y luego usarlas en nuestros informes.

Para empezar a aprovechar las funciones de inteligencia de tiempo, vamos a crear una medida que nos permita comprar las ventas de un periodo con las ventas del mismo período del año anterior.

Volvemos a Datos, seleccionamos la tabla facturas ventas, modelado y creamos una nueva medida

Importe Anterior = CALCULATE([Importe];SAMEPERIODLASTYEAR(Calendario[Date]))

Y le ponemos formato con separador de miles y dos decimales.

Hemos usado la función CALCULATE, que tiene varios parámetros. El primero es una expresión, en este caso hemos usado una medida que ya tenemos definida, el Importe. Igualmente hubiésemos podido poner SUM(NETO), pero esa es la ventaja de definir la medida, nos olvidamos de arrastrar su fórmula. Y los siguientes parámetros son filtros, en este caso usamos la función SAMEPERIODLASTYEAR donde le indicamos que busque la fecha en el Calendario, NO en Facturas ventas, dado que necesita un intervalo continuo de fechas.

Para verificarlo, creamos una nueva página, ponemos una tabla con los campos Date, del Calendario, e Importe e Importe anterior de facturas ventas.

Veremos que al poner date se nos desglosa en Año, trimestre, mes y día. Quitemos el mes y el día, quedando

Si observamos bien la tabla veremos que a partir del 2014, en la columna importe anterior aparecen las ventas del mismo trimestre del año anterior

Vemos que en el tercer trimestre de 2015 no hay ventas, pero si nos muestra a su derecha las el tercer trimestre de 2014

Por supuesto si activamos los meses, pasara lo mismo.

Y si queremos saber el incremento de un periodo respecto a otro, basta con crear una medida que relacione las dos que ya tenemos

% Importe s/Anterior = [Importe]/[Importe Anterior]

A la que podemos poner formato porcentaje, y añadirla a nuestra tabla

Obteniendo así el aumento de un trimestre respecto a al mismo del año anterior.

Otra función muy útil es la YearToDate, que nos permite saber valores acumulados hasta una fecha

Creemos una nueva medida y ponemos

Importe Acumulado = TOTALYTD([Importe];Calendario[Date])

Con formato separador de miles y dos decimales, y la añadimos a la tabla

Vemos que el 2013 empieza a sumar, y cada trimestre es la suma de sí mismo con el anterior. Y que al cambiar de año, empieza a sumar de nuevo.

Le propongo crear una tabla que nos muestre los meses, y tres columnas con los años que tenemos datos, y los acumulados de los meses, así cuando miremos un mes, no vemos sus ventas, sino lo que llevamos de acumulado y es más fácil saber si vamos bien o mal, pues eso compensa si un mes hay más o menos ventas que los anteriores.

En la misma página podemos hacer más pequeña la fuente, y más estrecha la tabla para dejar espacio debajo

Y añadimos una Matriz, con en Valores, el importe acumulado, en filas el mes, en columnas el año

Y obtenemos una tabla con las ventas acumuladas mes a mes.

Guardemos la pagina como Inteligencia de tiempo

DAX: Funciones X

Hay un grupo de funciones que son similares a las básicas pero mucho más potentes.

Por ejemplo a la función SUM hay una correspondiente SUMX

SUM, solo se puede aplicar sobre un campo o columna: no sobre una medida.

SUMX tiene dos parámetros:

  • La tabla sobre la que se aplica, que puede ser incluso un subconjunto de una tabla, como veremos
  • Y la expresión a calcular, donde podemos usar cualquier operación matemática valida

Supongamos que en nuestra tabla de datos, no nos dieran el Neto, sino el precio de venta de cada línea.

Para calcular el Neto, deberíamos multiplicar el Precio * Unidades, y así tendríamos una nueva columna con el Neto.

Pero esto implica añadir una nueva columna, que se calcula sobre todas las filas de la tabla. Y si la tabla es muy grande…pues será muy lento.

Para ello sería mejor crear una medida que calculara la Suma de Precio * Unidades: eso es lo que hace SUMX

Dado que en nuestra tabla NO tenemos el precio, vamos a añadir una nueva columna que lo calcule, como NETO / UNIDADES.

Esto es una división, y que pasaría si UNIDADES es 0, nos daría un error. Así que usaremos la función DIVIDE que permite solucionar esto.

NOTA: en este ejercicio hacemos esto para poder tener el precio y luego calcular el neto. Aunque en realidad no nos hace falta dado que el Neto ya existe.

Creemos una nueva columna y ponemos

Precio = DIVIDE(‘Facturas ventas'[Neto];’Facturas ventas'[Unidades];0)

En la lista de campos aparece el Precio

Para calcular el importe, creamos una nueva medida y ponemos

Importe sumado = SUMX(‘Facturas ventas’;’Facturas ventas'[Precio]*’Facturas ventas'[Unidades])

En una nueva página, creamos una tabla y ponemos: Representante, Neto, Importe e Importe sumado

Las tres columnas tienen que dar los mismos valores pero los usaremos de modo distinto.

Como decíamos, las funciones X permiten indicar una tabla o un subconjunto de la misma.

Supongamos que queremos tener el Importe de las ventas del 2013 para poder compararlo con los otros años, o sea ventas 2014/ventas 2013, ventas 2015/ventas2013

Creemos una nueva medida y ponemos

Importe 2013 = sumx(FILTER(‘Facturas ventas’;’Facturas ventas'[Ejercicio]=2013);’Facturas ventas'[Neto])

Donde el primer parámetro es un subconjunto de la tabla Facturas ventas usando la función FILTER

Filtramos la tabla Facturas ventas por el Ejercicio 2013

Si ponemos este Importe 2013 en la tabla tenemos

Guardamos la página como Funciones X