[Power BI] Asse Grafico Dinamico

Bloccato
Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

[Power BI] Asse Grafico Dinamico

Messaggio da Andrea90 »

Buonasera a tutti i partecipanti del forum :wave:,

Oggi volevo proporre una tecnica molto semplice che consente di realizzare grafici in grado di modificare la misura posta su di un asse, sulla base della selezione effettuata su di uno specifico pulsante filtro.

N.B. Consigliamo di non abusare troppo di questa tecnica all'interno di file complessi e pesanti poiché potrebbe portare a dei cali di performance dell'applicativo. All'interno di reportistiche semplici invece può risultare efficace al fine di analizzare misure diverse all'interno dello stesso grafico.

Il file demo verrà allegato in calce al presente tutorial. All'interno troverete un semplicissimo modello dati contenente una tabella con 1 dimensione e 4 misure. I dati sono puramente casuali e servono solamente per mostrare le logiche di funzionamento.

Step1_Creazione di una tabella parametrica

Una volta aperto il file, per prima cosa andremo a realizzare una tabella che conterrà le intestazioni da voler assegnare a ciascuna misura.
La logica è la seguente: creare un campo filtro che sulla base della selezione che andremo ad apportare mostrerà solamente la misura presa come riferimento.

Per prima cosa selezioniamo il comando "Dati" posto sul lato sinistro della schermata:

Immagine

A questo punto dovremo andare a ricercare il comando "Immettere i dati", questo ci permetterà di creare una nuova tabella con dati che potremo andare ad inserire manualmente (oppure incollati da altre fonti):

Immagine

In questa nuova tabella andremo ad inserire due colonne: Indice - Etichetta

La colonna [Indice] conterrà semplicemente un numero progressivo che ci servirà per la realizzazione della misura dinamica, [Etichetta] invece conterrà il nome da assegnare a ciascun pulsante filtro.

Per associare il nome ad una colonna non bisogna far altro che fare doppio clic sull'intestazione generica iniziale e digitare il nuovo nome.

Per inserire i valori al suo interno invece non dovremo far altro che premere invio dopo aver digitato il valore.

Il risultato desiderato dovrebbe essere simile al seguente:

Immagine

Ricordiamo di assegnare un nome a questa tabella utilizzando l'apposita casella posta in calce alla schermata. La nostra la chiameremo "Parametri_Filtro". Una volta terminato premiamo su "Carica".

Ora se diamo un'occhiata alla schermata del nostro modello dati vedremo due tabelle, non relazionate tra loro (come giusto che sia):

Immagine


Step2_Creazione pulsante filtro

Ora ritorniamo alla nostra schermata iniziale e selezioniamo il comando per inserire un pulsante filtro:

Immagine

Disponiamolo dove preferiamo e poi prendendo il campo [Etichetta] dalla tabella "Parametri_Filtro" andremo a trascinarlo sopra l'oggetto appena creato.

A questo punto eseguiamo qualche basilare operazione di formattazione (queste operazione verranno svolte utilizzando l'apposito menu a forma di pennello che compare una volta premuto con il mouse sull'oggetto):

. Eliminiamo l'intestazione
. Selezioniamo il sotto-menu "Comandi di selezione" e attiviamo la "Selezione Singola"
. Selezioniamo il sotto-menu "Generale" e selezioniamo dal menu a tendina "Orientamento" la voce "Orizzontale"
. Con il mouse trasciniamo i bordi dell'oggetto al fine di assegnare la corretta dimensione
. Selezionare nel menu "Dati" la seconda colonna (il campo [Etichetta]) e premere sul pulsante posto in alto "Ordina per colonna", infine selezionare il campo [Indice]

Al termine della procedura dovremmo aver ottenuto un risultato simile:

Immagine


Step3_Creazione misura dinamica

Ora andremo a creare una nuova misura, al cui interno inseriremo il seguente codice:

Codice: Seleziona tutto

MisuraDinamica =

SWITCH (
    MAX ( Parametri_Filtro[Indice] ),
    1, SUM ( Dati[Quantità] ),
    2, SUM ( Dati[Vendite] ),
    3, SUM ( Dati[Budget_Qtà] ),
    4, SUM ( Dati[Budget_Vendite] )
)
Questa misura utilizza la funzione SWITCH() la quale si comporta come il CASE dei linguaggi di programmazione e consente di associare valori diversi a seconda del valore ottenuto dall'espressione posta come primo argomento (consente dunque di realizzare degli IF annidati più semplici da leggere).

In questo caso l'espressione risulta essere: MAX ( Parametri_Filtro[Indice] ) la quale, essendo presente il filtro sul campo etichetta, riporterà il valore dell'indice corrispondente alla voce selezionata. Ad esempio se selezionassi il valore "Qtà Effettive" il valore riportato dalla funzione MAX() sarebbe pari a 1 e dunque la misura appena calcolata riporterebbe il valore SUM ( Dati[Quantità] ).


Step4_Creazione grafico

A questo punto non dobbiamo far altro che selezionare un nuovo oggetto, grafico a barre:

Immagine

Andremo ad inserire il campo [Prodotti] come "Asse" e la [MisuraDinamica] come "Valori".

Anche in questo caso andremo poi ad eseguire delle semplici operazioni di formattazione:

. Sia dal sotto-menu "Asse X" che da quello "Asse Y" andremo a disattivare l'opzione "Titolo"
. Attiviamo il sotto-menu "Etichette"
. Rendiamo il titolo del grafico dinamico andando a creare la seguente misura:

Codice: Seleziona tutto

Titolo = "Misura selezionata: " & Max(Parametri_Filtro[Etichetta])
A questo punto selezioniamo il sotto-menu "Titolo" e clicchiamo sul simbolo "fx":

Immagine

Ora impostiamo la schermata che apparirà nel seguente modo:

Immagine

Una volta premuto il tasto di conferma il grafico dovrebbe apparire nel modo seguente:

Immagine

Ora, a seconda della selezione effettuata nel filtro cambierà la misura mostrata all'interno del grafico, così come il titolo dello stesso.

Ecco dunque giunti al termine del tutorial :clap:

Rinnoviamo il nostro suggerimento a lasciare dei commenti nell'apposita sezione (Qui) nel caso in cui ci siano degli aspetti non chiari o suggerimenti in merito agli argomenti da trattare nei tutorial che seguiranno.

Come sempre se si è interessati a ricevere il file contenente la soluzione contattare tramite messaggio l'autore del tutorial.

A presto,

Andrea

Allegati
FileDemo.pbix
(49.23 KiB) Scaricato 114 volte


Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Bloccato