Errore in applicazione misura - cancellazione contesto filtro con costanti L’argomento è risolto

Il software per la BI di Microsoft, leader nel mercato
Rispondi

mpb_24
Messaggi: 13 | Topic creati
Iscritto il: mer 11 mag 2022, 8:55

Errore in applicazione misura - cancellazione contesto filtro con costanti

Messaggio da mpb_24 »

Buongiorno,

in power bi ho il seguente database:

- Tabella VENDITE: contenente le singole righe di vendita. E' presente il codice articolo, il fatturato, codice clienti e altri dati
- Tabella ARTICOLI: contenente l'anagrafica dei singoli articoli. E' collegata direttamente con la Tabella VENDITE mediante il codice articolo (relazione 1 a molti)
- Tabella BRANDS: contenente l'anagrafica dei singoli brand. E' collegata direttamente con la Tabella ARTICOLI mediante il codice brand presente anche nell'anagrafica articoli (relazione 1 a molti). Il codice brand non è presente nella tabella VENDITE, e non c'è un collegamento diretto tra la Tabella VENDITE e la Tabella BRANDS.

Nel mio report ho una tabella (tabella intesa come visualizzazione), in cui ho inserito gli articoli venduti ed alcuni dati calcolati con misure (es. fatturato, volumi, prezzo medio). Tutti i dati inseriti fanno riferimento a dati provenienti dalla Tabella VENDITE.

Nel momento in cui inserisco determinate misure però (purtroppo al momento non ho ben capito quando si presenta il problema o con che funzione DAX specifica), come ad esempio la variazione % del fatturato tra un anno e l'altro (i dati fatturato 2021 e 2022 nel database VENDITE sono su due colonne distinte) la tabella nel report presenta una riga vuota iniziale, contenente nessun dato tranne quello della misura appena inserita con valore 0.
Questo errore comporta che se io poi utilizzo il filtro per brand (tabella nel database non collegata direttamente al database principale come detto in precedenza), non vengono filtrati i valori, ma vengono rappresentati comunque tutti gli articoli, e per quelli non appartenenti al criterio selezionato vengono presentati i dati con il nome articolo e tutte le altre colonne con valori vuoti, ad eccezione della misura appena inserita che presenta sempre valore 0 (per i dati che corrispondono al criterio selezionato, i dati vengono presentati correttamente).

Ho provato a cercare in rete, ma essendo un problema specifico ho fatto fatica a trovare un argomento che trattasse questa problematica. Posso chiedere una mano?

Ringrazio.
Saluti.
Ultima modifica di mpb_24 il gio 4 ago 2022, 13:52, modificato 1 volta in totale.


Avatar utente

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

Errore in applicazione misura - tabelle non correlate direttamente

Messaggio da Andrea90 »

mpb_24,

Sei nuovo del forum e pertanto conviene rinfrescare un po’ le regole per riuscire ad ottenere delle risposte:

1) Inserire allegati che simulino il modello dati che stai utilizzando (non servono tutti i dati reali, bastano anche dati fittizi che aiutino ad impostare il modello e a far comprendere quale sia l’errore che ricevi)

2) Inserire le formule (usando i tag code) delle misure che stai utilizzando e che riscontrino dei problemi

3) Avere almeno una conoscenza base dello strumento e delle logiche di calcolo del Dax, altrimenti anche se ricevi aiuto da altri, non sarai mai in grado di utilizzare quegli aiuti in autonomia

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
mpb_24
Messaggi: 13 | Topic creati
Iscritto il: mer 11 mag 2022, 8:55

Errore in applicazione misura - tabelle non correlate direttamente

Messaggio da mpb_24 »

Buon pomeriggio,

ringrazio per le indicazioni e mi scuso per non averle seguite. Ho capito che il problema in realtà può sintetizzarsi nell'utilizzo di costanti all'interno di misure. Nel momento in cui vengono utilizzate misure contenenti costanti, il contesto filtro viene rimosso e vengono presentati tutti i dati del database.

Nell'esempio che allego (nel modello non è presente la tabella BRANDS perchè non rilevante), ho queste misure:

Codice: Seleziona tutto

fatt21 = SUM(VENDITE[Sales21])
fatt22 = SUM(VENDITE[Sales22])
var_fatt = DIVIDE([fatt22],[fatt21],0)-1
classe22 = SWITCH(TRUE(),[fatt22]>2000,1,[fatt22]>1500,2,[fatt22]>1000,3,4)
Se nelle tabelle inserisco le misure var_fatt e classe22, riscontro il problema della cancellazione contesto filtro.
Immagine

Ecco i database:
ARTICOLI

Codice: Seleziona tutto

ITEM = [no]&" "&[desc]
Immagine

VENDITE
Immagine

MODELLO DEI DATI
Immagine


La variazione fatturato è risolvibile utilizzando la formula DIVIDE([fatt22]-[fatt21],[fatt21],0), ma per classe22 non saprei come fare, perchè ho necessità di avere la classificazione con i numeri 1,2,3,4.

E' errato utilizzare le costanti nelle misure? Ci sono metodi alternativi per utilizzarle? O è un problema di default di Power BI?

Vi ringrazio molto.
Saluti.
Avatar utente

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

Errore in applicazione misura - cancellazione contesto filtro con costanti

Messaggio da Andrea90 »

mpb_24,

Puoi utilizzare la stessa formula racchiusa dentro la funzione IF la quale verifica che il valore del fatturato 1 o 2 sia presente, se non lo è lascia BLANK().

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
mpb_24
Messaggi: 13 | Topic creati
Iscritto il: mer 11 mag 2022, 8:55

Errore in applicazione misura - cancellazione contesto filtro con costanti

Messaggio da mpb_24 »

Funziona, grazie mille per il supporto.

Codice: Seleziona tutto

var_fatt = 
VAR x = OR(NOT ISBLANK([fatt21]),NOT ISBLANK([fatt22]))
RETURN

IF(x=TRUE(), DIVIDE([fatt22],[fatt21],0)-1,blank())
Rispondi