Pagina 1 di 2

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 15:12
da vambro
Buongiorno,
grazie per l'opportunità di questo gruppo, dove poter avere un supporto su Power BI.
Premetto che non sono esperto, ma uso un modello per fare alcune analisi delle spese rispetto al budget in un certo periodo. Ho una formula dove calcolo la media di una colonna nel periodo di 9 mesi, in una tabella filtrata in base ad alcuni campi.

Questa è la tabella, dove "Monthly_Average" è la media della colonna spese per 9 mesi.

Codice: Seleziona tutto

Average = 
SUMMARIZE(
	'Financial Data',
	'Financial Data'[COUNTRY],
	'Financial Data'[COST_CATEGORY],
 	'Financial Data'[IMPLEMENTING_MISSION],
	"Monthly_Average", 
		SUMX(
			'Financial Data',
			if('Financial Data'[COST_CATEGORY]="ST",'Financial Data'[EXPENSES]/9,0.00)
		)
)
Il mio obiettivo sarebbe di avere i mesi dinamici, dove selezionando il mese nello slicer il risultato si aggiorna automaticamente.

Codice: Seleziona tutto

"Monthly_Average",
SUMX(
	'Financial Data',
	if('Financial Data'[COST_CATEGORY]="ST",'Financial Data'[EXPENSES]/VALORE SELEZIONATO NELLO SLICER,0.00)
)

Non sono sicuro che ciò si possa fare su Power BI. Allego qualche screenshot di com'è attualemente la visualizzazione.

Spero qualcuno mi possa dare qualche indicazone.



Immagine

Immagine

Immagine

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 15:34
da Enrico Galli
Ciao, e innanzi tutto grazie a te per esserti iscritto :)

Secondo me non ti serve una tabella calcolata, e penso che potresti sostituirla con il seguente calcolo:

Codice: Seleziona tutto

MonthlyAverage :=
DIVIDE (
    CALCULATE (
        SUM ( 'Financial Data'[EXPENSES] ),
        'Financial Data'[COST_CATEGORY] = "ST"
    ),
    COUNTROWS ( VALUES ( 'Months'[Months] ) )
)
Che ne dici? Fammi sapere :wave:

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 16:17
da vambro
Grazie mille per la tua risposta Enrico, molto apprezzata.

La funzione COUNTROWS però sembra che conti tutte le righe della tabella 'Months', quindi usa sempre il valore 11 nel calcolo. A me invece serve utilizzare solo il mese selezionato nello slicer, cioè 9, 7, 6, 5, 8 eccetera. In sostanza, il valore selezionato nello slider deve essere usato come denominatore in un calcolo in cui a numeratore c'è la somma delle spese.

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 16:20
da vambro
Ecco il mio file, versione semplificata giusto per trovare la soluzione.

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 16:22
da Enrico Galli
Sì, l'obiettivo mi era chiaro. COUNTROWS ( VALUES () ) dovrebbe contare solo i valori presenti nel filter context, ovvero quelli che tu hai selezionato nello slicer. Se così non è, vedo qualche problema nel modello, o forse hai usato il campo sbagliato nello slicer (dev'essere preso dalla tabella Months, non dalla fact)

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 16:31
da Enrico Galli
Grazie per l'allegato, ora è tutto chiaro: tu avevi inserito il mio calcolo come colonna calcolata, e non come misura: questo fa un'enorme differenza... inoltre, nel report c'era ancora un campo preso dalla tabella Average, che io ho eliminato del tutto come vedrai dal file che ti ri-allego

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 18:26
da vambro
Grazie ancora Enrico, adesso ho capito e posso applicarlo al mio modello completo.

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 18:45
da vambro
Però mi sembra di capire che non c'è modo di utilizzare il conteggio dei valori del filter context '(o la misura) come se fosse una colonna o una variabile per una formula. Ad esempio per sostituirlo al posto del 9 (che attualmente è una costante) nella seguente formula che crea una nuova colonna nella tabella 'Financial Data:

"Monthly_Average",SUMX('Financial Data',if('Financial Data'[COST_CATEGORY]="ST",'Financial Data'[EXPENSES]/9,0.00))

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 18:55
da Enrico Galli
Fare questo genere di calcolo (aggregazioni) in una tabella, sotto forma di colonna calcolata, è un errore. Le colonne calcolate lavorano sul row context, ovvero iterano riga per riga tutti i dati della tabella, e non sul filter context. È impossibile spiegare concetti così lunghi e complessi in un unico post: Andrea90 ha pubblicato diversi tutorial introduttivi sul row context che trovi nell'apposita sezione del forum: viewtopic.php?f=19&t=104

Ti consiglio di chiarirti bene questi pilastri fondamentali, altrimenti farai davvero fatica ad andare avanti :wave:

Uso valore slicer come variabile

Inviato: mar 8 dic 2020, 20:01
da vambro
Grazie mille Enrico, sia per le tue risposte che per l'introduzione ai tutorial di Andrea90 che trovo (per adesso ho visto solo il primo) molto semplici e chiari, veramente utilissimi!!
Sono molto contento di essermi iscritto a questo forum.