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
Nel riquadro Data selezionare la misura per cui si desidera specificare una stringa di formato dinamico.
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.
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":
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.
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.
Nella scheda Home della barra multifunzione selezionare Inserisci dati.
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 Verificare che la tabella sia corretta e quindi fare clic su Carica.
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.
Nella vista Modello fare clic con il pulsante destro del mouse sulla tabella Data e quindi selezionare Nuova colonna.
Nella barra della formula DAX immettere l'espressione seguente:
Year = YEAR([Date])
e quindi premere INVIO.
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.
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: Sì
- Direzione filtro incrociato: Singolo
La relazione dovrebbe essere simile alla seguente:
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.
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: Sì
- Direzione filtro incrociato: Singolo ("Tasso di cambio medio annuale" filtra "Data")
La relazione dovrebbe essere simile alla seguente:
Salvare il modello.
Creare una tabella del gruppo di misure
Un gruppo di misure consente di organizzare misure diverse inserendole in una singola tabella.
Nella scheda Home della barra multifunzione selezionare Inserisci dati.
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
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:
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:
È 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:
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:
Creazione di un report
Passare alla visualizzazione Report. Aggiungere una nuova pagina vuota al report.
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.
Nel riquadro Dati >Misure vendite selezionare Importo vendite convertito. Senza fare clic altrove, selezionare anche Anno nella tabella Data.
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:
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.
Ridisporre gli oggetti visivi fino a quando non hanno un layout migliore, simile al seguente:
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:
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.
Nel riquadro Dati >Misure vendite selezionare Importo vendite convertito.
Nella barra multifunzione Strumenti di misura fare clic sull'elenco a discesa Formato e quindi selezionare Dinamico.
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:
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.
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.
È 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.