Creare stringhe di formato dinamico per le misure

SI APPLICA A: Power BI Desktop Servizio Power BI

Con stringhe di formato dinamico per le misure, è possibile determinare la modalità di visualizzazione delle misure negli oggetti visivi applicando in modo condizionale una stringa di formato con un'espressione DAX separata.

Nota

Le stringhe di formato dinamico per le misure sono attualmente disponibili in anteprima. In anteprima, è probabile che le funzionalità e la documentazione cambino.

Le stringhe di formato dinamico superano uno svantaggio intrinseco dell'uso della funzione FORMAT. Ciò significa che con FORMAT anche i tipi di dati numerici vengono restituiti come stringa, cosa che potrebbe non funzionare con oggetti visivi che richiedono valori numerici, ad esempio i grafici. Quando si usano stringhe di formato dinamico, la misura mantiene il tipo di dati e non è costretta a passare a un tipo di dati stringa. Ciò applica stringhe di formato diverse alla misura a seconda del contesto.

Le stringhe di formato dinamico possono essere usate anche con i gruppi di calcolo. Gli stessi modelli DAX che funzionano con i gruppi di calcolo possono essere utilizzati anche in stringhe di formato dinamico per le misure, ma l'ambito è limitato alle singole misure anziché a tutte le misure nel modello. Per altre informazioni, vedere Gruppi di calcolo - Stringhe di formato dinamico.

Creare stringhe di formato dinamico

Per creare una stringa di formato dinamico

  1. Nel riquadro Data selezionare la misura per cui si desidera specificare una stringa di formato dinamico.

  2. Nella casella di riepilogo Strumenti di misura barra multifunzione >Formattazione >Formato selezionare Dinamico. Viene visualizzata una nuova casella di riepilogo con Formato già selezionato a sinistra della barra della formula DAX. Questo elenco a discesa consente di passare dall'espressione DAX della misura statica all'espressione DAX della stringa di formato dinamico. Indipendentemente dalla stringa di formato statico in uso prima di passare a Dynamic, questa viene prepopolata come stringa nella barra della formula DAX.

    Screenshot del menu a discesa Formato.

  3. Sovrascrivere la stringa con un'espressione DAX che restituisce la stringa di formato corretta per la misura. Ad esempio, l'espressione seguente cerca la stringa di formato valuta desiderata da una tabella "Stringhe formato valuta paese":

    Screenshot dell'espressione di misura formato Dinamico.

  4. Verificare che la stringa di formato dinamico funzioni in un oggetto visivo.

    Per eliminare la stringa di formato dinamico e tornare all'uso di una stringa di formato statico, nella sezione Formattazione, nella casella di elenco >Formato selezionare un'opzione di formato diversa. Poiché non è presente alcun annullamento di questa azione, viene visualizzata una finestra di dialogo che chiede se si vuole procedere. Se si vuole tornare a usare di nuovo una stringa di formato dinamico, è necessario immettere nuovamente l'espressione DAX.

    Screenshot dell'avviso di modifica del formato.

Esempio

Il modo migliore per apprendere una nuova funzionalità consiste nel provare manualmente. A tale scopo, è possibile usare il file di esempio PBIX Adventure Works 2020 disponibile nel modello di esempio DAX. Usando il modello di esempio, è possibile aggiungere la conversione valuta per visualizzare l'importo delle vendite convertito per anno. Dopo il download, aprire il file in Power BI Desktop.

Creare nuove tabelle

