Utilizzo di un "parametro campo" in una misura L’argomento è risolto

Il software per la BI di Microsoft, leader nel mercato

r.quinzio@paperdi.it
Messaggi: 7 | Topic creati
Iscritto il: mar 12 set 2023, 11:44
Ringraziato: 1 volta
Contatta:

Utilizzo di un "parametro campo" in una misura

Messaggio da r.quinzio@paperdi.it »

Salve a tutti,

ho il seguente parametro campo, che utilizzo regolarmente nei grafici a barre.:

Codice: Seleziona tutto

ValoreOrPesoOrPedane = {
    ("Euro", NAMEOF('Caledario'[Venduto]), 0),
    ("Tonnellate", NAMEOF('Caledario'[Peso in tonnellate]), 1),
    ("Pedane", NAMEOF('Caledario'[Pedane]), 2)
}
Lo vorrei utilizzare nella seguente misura, al posto del campo "Stat_agenti_02_righe[DVR_IMPORTO]"

Codice: Seleziona tutto

Anno precedente = CALCULATE(SUM(Stat_agenti_02_righe[DVR_IMPORTO]),SAMEPERIODLASTYEAR(Caledario[Data]))
in modo da ottenere la SUM del Valore, o del Peso o delle Pedane a seconda dell'impostazione del parametro "ValoreOrPesoOrPedane".

Questa cosa è possibile? Ho fatto diverse prove ma senza successo.

Esempio di prova effettuata:

Codice: Seleziona tutto

Anno precedente = CALCULATE(SUM(ValoreOrPesoOrPedane[ValoreOrPesoOrPedane]),SAMEPERIODLASTYEAR(Caledario[Data]))
Errore ottenuto:
MdxScript(Model) (3,51) Errore di calcolo nella misura 'Calendario'[Anno precedente]: La funzione SUM non può essere usata con i valori di tipo string.

Grazie a chi mi risponderà.


Avatar utente

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

Utilizzo di un "parametro campo" in una misura

Messaggio da Andrea90 »

@r.quinzio@paperdi.it,

Puoi utilizzare la funzione SWITCH() che ti consente di eseguire una data espressione a seconda del valore ottenuto da un'altra espressione (come una sorta di costrutto SELECT .. CASE).

https://dax.guide/switch/

Andrea
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

Autore del topic
r.quinzio@paperdi.it
Messaggi: 7 | Topic creati
Iscritto il: mar 12 set 2023, 11:44
Ringraziato: 1 volta
Contatta:

Utilizzo di un "parametro campo" in una misura

Messaggio da r.quinzio@paperdi.it »

Ciao Andrea,

ho già provato ad utilizzare Switch ma nello script non mi fa utilizzare il campo parametro "ValoreOrPesoOrPedane".
Tale campo è esposto sulla pagina del report e contiene tre scelte: "EURO | TONNELLATE | PEDANE".
In base alla scelta dell'utente, vorrei che la misura "Anno precedente" sommasse rispettivamente l'importo, le tonnellate o il numero di pedane.

Non trovo il modo di referenziare il parametro nello script della misura.

Abbi pazienza se ho capito male la tua indicazione.

Grazie.
Avatar utente

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

Utilizzo di un "parametro campo" in una misura

Messaggio da Andrea90 »

@r.quinzio@paperdi.it,

Quello che definisci parametro campo crea all'interno del modello una tabella, puoi ottenere il valore selezionato dal tuo parametro filtro semplicemente facendo riferimento a quest'ultima tramite a formule come SELECTEDVALUE().

Andrea
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

Autore del topic
r.quinzio@paperdi.it
Messaggi: 7 | Topic creati
Iscritto il: mar 12 set 2023, 11:44
Ringraziato: 1 volta
Contatta:

Utilizzo di un "parametro campo" in una misura

Messaggio da r.quinzio@paperdi.it »

In base al tuo consiglio ho riscritto la misura "Anno precedente" in questo modo

Codice: Seleziona tutto

Anno precedente = CALCULATE(SWITCH(SELECTEDVALUE(ValoreOrPesoOrPedane[ValoreOrPesoOrPedane]),"Euro",[Venduto],"Tonnellate",[Peso in tonnellate],"Pedane",[Pedane]),SAMEPERIODLASTYEAR(Caledario[Data]))
ma l'oggetto visivo in cui la sto utilizzando mi restituisce questo errore:
...La colonna [ValoreOrPesoOrPedane] fa parte della chiave composta, ma non tutte le colonne della chiave composta sono incluse nell'espressione o nella relativa espressione dipendente.

