Creare stringhe di formato dinamico per le misure

SI APPLICA A: Power BI Desktop servizio Power BI

Con le 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, che potrebbero 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 Dati selezionare la misura per cui si desidera specificare una stringa di formato dinamico.

  2. Nella casella di riepilogo Formato della sezione >Strumenti di misura della barra multifunzione> Selezionare Dinamico. A sinistra della barra della formula DAX viene visualizzata una nuova casella di riepilogo con formato già selezionato. 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 viene prepopolata come stringa nella barra della formula DAX.

    Screenshot dell'elenco 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 'Country Currency Format Strings':

    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 casella di riepilogo Formato sezione >Formattazione 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. È possibile eseguire questa operazione con il file di esempio Adventure Works 2020 PBIX 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 barra multifunzione Home selezionare Immetti 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 Krone kr#,0
    Zona Euro Euro € #,00,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 Krone 2022 7.077
    Danimarca Krone 2021 6.29
    Danimarca Krone 2020 6.538
    Danimarca Krone 2019 6.67
    Danimarca Krone 2018 6.319
    Danimarca Krone 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 Year

Nella tabella Date esistente è necessaria una nuova colonna Year.

  1. In Visualizzazione modello fare clic con il pulsante destro del mouse sulla tabella Data e quindi scegliere Nuova colonna.

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

    Screenshot della formula Year nella barra delle formule DAX.

Creare relazioni

Le relazioni sono necessarie tra le tabelle Delle stringhe di formato medio annuale e le stringhe di formato valuta paese e tra la tabella Annually Average Exchange Rate e la tabella Date esistente.

  1. Se si dispone di Rilevamento automatico per le relazioni, è possibile che sia stata creata automaticamente la relazione tra stringhe di formato valuta paese e tassi di cambio medi annuali nella colonna Country. In caso contrario, creare questa relazione:

    • Tabella 1: Tassi di cambio medi annuali
    • Tabella 1 Colonna: Paese
    • Cardinalità: molti-a-uno
    • Tabella 2: Stringhe di formato valuta paese
    • Tabella 2 Colonna: Paese
    • Rendi attiva questa relazione:
    • Direzione filtro incrociato: Single

    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 Correzione automatica per le relazioni su , potrebbe essere stata creata una relazione tra stringhe di formato valuta paese e territorio di vendita nella colonna Paese. Questa relazione, tuttavia, non è corretta per il modello. Nella visualizzazione Modello eliminare questa relazione.

  3. Creare invece una relazione tra i tassi di cambio medi annuali e la data nella colonna Year .

    • Tabella 1: Tassi di cambio medi annuali
    • Tabella 1 Colonna: Anno
    • Cardinalità: molti-a-molti
    • Tabella 2: Data
    • Tabella 2 Colonna: Anno
    • Rendi attiva questa relazione:
    • Direzione filtro incrociato: Single ('Annually Average Exchange Rate' filtri 'Date')

    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 barra multifunzione Home selezionare Immetti dati.

  2. Nella finestra di dialogo Crea tabella lasciare vuoti i valori. Assegnare alla tabella il nome Sales measures (Vendite misure) e quindi fare clic su Load (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 Sales amount.

  2. In Misure vendite fare clic con il pulsante destro del mouse su Column1 e quindi scegliere Nascondi nella visualizzazione report. In questo modo le misure Sales 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 Column1 nel gruppo di misure Sales.

  3. È ora possibile creare una misura per calcolare il tasso di cambio. Fare clic con il pulsante destro del mouse su Sales measures (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 tasso di cambio nell'editor DAX.

  4. Ora si crea un'altra misura per convertire la misura Sales Amount in altre valute. Fare clic con il pulsante destro del mouse su Sales measures (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 Vendite dovrebbe ora essere simile al seguente: Screenshot della formula di misura Importo vendite convertito.

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 in un'altra posizione, selezionare anche Year nella tabella Date .

    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 Country 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 Ridisporre gli oggetti visivi.

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

    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 filtro dei dati: Disattivata
    • Valori, bordo: sinistra, #333333, 6 larghezza riga

    Tabella

    • Dimensioni e stile, spaziatura interna: 10 px, tutti i bordi
    • Dimensioni e stile, bordo visivo: grigio chiaro, angoli arrotondati 10 px
    • Griglia, Griglia orizzontale: bianco, 2 larghezza
    • Griglia, Griglia verticale: Bianco, 2 larghezza
    • 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: Attivato
    • Etichette dati: Attivato
    • Etichette dati, valori: grassetto, blu

    Canvas (facoltativo)

    • Sfondo tela: grigio chiaro, trasparenza 85%

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

    Screenshot dello sfondo dell'area di disegno grigia per l'oggetto visivo.

Creare una stringa di formato dinamico

Se si selezionano nomi di paese diversi nel filtro dei dati, viene visualizzata la misura Importo vendite convertite in 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 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 pronunciare Formato e la formula nella barra della formula deve 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 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 noti e considerazioni

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 Auto a Nessuno.

    Screenshot delle unità di visualizzazione da auto a nessuna.

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

  • Le stringhe di formato dinamico per le misure sono solo per le misure del modello. Le misure del 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 dinamiche definite non consentono di apportare modifiche alla stringa di formato a una stringa di formato statico o a un'espressione DAX di formato dinamico diversa.
    • Le misure del modello remoto non possono essere modificate da una stringa di formato statico a un'espressione DAX di formato dinamico definita nel modello locale.
    • Le misure del modello locale sono bloccate dall'uso di stringhe di formato dinamico per le misure.