¿Alguna vez os habéis encontrado con la necesidad de transformar datos entre sistemas de unidades diferentes?¿Es posible automatizar el resultado en función del sistema seleccionado?😵
Hoy os traigo una alternativa para solucionar este hándicap desde Power BI que nos permita seleccionar el sistema y, en función del mismo y de la unidad de medida seleccionada, transforme de forma dinámica los datos a representar en el informe.
¿Qué vamos a necesitar para implementarlo?
- Necesitaremos dos tablas de ratios de conversión. Una con los valores por defecto y la otra con todos los valores y transformaciones entre unidades posibles para ese tipo de medida, así como su ratio de conversión con la siguiente estructura:
- Valores por defecto: Esta tabla nos servirá para que cuando en el informe no tengamos ninguna unidad seleccionada, por defecto se represente la unidad establecida según el tipo de medida:
- Tabla con todas las transformaciones entre todas las unidades posibles:
Donde Unit Type corresponde al sistema de medida y Type corresponde al tipo de unidades según la clasificación. Para este ejemplo se representa en el sistema internacional de medida( europeo) y el sistema de EEUU
- Para que se pueda cambiar entre sistemas de unidades de forma parametrizada, lo que necesitaremos será establecer un parámetro. Para configurarlo, desde el editor de consultas( Power Query) de Power BI podremos generarlo y vincularlo a las columnas de Unit Type de las dos tablas anteriores:De esta forma, y cada vez que abramos el informe, podremos cambiar el parámetro en función del sistema que queramos representar en las unidades:
- Y por último, necesitaremos una medida que haga la conversión de forma dinámica y que permita realizar la transformación en función de la unidad seleccionada:
Total = if(ISFILTERED('Table of Conversion Rates'[To])&&HASONEVALUE('Table of Conversion Rates'[To]),FORMAT(sumx('Values','Values'[Quantity]*LASTNONBLANK('Table of Conversion Rates'[Value Conversion],0)),"#.##,0")&" "&LASTNONBLANK('Table of Conversion Rates'[To],"")&"s",FORMAT(SUMX('Values','Values'[Quantity]*LASTNONBLANK('Table of Conversion Default Rates'[Value Conversion],0)),"#.##,0")&" "&CONCATENATE(LASTNONBLANK('Table of Conversion Default Rates'[To],""),"s"))
¿Y cuál es el resultado? 👀
Finalmente, lo que conseguimos es disponer un informe en Power BI que nos permite seleccionar el sistema de unidades, y además, seleccionar mediante un filtro la unidad, lo que permitirá que de forma dinámica se represente el valor convertido a la unidad seleccionada en función del tipo de medida. En el caso de no tener nada seleccionado, el valor representado tomará la unidad por defecto: