Formato de valores en Power BI con Deneb

csalcedodatabi Power BI Deneb DAX

En resumen — Deneb no formatea tus números: recibe el formato que el modelo ya resolvió. Lo que cambia de un caso a otro no es el gráfico, es de dónde sale ese formato. Esta guía te dice en cuál estás y a qué artículo ir.

El error de partida

Montas un gráfico en Deneb y las etiquetas salen así:

2,218,753.38      988,627.73

Y lo primero que hace casi todo el mundo —yo incluido durante años— es abrir el spec y escribir el formato ahí dentro: un format de d3, un condicional para los millones, otro para los miles.

Ese trabajo ya estaba hecho. Estaba en el modelo.

Cómo saber en qué caso estás

No hay una técnica de formato en Deneb: hay una por cada sitio del que puede venir el formato. La diferencia no está en el gráfico, está en tu modelo semántico.

Lo que tienes en el modeloLo que le llega a DenebDónde se explica
Una medida con formato fijoLa misma cadena en todas las filasFormato de medidas: __format
Una medida con formato dinámico (SWITCH)Resuelto fila a fila: millones en una, miles en la siguienteFormato dinámico con SWITCH
Un grupo de cálculoCada elemento impone el suyo, aunque la medida tenga otroGrupos de cálculo: su formato
Un grupo de cálculo que hereda el formato (SELECTEDMEASUREFORMATSTRING())Cada medida conserva el suyo: la moneda sigue siendo monedaHeredar el formato de la medida
Un grupo de cálculo cruzado con fechas (comparación con el año anterior)Cada celda, un año bajo un elemento, con su formato: moneda en tres columnas, porcentaje en unaFormato de fechas: grupos de cálculo y Deneb

Si no sabes por dónde empezar, empieza por el primero: es el que explica las dos columnas de las que dependen todos los demás.

Lo que todos tienen en común

Da igual de dónde venga el formato — Deneb siempre te lo entrega por el mismo sitio: dos columnas que tú no proyectaste.

ColumnaQué trae
[medida]__formattedEl valor ya escrito: $2.2 M
[medida]__formatLa cadena de formato de esa fila: $#,#0,,.0 M

La primera te ahorra el trabajo. La segunda te da el material por si quieres componerlo tú.

Y entonces lo único que se escribe en el gráfico es esto:

Toda la técnica, en una línea
"text": { "field": "Ventas__formatted", "type": "nominal" }

Sin condicionales, sin repetir la lógica, sin mantener dos verdades.

Nota

Son dos guiones bajos: Ventas__formatted, no Ventas_formatted. Es el error más repetido de todo el clúster, y no avisa — el campo llega vacío y parece que la función no existe.

Y no es una novedad

Esto no llegó con Deneb 2.0. Está documentado desde la versión 1.6, y ese apartado no ha cambiado ni una palabra desde entonces: nueve líneas, sin un solo ejemplo.

Así que si llevas años escribiendo formatos a mano dentro de tus gráficos, no llegaste tarde a nada. Nadie te contó que existía.

Lo que sí cambió en la 2.0 es otra cosa: en un visual nuevo esas dos columnas vienen apagadas. Hay que activarlas en la configuración del proyecto, sin tocar el spec. Los visuales que vienen de la 1.x las conservan. Cómo se activan, con un video de medio minuto, está en Formato de fechas en Power BI.

Cuándo sí conviene formatear dentro del gráfico

Para ser justos: no siempre sobra. Hay casos en los que el formato es una decisión del visual, no del modelo — un eje que necesita abreviar más que las etiquetas, o un tooltip que muestra el número entero mientras la barra lo resume.

Para eso está pbiFormat(), y tiene su propio artículo: Exploring the Power of the pbiFormat() Function in Deneb.

La regla es sencilla: si el formato pertenece al dato, resuélvelo en el modelo; si pertenece a cómo se ve, resuélvelo en el gráfico. Casi siempre es lo primero, y casi siempre se hace lo segundo.

Por dónde seguir

Cada artículo del clúster trae su propio proyecto de Power BI descargable, montado sobre Contoso Retail, que es público. Puedes abrirlos y ver los mismos números que aparecen en cada explicación.

Empieza por las dos columnas que no pediste. Lo demás cuelga de ahí.

¿Te resultó útil este artículo?

Tu apoyo me permite seguir creando contenido de calidad.

¡Contáctame!