Formato de fechas en Power BI: grupos de cálculo y Deneb
En resumen — Un ejemplo, no un truco: un grupo de cálculo que compara cada año con el anterior. Tres columnas son moneda y una es porcentaje. En una matriz de Power BI eso se ve bien desde siempre; en Deneb, desde la versión 1.6, también, sin escribir un solo formato.
📥 El proyecto de Power BI y el spec están gratis al final del artículo.
El ejemplo
Tres campos y nada más: el año, el elemento de un grupo de cálculo de comparación y una medida, Total Sales. El grupo tiene cuatro elementos:
- Medida seleccionada — las ventas tal cual.
- Año anterior — las del año previo.
- Diferencia — una menos otra.
- Diferencia % — esa diferencia, en porcentaje.
Solo el último cambia el formato. Los otros tres conservan la moneda de la medida.
En Power BI
Así lo pinta una matriz nativa:
En Deneb
Y así llega a Deneb, con los mismos tres campos:
Los mismos formatos, celda a celda. El spec no sabe qué columna es porcentaje: la etiqueta lee el texto que Power BI ya formateó.
"text": { "field": "Total Sales__formatted", "type": "nominal" } Qué es __formatted y de dónde sale está en Formato de medidas en Power BI: __format en Deneb.
2023 sale incompleto a propósito: no tiene año anterior con el que compararse, así que esas celdas quedan vacías y la diferencia iguala a las ventas. Es el borde del calendario, no un fallo.
Antes no era así
Hasta la versión 1.5, Deneb recibía de un grupo de cálculo el número crudo: 0.0915 en lugar de 9.1%. Cualquier formato que le dieras en el spec valía para una columna y rompía las demás. Lo pidió el propio autor de Deneb y llegó en la 1.6, en noviembre de 2023: el formato de cada fila viaja en dos columnas de apoyo.
Este ejemplo es el caso que se reprodujo en el repositorio de Deneb frente a la tabla nativa, y funciona igual en la versión certificada y en la 2.0.
Actívalo en tu visual
Ten presente que en Deneb 2.0 estas dos columnas hay que activarlas: un visual nuevo no las trae. Se hace en el editor, sin tocar el spec:
- Pestaña Project setup.
- Supporting fields: dataset.
- En la medida —aquí, Total Sales—, marca Format string y Formatted value.
Sin ellas, cada celda dice «sin dato»: es el texto de respaldo del spec cuando Total Sales__formatted no existe. El archivo de descarga ya las trae activadas.
El grupo de cálculo
Solo Diferencia % declara formato. Los demás no declaran nada y heredan el de la medida.
calculationItem 'Medida seleccionada' = SELECTEDMEASURE()
calculationItem 'Año anterior' =
CALCULATE( SELECTEDMEASURE(), SAMEPERIODLASTYEAR( DimDate[Date] ) )
calculationItem Diferencia =
SELECTEDMEASURE() - CALCULATE( SELECTEDMEASURE(), SAMEPERIODLASTYEAR( DimDate[Date] ) )
calculationItem 'Diferencia %' =
VAR py = CALCULATE( SELECTEDMEASURE(), SAMEPERIODLASTYEAR( DimDate[Date] ) )
RETURN DIVIDE( SELECTEDMEASURE() - py, py )
formatStringDefinition = "0.0%" Si quieres que un elemento respete el formato de cada medida y no solo el de esta, mira Heredar el formato de la medida. El grupo con moneda, miles y porcentaje sobre una sola medida está en Grupos de cálculo en Power BI: su formato en Deneb.
Pruébalo
El modelo es Contoso Retail y es público. El ejemplo es la página 4 · Comparativa interanual del proyecto de grupos de cálculo: arriba la matriz nativa, abajo Deneb.
Recursos
Descargar gratis los recursos de este artículo
- El proyecto de Power BI con el grupo de comparación
TimeIntelen la página 4 · Comparativa interanual: matriz nativa y Deneb - Otros tres escenarios de grupos de cálculo en el mismo archivo
Es un proyecto PBIP dentro de un .zip: descomprime y abre el archivo .pbip. El archivo no trae datos para pesar poco: al abrirlo pulsa Actualizar y los carga de Contoso Retail en unos segundos.
¿Te resultó útil este artículo?
Tu apoyo me permite seguir creando contenido de calidad.