Tutorial Power BI: Medidas en Filas de Matriz

La visualización de Matriz es una de las más usadas en Power BI, ya que recuerda mucho a las Tablas Dinámicas o Pivot Tables de Excel. Normalmente situamos los valores de una dimensión en filas y de otra dimensión en columnas y analizamos en Valores una medida. ¿Pero que pasaría si quisiésemos analizar varias medidas en filas? En este tutorial os mostraremos como hacerlo.
En concreto vamos a mostraros como:
- Mostrar diferentes medidas a la vez en las filas de una Matriz en Power BI.
- Incluir algún atributo de dimensión también en filas, aparte de las medidas antes mencionadas.
- Usar Tabular Editor para incluir columnas con Inteligencia de Tiempo y así mostrar la evolución temporal de dichas métricas.
Para este ejemplo he optado por un conjunto de datos de Kaggle que recoge las ventas de inmuebles en la ciudad de New York en 2016 y 2017. Podéis descargaros el datase en el siguiente link. Es un fichero csv por lo que simplemente tendréis que añadir los datos como “Fichero de Texto” en Power BI Desktop y dispondréis de todos los registros disponibles en vuestro informe.
Creación de medidas básicas con DAX
Tras analizar los datos de Kaggle, disponemos de un listado de ventas de propiedades inmobiliarias durante 2016 y 2017. Los registros muestran la tipología del inmueble, el distrito y barrio, fecha de la venta, superficie y precio de venta.
Es bastante información, pero en el sector inmobiliario se manejan algunas métricas especificas que necesitamos desarrollar en DAX par poder analizarlas:
- Número de Propiedades Vendidas
- Precio Medio de Venta
- Promedio m2
- Precio Medio m2
- Promedio m2 Superficie
- Promedio m2 Brutos
- % Unidades Residenciales
Hemos optado por medidas sencillas porque en este tutorial nos interesa el concepto de “Medidas en Filas de Matriz” y no el desarrollo de métricas DAX complejas, que veremos seguramente en siguientes tutoriales. De todos modos, os dejo aquí la formulación de dichas métricas sencillas:
Propiedades Vendidas =COUNT ( ‘nyc-rolling-sales'[#] )
Precio Venta Medio =
AVERAGE ( ‘nyc-rolling-sales'[SALE PRICE] )
Promedio m2 =
AVERAGE ( ‘nyc-rolling-sales'[LAND SQUARE FEET] ) * 0.092903
Precio Medio m2 =
SUM ( ‘nyc-rolling-sales'[SALE PRICE] )
/ ( SUM ( ‘nyc-rolling-sales'[LAND SQUARE FEET] ) * 0.092903 )
Promedio m2 Superficie =
AVERAGE ( ‘nyc-rolling-sales'[LAND SQUARE FEET] )
Promedio m2 Brutos =
AVERAGE ( ‘nyc-rolling-sales'[GROSS SQUARE FEET] )
% Unidades Residenciales =
SUM ( ‘nyc-rolling-sales'[RESIDENTIAL UNITS] )
/ SUM ( ‘nyc-rolling-sales'[TOTAL UNITS] )
Veréis que las medidas de Superficie en metros cuadrados (m2) tienen un factor de 0.092903, que es el factor de conversión entre “square feets” (la medida original de superficie del dataset) y los metros cuadrados.
Cómo mostrar Medidas en Filas de una Matriz en Power BI
Una vez que tenemos creadas las medidas, crearemos una visualización tipo Matriz en nuestro informe de Power BI Desktop. Si intentamos arrastrar las medidas al campo “Filas” veréis que no nos dejará hacerlo:

El único campo al que podemos arrastrarlo es al campo Valores, por lo que vamos a arrastrarlo allí de momento:

Si revisamos la visualización de la Matriz, veremos que ha añadido las medidas como columnas en vez de filas:

Para que lo muestre como filas debemos seleccionar la visualización de Matriz y en el apartado de “Formato” >”Valores” activar el parámetro “Mostrar en Filas“:

Ahora ya se ven las medidas en Filas y podemos añadir en columnas algún otro atributo para segmentar las métricas calculadas. En este caso hemos añadido en columnas el siglo de construcción del edificio:

¿Y si añadimos un campo adicional a las Filas de la Matriz?
En este punto tenemos las medidas mostradas como Filas y un campo “Siglo” en columnas, pero si vemos los parámetros de la Matriz los campos en “Filas” están vacíos:

Es por eso que se me ocurrió que pasaría si, teniendo las medidas en Filas, añadimos otro campo a la configuración “Filas”. Para ello, hice otra visualización matriz similar con las métricas mostradas en Filas y arrastré el campo “Distrito” a Filas. En resultado es que en Filas vemos calculadas todas las medidas para cada valor de Distrito en forma de Jerarquía:

Matriz con medidas en filas y Grupos Calculados en columnas
Los Grupos Calculados son un funcionalidad añadida a Power BI Desktop que se inspira en los “Miembros Calculados” usados en cubos MDX o Multidimensionales en Analysis Services.
Básicamente, los Grupos Calculados son una forma de estandarizar cálculos por encima de DAX y aplicarlos a diferentes medidas a la vez. Nos ahorran la creación repetitiva de medidas para realizar la misma operación en varias métricas. Por ejemplo, si tenemos todas estas medidas calculadas de las ventas inmobiliarias en NY y queremos calcularlas para el año anterior tendríamos que duplicar el número de medidas.
Con Tabular Editor (herramienta externa a Power BI Desktop) podemos realizar el cálculo una vez y aplicarlo luego a varias medidas.
Lo primero que debes hacer (si no lo has hecho ya) es descargar e instalar Tabular Editor. Una vez instalado podrás abrirlo desde tu propio informe de Power BI Desktop a través del menú de “Herramientas Externas“:

Al abrirlo desde vuestro informe veréis que recoge todo vuestro modelo de datos con las medidas incluidas:

Si usáis el botón derecho del ratón sobre la carpeta “Tablas” veréis la opción “Crear Nuevo Grupo Calculado” y sólo debéis darle un Nombre en Propiedades. En mi caso lo he llamado “Time Intelligence”:

Sobre el Grupo Calculado podemos crear “Calculated Items“, que son los cálculos estandarizados de los que hablábamos antes. En mi caso he creado 2:
AÑO ACTUAL =SELECTEDMEASURE ()
AÑO ANTERIOR =
CALCULATE ( SELECTEDMEASURE (), DATEADD ( ‘Fecha'[Date], -1, YEAR ) )
Mi informe esta filtrado por el año 2017, por lo que al aplicar AÑO ACTUAL devolverá el valor de la medida para 2017 y al aplicar AÑO ANTERIOR devolverá el valor de medida para 2016.
Cuando guardamos el modelo en Tabular Editor (File > Save) y volvemos a Power BI Desktop veremos que tenemos un objeto tabla adicional llamado “Time Intelligence” con un campo “Name”.
Si creamos una matriz con las medidas en Filas y en columnas arrastramos el campo Name de Time Intelligence veremos que funciona perfectamente:

Con todas estas pruebas que hemos realizado, el informe quedaría de la siguiente manera (podéis agradar el informe e interactuar con él):
Conclusiones
Como veis, aunque no es muy intuitivo, es posible poner medidas en filas de una Matriz en Power BI. Seguro que ahora estáis pensando en las posibilidades que tiene y en casos de uso para vuestra empresa o en informes que estéis desarrollando.
Aparte, el poder combinarlo con Grupos Calculados le da una potencia aún mayor. ¿Y vosotros que opináis? ¿Lo habéis usado ya? Deja en los comentarios de este tutorial cualquier duda que tengas o caso de uso que quieras compartir con nosotros. Y recordad que si sois suscriptores de nuestra newsletter (es gratis) podréis tener acceso al pbix original de este tutorial.






