Creación de cadenas de formato dinámico para medidas
SE APLICA A: Power BI Desktop Servicio Power BI
Con las cadenas de formato dinámico para medidas, puede determinar cómo aparecen las medidas en los objetos visuales aplicando condicionalmente una cadena de formato con una expresión DAX independiente.
Nota
Las cadenas de formato dinámico para medidas están actualmente en versión preliminar. Cuando se encuentra en versión preliminar, es probable que la funcionalidad y la documentación cambien.
Las cadenas de formato dinámico superan una desventaja inherente del uso de la función FORMAT. Es decir, con FORMAT incluso los tipos de datos numéricos se devolverán como una cadena, que podría no funcionar con objetos visuales que requieran valores numéricos, como gráficos. Al usar cadenas de formato dinámico, la medida mantendrá su tipo de datos y no será forzada a cambiar a un tipo de datos de cadena. Esto aplica cadenas de formato diferentes a la medida en función del contexto.
Las cadenas de formato dinámico también se pueden usar con grupos de cálculo. Los mismos patrones DAX que funcionan con grupos de cálculo también se pueden usar en cadenas de formato dinámico para las medidas, pero el ámbito se limita a medidas individuales en lugar de a todas las medidas del modelo. Para más información, consulte Grupos de cálculo: cadenas de formato dinámico.
Creación de cadenas de formato dinámico
Para crear una cadena de formato dinámico
En el panel Datos, seleccione la medida para la que desea especificar una cadena de formato dinámico.
En el cuadro de lista Herramientas de medida de la cinta, en la sección>Formato, en el cuadro de lista >Formato, seleccione Dinámico. Aparece un cuadro de lista nuevo con Formato ya seleccionado a la izquierda de la barra de fórmulas DAX. Esta lista desplegable es cómo puede cambiar entre la expresión DAX de medida estática y la cadena de expresión DAX de formato dinámico. Sea cual sea la cadena de formato estático que esté en uso antes de cambiar a dinámico, se rellena previamente como una cadena en la barra de fórmulas DAX.
Sobrescriba la cadena con una expresión DAX que genere la cadena de formato correcta para la medida. Por ejemplo, la siguiente expresión consulta el formato de la cadena de moneda de la tabla "Cadenas de formato de moneda según el país":
Compruebe que la cadena de formato dinámico funciona en un objeto visual.
Para eliminar la cadena de formato dinámico y volver a usar una cadena de formato estático, en la sección Formato en el cuadro de lista >Formato, seleccione una opción de formato diferente. Dado que no hay forma de deshacer esta acción, aparecerá un cuadro de diálogo preguntando si desea continuar. Si desea volver a usar una cadena de formato dinámico de nuevo, deberá volver a escribir la expresión DAX.
Ejemplo
La mejor manera de obtener información sobre una nueva característica es probarla usted mismo. Puede hacerlo con el archivo de ejemplo Adventure Works 2020 PBIX disponible en el modelo de ejemplo DAX. Mediante el modelo de ejemplo, es posible agregar la conversión de moneda para mostrar el importe de ventas realizadas por año. Después de descargarlo, abra el archivo en Power BI Desktop.
Crear nuevas tablas
El modelo de ejemplo no contiene todos los datos necesarios para crear y usar cadenas de formato dinámico. Para empezar, primero deberá agregar dos tablas.
En la cinta de opciones de Inicio, seleccione Escribir datos.
En el cuadro de diálogo Crear tabla, escriba el siguiente nombre de tabla y copie y pegue la tabla siguiente:
Nombre de tabla: Cadenas de formato de moneda de país
País Moneda Formato Australia Dólar AU$#,0,00 Canadá Dólar C$#,0,00 Dinamarca Corona kr#,0 Zona euro Euro € #,0,00 Japón Yen ¥ #,0 Suecia Corona sueca kr#,0 Suiza Franco CHF#,0,00 Reino Unido Pound £ #,0 Estados Unidos Dólar US$#,0,00 Compruebe que la tabla sea correcta y, a continuación, haga clic en Cargar.
Repita los pasos anteriores para las tablas siguientes:
Nombre de tabla: Tipos de cambio promedio anual
País Moneda Year Tipo de cambio promedio anual Australia Dólar 2022 1,442 Australia Dólar 2021 1,332 Australia Dólar 2020 1,452 Australia Dólar 2019 1,439 Australia Dólar 2018 1,34 Australia Dólar 2017 1,358 Canadá Dólar 2022 1,301 Canadá Dólar 2021 1,254 Canadá Dólar 2020 1,341 Canadá Dólar 2019 1,327 Canadá Dólar 2018 1,297 Canadá Dólar 2017 1,35 Dinamarca Corona 2022 7,077 Dinamarca Corona 2021 6.29 Dinamarca Corona 2020 6,538 Dinamarca Corona 2019 6,67 Dinamarca Corona 2018 6,319 Dinamarca Corona 2017 6,864 Zona euro Euro 2022 0,951 Zona euro Euro 2021 0,846 Zona euro Euro 2020 0,877 Zona euro Euro 2019 0,893 Zona euro Euro 2018 0,848 Zona euro Euro 2017 0,923 Japón Yen 2022 131,454 Japón Yen 2021 109,817 Japón Yen 2020 106,725 Japón Yen 2019 109,008 Japón Yen 2018 110,424 Japón Yen 2017 116,667 Suecia Corona sueca 2022 10,122 Suecia Corona sueca 2021 8,584 Suecia Corona sueca 2020 9,205 Suecia Corona sueca 2019 9,457 Suecia Corona sueca 2018 8,703 Suecia Corona sueca 2017 8,894 Suiza Franco 2022 0.955 Suiza Franco 2021 0,914 Suiza Franco 2020 0,939 Suiza Franco 2019 0,994 Suiza Franco 2018 0,979 Suiza Franco 2017 1,024 Reino Unido Pound 2022 0,811 Reino Unido Pound 2021 0,727 Reino Unido Pound 2020 0,779 Reino Unido Pound 2019 0,784 Reino Unido Pound 2018 0,75 Reino Unido Pound 2017 0,808
Crear una columna Año
Se necesita una nueva columna Año en la tabla Fecha existente.
En la vista Modelo, haga clic con el botón derecho en la tabla Fecha y, a continuación, seleccione Nueva columna.
En la barra de fórmulas DAX, escriba la siguiente expresión:
Year = YEAR([Date])
, y presione Entrar.
Crear relaciones
Las relaciones son necesarias entre las nuevas tablas Tipos de cambio promedio anual y Cadenas de formato de moneda de país, y entre la tabla Tipos de cambio promedio anual y la tabla Fecha existente.
Si tiene detección automática para las relaciones activadas, es posible que haya creado la relación Cadenas de formato de moneda de país y Tipos de cambio promedio anual en la columna País. Si no fuera así, cree esta relación:
- Tabla 1: Tipos de cambio promedio anual
- Columna de la tabla 1: País
- Cardinalidad: Muchos a uno
- Tabla 2: Cadenas de formato de moneda de país
- Columna de la tabla 2: País
- Activar esta relación: Sí
- Dirección de filtro cruzado: Único
La relación debería verse así:
Si tiene detección automática para las relaciones activadas, es posible que se haya creado una relación entre Cadenas de formato de moneda de país y Territorio de ventas en la columna País. Sin embargo, esta relación no es correcta para nuestro modelo. En la vista Modelo, elimine esta relación.
En su lugar, cree una relación entre Tipos de cambio promedio anual y Fecha en la columna Año.
- Tabla 1: Tipos de cambio promedio anual
- Columna de la tabla 1: Año
- Cardinalidad: Muchos a muchos
- Tabla 2: Fecha
- Columna de la tabla 2: Año
- Activar esta relación: Sí
- Dirección del filtro cruzado: Único (“Tasa de cambio promedio anual” filtra “Fecha”)
La relación debería verse así:
Guarde el modelo.
Creación de una tabla de grupo de medida
Un grupo de medida le ayuda a organizar diferentes medidas teniéndolas en una sola tabla.
En la cinta de opciones Inicio, seleccione Escribir datos.
En el cuadro de diálogo Crear tabla, deje los valores en blanco. Asigne a la tabla el nombre Medidas de ventas y, a continuación, haga clic en Cargar. Esta tabla contiene las nuevas medidas.
Creación de medidas
En el panel Datos, expanda y haga clic con el botón derecho en Medidas de ventas y, a continuación, seleccione Nueva medida. Introduzca la siguiente expresión DAX en la barra de fórmulas DAX y, a continuación, presione Entrar:
Sales Amount = SUM(Sales[Sales Amount])
Debería ser parecido a este:
En Medidas de ventas, haga clic con el botón derecho en Columna1 y, a continuación, seleccione Ocultar en la vista de informe. Esto cambia las medidas de Ventas a un grupo de medida, que ahora aparece en la parte superior del panel Datos con un icono de grupo de medida como este:
Ahora puede crear una medida para calcular el tipo de cambio. Haga clic con el botón derecho en Medidas de ventas, seleccione Nueva medida, escriba la expresión siguiente en la barra de fórmulas DAX y presione Entrar:
Exchange Rate (Yearly Avg) = IF ( ISBLANK ( SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) ) || SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) = "United States", 1, AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] ) )
Debería tener un aspecto como este:
Ahora cree otra medida para convertir la medida Importe de venta a otras monedas. Haga clic con el botón derecho en Medidas de ventas, seleccione Nueva medida, escriba la expresión siguiente en la barra de fórmulas DAX y presione Entrar:
Converted Sales Amount = SUMX('Date', CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
El grupo de medida de medidas de ventas ahora debería tener este aspecto:
Creación de un informe
Vaya a Vista de informe. Agregue una nueva página en blanco al informe.
Agregue un objeto visual de gráfico de líneas a la nueva página del informe. Use este objeto visual para ver la medida antes de agregar la cadena de formato dinámico para las medidas.
En el panel Datos, >Medidas de ventas, seleccione Importe de ventas convertido. Sin hacer clic en ningún otro lugar, seleccione también Año en la tabla Fecha.
Copie y pegue el objeto visual para que tenga dos objetos visuales de gráfico de líneas. Cambie el segundo objeto visual de gráfico de líneas a un objeto visual de tabla y, a continuación, muévalo debajo del gráfico de líneas de la siguiente manera:
Agregue un objeto visual de segmentación a la página del informe. En la cinta Formato, agregue País de la tabla Cadenas de formato de moneda de país a la segmentación.
Reorganizar los objetos visuales hasta que tengan un diseño mejor. Algo parecido a esto:
Aunque no es necesario, es posible cambiar las propiedades visuales para crear un informe más agradable:
Segmentación
- Configuración de segmentación: selección única
- Tamaño y estilo, espaciado: 10 px, todos los bordes
- Tamaño y estilo, borde visual: gris claro, esquinas redondeadas de 10 px
- Configuración de segmentación, estilo: icono
- Encabezado de segmentación: desactivado
- Valores, borde: Izquierdo, #333333, ancho de línea 6
Tabla
- Tamaño y estilo, espaciado: 10 px, todos los bordes
- Tamaño y estilo, borde visual: gris claro, esquinas redondeadas de 10 px
- Cuadrícula, líneas de cuadrícula horizontales: blanco, 2 ancho
- Cuadrícula, líneas de cuadrícula verticales: blanco, 2 ancho
- Cuadrícula, borde: blanco
- Cuadrícula, opciones: espaciado de filas 2
- Valores, valores: color de fondo #F6F4F4
- Valores, valores: color de fondo alternativo #F6F4F4
- Encabezados de columna, texto: negrita, color de texto blanco, color de fondo #0D6ABF
Gráfico de líneas
- Tamaño y estilo, espaciado: 10 px, todos los bordes
- Tamaño y estilo, borde visual: gris claro, esquinas redondeadas de 10 px
- Título, subtítulo: activado
- Eje Y, título: desactivado
- Eje Y: desactivado
- Marcadores: activado
- Etiquetas de datos: activado
- Etiquetas de datos, valores: negrita, azul
Lienzo (opcional)
- Fondo del lienzo: gris claro, transparencia del 85 %
Con esas propiedades visuales, obtendrá una bonita página de informe como esta:
Crear una cadena de formato dinámico
Al seleccionar diferentes nombres de país en la segmentación, se muestra el resultado de la medida Importe de ventas convertida en objetos visuales, pero no en el formato adecuado para ese país o región.
En el panel Datos, >Medidas de ventas, seleccione Importe de ventas convertido.
En la cinta Herramientas de medida, haga clic en la lista desplegable Formato y, a continuación, seleccione Dinámico.
El cuadro de lista desplegable situado a la izquierda de la barra de fórmulas deberá indicar ahora Formato, mientras que la fórmula de la barra de fórmulas deberá tener una cadena de formato. Reemplace la cadena de formato por la siguiente expresión DAX y presione Entrar:
SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
Debería ser parecido a este:
Seleccione un país diferente en la segmentación. Los objetos visuales del gráfico de tablas y líneas ahora deberían mostrar el importe monetario convertida en el formato correcto para ese país o región. Pruebe a seleccionar otro país o región de la segmentación para ver cómo cambian los objetos visuales.
Guarde el modelo.
Problemas conocidos y consideraciones
Durante la versión preliminar se abordarán los siguientes problemas y limitaciones:
Los objetos visuales tienen opciones de formato que podrían afectar a cómo se muestre la cadena de formato. Si el formato se mostrase inesperadamente en un objeto visual, vaya a las opciones de Formato visual, busque Unidades de visualización y cambie de Automático a Ninguna.
A la propia medida se puede hacer referencia directamente en su cadena de formato dinámico mediante su nombre, como [Medida A] o, indirectamente, mediante
SELECTEDMEASURE()
.Las cadenas de formato dinámico para las medidas solo son para las medidas del modelo. Las medidas de informe que se pueden agregar a un informe de conexión dinámica no pueden tener cadenas de formato dinámico para las medidas.
Con DirectQuery para Analysis Services, al hacer clic en Realizar cambios en este modelo en un informe de conexión dinámica, cambiará la conexión a DirectQuery a través de Analysis Services. En general, es posible realizar cambios en las cadenas de formato de las medidas del modelo remoto. Durante la versión preliminar:
- Las medidas del modelo remoto con cadenas de formato dinámico definidas no pueden realizar cambios de cadena de formato en una cadena de formato estático o en una expresión DAX de cadena de formato dinámico diferente.
- Las medidas de modelo remoto no se pueden cambiar de una cadena de formato estático a una expresión DAX de cadena de formato dinámico definida en el modelo local.
- Las medidas de modelo local no pueden usar cadenas de formato dinámico para las medidas.