Power BI — funcion UniChar y Emojis

Juan Alvarado — Juanbizzz
SQL y Power BI en español
2 min readJun 29, 2017

Cuantas veces no nos han pedido los usuarios una matriz o tabla con las famosas flechitas arriba o abajo para marcar una tendencia y con colores rojos y verdes?!! y que tal si usamos Emojis para representar estos valores? lamentablemente en Power BI de una forma nativa no lo hemos tenido.

Sin embargo leyendo , encontre un diamante en bruto de funcion, el famoso UniChar. Esta funcion realmente lo que hace es interpretar el numero del unicode que deseamos en un valor de una columna dentro de una tabla.

Para un mejor ejemplo veamos una tabla que tiene una fecha y algun valor, en el ejemplo se usara la tabla llamada “SalesOrderHeader” que viene en la base de datos de ejemplo de SQL Server llamada AdventureWorks2012.

En esta tabla encontramos dos campos que usaremos uno que es el “OrderDate” y otro que es el “subTotal”.

Para usar funciones inteligentes de tiempo de DAX en Power BI crearemos una tabla llamada calendario con la funcion Calendar. La sintaxis se muestra a continuacion: Calendario = CALENDAR(“1/1/2000”,”1/1/2017").

Creacion de calendario via funcion Calendar en Power BI

una vez tenemos esto creado , cargamos las tablas de “SalesOrderHeader” y “SalesTerritory” y unimos el campo OrderDate de SalesOrderHeader con Date de nuestra tabla Calendario.

Union de tabla calendario con tabla de datos

Una vez tenemos esto crearemos tres medidas calculadas (measures), una tendra la sumatoria del mes actual -> subtotal Actual = SUM(‘Sales SalesOrderHeader’[SubTotal]).

El otro campo calculado sera el encargado de ver la sumatoria del mes anterior -> Subtotal mes anterior =
CALCULATE ( [subtotal Actual], PREVIOUSMONTH ( ‘Calendario’[Date] ) )

El ultimo campo es el que calculara el emoji, el valor de la emoji sera calculado por la funcion UniChar -> Arrows = SWITCH(
TRUE(),
ISBLANK([Subtotal mes anterior])
|| ISBLANK([subtotal Actual]),BLANK(),
[subtotal Actual] <= 0, UNICHAR(128310),
[subtotal Actual] >= [Subtotal mes anterior],UNICHAR(128516),
[subtotal Actual] <= [Subtotal mes anterior],UNICHAR(128169),
BLANK()
)

los codigos unichar 128516 corresponde al emoji de carita alegre y el 128169 al famoso emoji Poo.

Resultado final con emoji

Estos codigos unicode se pueden sacar de varios sitios, sin embargo personalmente uso este sitio : http://xahlee.info/comp/unicode_arrows.html ,sin embargo hay muchos mas en internet.

Para terminar si lo desean pueden bajar el ejemplo de PBIX ya terminado y funcionado desde este enlace:

https://1drv.ms/u/s!Akv64_g_jPFKipZnyCpkPAhoKYGcEQ

Unichar soporta no solo flechas sino cualquier simbolo unicode, lo cual abre muchas posibilidades de representar tendencias o semaforos o cualquier simbolo que se desee dentro de nuestros analisis .. que tal un emoticon? no suena descabellado no?

--

--

Juan Alvarado — Juanbizzz
SQL y Power BI en español

MVP Data Platform, Consultor en SQL Server , Power BI, SSRS, SSAS, Azure, Dynamics 365, AX tunning, Project, AX BI , SAP ASE, Replication Server y Hana