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

  1. En el panel Datos, seleccione la medida para la que desea especificar una cadena de formato dinámico.

  2. 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.

    Captura de pantalla de una lista desplegable de formato.

  3. 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":

    Captura de pantalla de una expresión de medida de formato dinámico.

  4. 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.

    Captura de pantalla de una advertencia de cambio de formato.

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.

  1. En la cinta de opciones de Inicio, seleccione Escribir datos.

  2. 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
  3. Compruebe que la tabla sea correcta y, a continuación, haga clic en Cargar.

    Captura de pantalla de un cuadro de diálogo de Crear tabla.

  4. 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.

  1. En la vista Modelo, haga clic con el botón derecho en la tabla Fecha y, a continuación, seleccione Nueva columna.

  2. En la barra de fórmulas DAX, escriba la siguiente expresión: Year = YEAR([Date]), y presione Entrar.

    Captura de pantalla de una fórmula de Año en la barra de fórmulas DAX.

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.

  1. 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:
    • Dirección de filtro cruzado: Único

    La relación debería verse así:

    Captura de pantalla de propiedades de relación entre cadenas de formato de moneda de país y tipos de cambio promedio anuales.

  2. 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.

  3. 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:
    • Dirección del filtro cruzado: Único (“Tasa de cambio promedio anual” filtra “Fecha”)

    La relación debería verse así:

    Captura de pantalla de relación.

  4. 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.

  1. En la cinta de opciones Inicio, seleccione Escribir datos.

  2. 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

  1. 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:

    Captura de pantalla de una fórmula DAX de medida de importe de ventas.

  2. 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:

    Captura de pantalla de Columna1 en el grupo de medida de Ventas.

  3. 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: Captura de pantalla de una fórmula DAX de tipo de cambio en el editor DAX.

  4. 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: Captura de pantalla de una fórmula de medida del importe de ventas convertido.

Creación de un informe

  1. Vaya a Vista de informe. Agregue una nueva página en blanco al informe.

  2. 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.

  3. 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.

    Captura de pantalla de un objeto visual de gráfico de líneas en la vista Informe.

  4. 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:

    Captura de pantalla de una copiar el objeto visual del gráfico de líneas.

  5. 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.

    Captura de pantalla de la segmentación de país.

  6. Reorganizar los objetos visuales hasta que tengan un diseño mejor. Algo parecido a esto:

    Captura de pantalla de reorganizar objetos visuales.

  7. 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:

    Captura de pantalla del fondo del lienzo gris para el objeto visual.

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.

  1. En el panel Datos, >Medidas de ventas, seleccione Importe de ventas convertido.

  2. En la cinta Herramientas de medida, haga clic en la lista desplegable Formato y, a continuación, seleccione Dinámico.

  3. 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:

    Captura de pantalla de una fórmula dinámica de cadenas de formato de moneda de país.

  4. 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.

    Captura de pantalla de un objeto visual del importe de ventas convertido.

  5. 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.

    Captura de pantalla de mostrar unidades 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.