Dove sbaglio?
Avatar utente

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

Utilizzo di un "parametro campo" in una misura

Messaggio da Andrea90 »

@r.quinzio@paperdi.it,

Per prima cosa il codice DAX è meglio se cominci a formattarlo. Guarda la misura scritta da te e questa (è la tua solo che è stata formattata):

Codice: Seleziona tutto

Anno precedente =
CALCULATE (
    SWITCH (
        SELECTEDVALUE ( ValoreOrPesoOrPedane[ValoreOrPesoOrPedane] ),
        "Euro", [Venduto],
        "Tonnellate", [Peso in tonnellate],
        "Pedane", [Pedane]
    ),
    SAMEPERIODLASTYEAR ( Caledario[Data] )
)
Penso sia molto più leggibile così.

Seconda cosa ti consiglio di cominciare ad utilizzare le variabili all'interno delle misure in DAX (utilizzando VAR).

Poiché oltre a rendere il codice ancora più leggibile sono un ottimo strumento di debug. Ad esempio quel SELECTEDVALUE() lo puoi portare esterno al CALCULATE come valore a parte da riutilizzare dentro alla tua misura.

Terzo, la tabella creata con il parametro campi non crea solo una colonna, ne crea altre... fai riferimento alle altre con selectedvalue.

Andrea
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

Autore del topic
r.quinzio@paperdi.it
Messaggi: 7 | Topic creati
Iscritto il: mar 12 set 2023, 11:44
Ringraziato: 1 volta
Contatta:

Utilizzo di un "parametro campo" in una misura

Messaggio da r.quinzio@paperdi.it »

Ti ringrazio per i consigli, come avrai capito sono alle prime armi e sono un autodidatta (cioè "devo imparare" poiché "devo fare").

Detto questo, non mi è chiaro come faccio a fare riferimento a tutte le colonne del parametro tramite SELECTEDVALUE. Ho letto la documentazione sia di SELECTEDVALUE che di SWITCH ma credo che questo tuo ultimo consiglio vada oltre le mie attuali capacità :cry:

Grazie lo stesso.
Avatar utente

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

Utilizzo di un "parametro campo" in una misura

Messaggio da Andrea90 »

Allega un file demo con quello che vorresti ottenere scritto a mano.

Intanto ti faccio un esempio utilizzando la base dati d'esempio di Pbi.

Ho chiesto di creare questa tabella con i parametri campo:

Codice: Seleziona tutto

Test = {
    ("Country", NAMEOF('financials'[Country]), 0),
    ("Month Name", NAMEOF('financials'[Month Name]), 1)
}
Questa è la tabella risultante nel modello:

Immagine

Poi ho creato due misure:

Codice: Seleziona tutto

TotCOGS = SUM( financials[COGS] )

Codice: Seleziona tutto

TotSales = SUM( financials[ Sales] )
Poi questa è la misura con SELECTEDVALUE che in base alla selezione fatta imposta il calcolo su una o l'altra misura:

Codice: Seleziona tutto

test = 
VAR prova =
    SELECTEDVALUE ( Test[Campi di Test] )
VAR result =
    SWITCH (
        prova,
        "'financials'[Country]", [TotSales],
        "'financials'[Month Name]", [TotCOGS]
    )
RETURN
    result
Andrea
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

Autore del topic
r.quinzio@paperdi.it
Messaggi: 7 | Topic creati
Iscritto il: mar 12 set 2023, 11:44
Ringraziato: 1 volta
Contatta:

Utilizzo di un "parametro campo" in una misura

Messaggio da r.quinzio@paperdi.it »

Non riesco ad allegare il report di esempio per eccesso di dimensioni (non riesco a ridurlo, pur caricando il minimo dei record all'interno).
Se non è un problema, ti incollo qui il link al mio OneDrive per scaricarlo: https://paperdi-my.sharepoint.com/:u:/g ... ?e=rypeKk

Quello che voglio ottenere è che anche la tabella "Anno corrente" reagisca al parametro
Immagine

Intanto mi studio il tuo esempio, grazie.
Ultima modifica di r.quinzio@paperdi.it il mar 12 set 2023, 14:32, modificato 1 volta in totale.
Avatar utente

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

Utilizzo di un "parametro campo" in una misura

Messaggio da Andrea90 »

@r.quinzio@paperdi.it,

Direi che con l'esempio che ti ho fatto dovresti aver le idee più chiare, nel caso scrivi pure.

Andrea
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
Rispondi