Il modello di esempio non contiene tutti i dati necessari per creare e usare stringhe di formato dinamico. Per iniziare, è prima necessario aggiungere due tabelle.

  1. Nella scheda Home della barra multifunzione selezionare Inserisci dati.

  2. Nella finestra di dialogo Crea tabella immettere il nome della tabella seguente e quindi copiare e incollare la tabella seguente:

    Nome tabella: Stringhe formato valuta paese

    Country Valuta Formato
    Australia Dollaro AU$#.0,00
    Canada Dollaro C$#.0,00
    Danimarca Corona kr#,0
    Zona Euro Euro € #.0,00
    Giappone Yen ¥ #,0
    Svezia Corona kr#,0
    Svizzera Franco CHF#.0,00
    Regno Unito Pound £ #,0
    Stati Uniti Dollaro US$#.0,00
  3. Verificare che la tabella sia corretta e quindi fare clic su Carica.

    Screenshot della finestra di dialogo Crea tabella.

  4. Ripetere i passaggi precedenti per la tabella seguente:

    Nome tabella: Tassi di cambio medi annuali

    Country Valuta Anno Tasso di cambio medio annuale
    Australia Dollaro 2022 1,442
    Australia Dollaro 2021 1,332
    Australia Dollaro 2020 1,452
    Australia Dollaro 2019 1,439
    Australia Dollaro 2018 1.34
    Australia Dollaro 2017 1,358
    Canada Dollaro 2022 1,301
    Canada Dollaro 2021 1,254
    Canada Dollaro 2020 1,341
    Canada Dollaro 2019 1,327
    Canada Dollaro 2018 1,297
    Canada Dollaro 2017 1,35
    Danimarca Corona 2022 7,077
    Danimarca Corona 2021 6.29
    Danimarca Corona 2020 6,538
    Danimarca Corona 2019 6.67
    Danimarca Corona 2018 6,319
    Danimarca 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
    Giappone Yen 2022 131,454
    Giappone Yen 2021 109,817
    Giappone Yen 2020 106,725
    Giappone Yen 2019 109,008
    Giappone Yen 2018 110,424
    Giappone Yen 2017 116,667
    Svezia Corona 2022 10,122
    Svezia Corona 2021 8,584
    Svezia Corona 2020 9,205
    Svezia Corona 2019 9,457
    Svezia Corona 2018 8,703
    Svezia Corona 2017 8,894
    Svizzera Franco 2022 0.955
    Svizzera Franco 2021 0,914
    Svizzera Franco 2020 0,939
    Svizzera Franco 2019 0,994
    Svizzera Franco 2018 0.979
    Svizzera Franco 2017 1.024
    Regno Unito Pound 2022 0,811
    Regno Unito Pound 2021 0,727
    Regno Unito Pound 2020 0,779
    Regno Unito Pound 2019 0.784
    Regno Unito Pound 2018 0.75
    Regno Unito Pound 2017 0,808

Creare una colonna Anno

Nella tabella Data esistente è necessaria una nuova colonna Anno.

  1. Nella vista Modello fare clic con il pulsante destro del mouse sulla tabella Data e quindi selezionare Nuova colonna.

  2. Nella barra della formula DAX immettere l'espressione seguente: Year = YEAR([Date]) e quindi premere INVIO.

    Screenshot della formula Anno nella barra delle formule DAX.

Creare relazioni

Le relazioni sono necessarie tra le nuove tabelle Tassi di cambio medio annuale e Stringhe formato valuta paese, nonché tra la tabella Tassi di cambio medio annuale e la tabella Data esistente.

  1. Se è stata attivata la correzione automatica per le relazioni, è possibile che sia stata creata automaticamente la relazione tra Stringhe formato valuta paese e Tassi di cambio medi annuali nella colonna Paese per conto dell'utente. In caso contrario, creare questa relazione:

    • Tabella 1: Tassi di cambio medi annuali
    • Colonna Tabella 1: Paese
    • Cardinalità: Molti a uno
    • Tabella 2: Stringhe formato valuta paese
    • Colonna Tabella 2: Paese
    • Imposta come relazione attiva:
    • Direzione filtro incrociato: Singolo

    La relazione dovrebbe essere simile alla seguente:

    Screenshot delle proprietà di relazione tra stringhe di formato valuta paese e tassi di cambio medi annuali.

  2. Se si dispone di rilevamento automatico per le relazioni, potrebbe essere stata creata una relazione tra Stringhe formato valuta paese e Territorio di vendita nella colonna Paese. Questa relazione, tuttavia, non è corretta per il modello. Nella vista Modello eliminare questa relazione.

  3. Creare invece una relazione tra Tassi di cambio medi annuali e Data nella colonna Anno.

    • Tabella 1: Tassi di cambio medi annuali
    • Colonna Tabella 1: Anno
    • Cardinalità: Molti a molti
    • Tabella 2: Data
    • Colonna Tabella 2: Anno
    • Imposta come relazione attiva:
    • Direzione filtro incrociato: Singolo ("Tasso di cambio medio annuale" filtra "Data")

    La relazione dovrebbe essere simile alla seguente:

    Screenshot della relazione.

  4. Salvare il modello.

Creare una tabella del gruppo di misure

Un gruppo di misure consente di organizzare misure diverse inserendole in una singola tabella.

  1. Nella scheda Home della barra multifunzione selezionare Inserisci dati.

  2. Nella finestra di dialogo Crea tabella lasciare vuoti i valori. Denominare la tabella Misure vendite e quindi fare clic su Carica. Questa tabella contiene le nuove misure.

Creare misure

  1. Nel riquadro Dati espandere e fare clic con il pulsante destro del mouse su Misure vendite, quindi selezionare Nuova misura. Immettere l'espressione DAX seguente nella barra della formula DAX e quindi premere INVIO:

    Sales Amount = SUM(Sales[Sales Amount])
    

    La cartella dovrebbe avere un aspetto simile a questo:

    Screenshot della formula DAX della misura Importo vendite.

  2. In Misure vendite fare clic con il pulsante destro del mouse su Colonna1 e quindi scegliere Nascondi nella visualizzazione report. In questo modo le misure di vendita vengono apportate a un gruppo di misure, che ora viene visualizzato nella parte superiore del riquadro Dati con un'icona del gruppo di misure, come illustrato di seguito:

    Screenshot di Colonna1 nel gruppo di misure Vendite.

  3. È ora possibile creare una misura per calcolare il tasso di cambio. Fare clic con il pulsante destro del mouse su Misure vendite, selezionare Nuova misura, immettere l'espressione seguente nella barra della formula DAX e quindi premere Invio:

    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] )
    )
    
    

    L'aspetto dovrà essere come questo: Screenshot della formula DAX del tasso di cambio nell'editor DAX.

  4. Ora si crea un'altra misura per convertire la misura Importo vendite in altre valute. Fare clic con il pulsante destro del mouse su Misure vendite, selezionare Nuova misura, immettere l'espressione seguente nella barra della formula DAX e quindi premere Invio:

        Converted Sales Amount = 
        SUMX('Date',
        CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
    
    

    Il gruppo di misure Misure vendite dovrebbe ora avere l'aspetto seguente: Screenshot della formula di misura Importo vendite convertite.

Creazione di un report

  1. Passare alla visualizzazione Report. Aggiungere una nuova pagina vuota al report.

  2. Aggiungere un oggetto visivo grafico a linee alla nuova pagina del report. Questo oggetto visivo viene usato per visualizzare la misura prima di aggiungere la stringa di formato dinamico per le misure.

  3. Nel riquadro Dati >Misure vendite selezionare Importo vendite convertito. Senza fare clic altrove, selezionare anche Anno nella tabella Data.

    Screenshot dell'oggetto visivo Grafico a linee nella visualizzazione Report.

  4. Copiare e quindi incollare l'oggetto visivo in modo da avere due oggetti visivi grafico a linee. Modificare il secondo oggetto visivo grafico a linee in un oggetto visivo tabella e quindi spostarlo sotto il grafico a linee, come illustrato di seguito:

    Screenshot dell'oggetto visivo Copia grafico a linee.

  5. Aggiungere un oggetto visivo filtro dei dati alla pagina del report. Nella barra multifunzione Formato aggiungere Paese dalla tabella Stringhe formato valuta paese al filtro dei dati.

    Screenshot del filtro dei dati Country.

  6. Ridisporre gli oggetti visivi fino a quando non hanno un layout migliore, simile al seguente:

    Screenshot di Ridisponi oggetti visivi.

  7. Anche se non è necessario, è possibile modificare le proprietà visive per creare un report più accattivante:

    Filtro dei dati

    • Impostazioni filtro dei dati: selezione singola
    • Dimensioni e stile, spaziatura interna: 10 px, tutti i bordi
    • Dimensioni e stile, bordo visivo: grigio chiaro, angoli arrotondati 10 px
    • Impostazioni filtro dei dati, stile: riquadro
    • Intestazione del filtro dei dati: Off
    • Valori, bordo: sinistra, #333333, larghezza riga 6

    Tabella

    • Dimensioni e stile, spaziatura interna: 10 px, tutti i bordi
    • Dimensioni e stile, bordo visivo: grigio chiaro, angoli arrotondati 10 px
    • Griglia, griglie orizzontali: bianco, larghezza 2
    • Griglia, griglie verticali: bianco, larghezza 2
    • Griglia, bordo: bianco
    • Griglia, opzioni: spaziatura interna riga 2
    • Valori, valori: colore di sfondo #F6F4F4
    • Valori, valori: colore di sfondo alternativo #F6F4F4
    • Intestazioni di colonna, testo: grassetto, colore testo bianco, colore di sfondo #0D6ABF

    Grafico a linee

    • Dimensioni e stile, spaziatura interna: 10 px, tutti i bordi
    • Dimensioni e stile, bordo visivo: grigio chiaro, angoli arrotondati 10 px
    • Titolo, sottotitolo: On
    • Asse y, titolo: Off
    • Asse Y: off
    • Marcatori: on
    • Etichette dati: On
    • Etichette dati, valori: grassetto, blu

    Canvas (facoltativo)

    • Sfondo Canvas: grigio chiaro, trasparenza 85%

    Con queste proprietà visive, si ottiene una pagina del report interessante, come illustrato di seguito:

    Screenshot dello sfondo Canvas grigio per l'oggetto visivo.

Creare una stringa di formato dinamico

Se si selezionano nomi diversi per il Paese nel filtro dei dati, viene visualizzato il risultato della misura Importo vendite convertite negli oggetti visivi, ma non nel formato corretto per il paese o l'area geografica.

  1. Nel riquadro Dati >Misure vendite selezionare Importo vendite convertito.

  2. Nella barra multifunzione Strumenti di misura fare clic sull'elenco a discesa Formato e quindi selezionare Dinamico.

  3. La casella di riepilogo a discesa a sinistra della barra della formula dovrebbe ora indicare Formato e la formula nella barra della formula dovrebbe avere una stringa di formato. Sostituire la stringa di formato con l'espressione DAX seguente e quindi premere INVIO:

    SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
    

    La cartella dovrebbe avere un aspetto simile a questo:

    Screenshot della formula dinamica Stringhe formato valuta paese.

  4. Selezionare un paese diverso nel filtro dei dati. Gli oggetti visivi di tabella e grafico a linee dovrebbero ora visualizzare l'importo di valuta convertito, nel formato corretto, per il paese o l'area geografica. Provare a selezionare un paese/area geografica diverso nel filtro dei dati per vedere come cambiano gli oggetti visivi.

    Screenshot dell'oggetto visivo Importo vendite convertite.

  5. Salvare il modello.

Problemi e considerazioni noti

Durante l'anteprima vengono risolti i problemi e le limitazioni seguenti:

  • Gli oggetti visivi hanno opzioni di formattazione che possono influire sulla modalità di visualizzazione della stringa di formato. Se la formattazione viene visualizzata in modo imprevisto in un oggetto visivo, passare alle opzioni Formato visivo, cercare Unità di visualizzazione e modificarla da Automatica a Nessuna.

    Screenshot delle unità di visualizzazione da auto a nessuna.

  • È possibile fare riferimento alla misura stessa direttamente nella stringa di formato dinamico usando il relativo nome, ad esempio [Misura A], o indirettamente usando SELECTEDMEASURE().

  • Le stringhe di formato dinamico per le misure si applicano solo alle misure del modello. Le misure report che possono essere aggiunte a un report di connessione dinamica non possono avere stringhe di formato dinamico per le misure.

  • Con DirectQuery per Analysis Services, quando si fa clic su Apporta modifiche a questo modello in un report di connessione dinamica, la connessione viene spostata su DirectQuery su Analysis Services. In generale, è possibile apportare modifiche alle stringhe di formato delle misure del modello remoto. Durante l'Anteprima:

    • Le misure del modello remoto con stringhe di formato dinamico definite non possono apportare modifiche alle stringhe per portarle a un formato statico o a un'espressione DAX di stringa formato dinamico diversa.
    • Le misure del modello remoto non possono essere modificate da una stringa di formato statico in un'espressione DAX di formato dinamico definita nel modello locale.
    • Le misure del modello locale non possono usare stringhe di formato dinamico per le misure.