ABC fornitori / anno corrente L’argomento è risolto

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

Alexia
Messaggi: 33 | Topic creati
Iscritto il: mer 29 lug 2020, 9:59
Ringraziato: 2 volte

ABC fornitori / anno corrente

Messaggio da Alexia »

Ciao,

per creare una classifica ABC fornitori, utilizzo la seguente tabella di "appoggio".

Codice: Seleziona tutto

ABC = GROUPBY(Fact_Table,Fact_Table[ID_supplier],"Spend_CY",SUMX(CURRENTGROUP(),Fact_Table[Spend]))
Con questo codice dax, mi somma lo spend di tutti gli anni, io vorrei limitarlo solo all'anno corrente.

Suggerimenti?
(ditemi anche se l'approccio alla formula non è quello corretto)

grazie mille.


Avatar utente

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

ABC fornitori / anno corrente

Messaggio da Andrea90 »

Ciao Alexia,

L’analisi che vuoi fare immagino sia statica, nel senso che la categoria assegnata ad un fornitore non deve essere influenzata dal contesto filtro corrente, ma deve rimanere una sorta di dato anagrafico che si aggiorna solo al refresh dei dati.

Se questa è la premessa, bisogna poi vedere che logica vuoi applicare per categorizzare un fornitore.

Immagino che avrai una lookup table dei fornitori. Allora di solito io vado a creare una colonna di appoggio dentro questa tabella con il calcolo della misura che vorrai utilizzare per categorizzare (nel tuo caso lo spend).

Poi calcolo un cumulato per ciascun fornitore, utilizzando una logica di spend decrescente (è come se ordinassi i fornitori per spend dal più grande al più piccolo, e partissi poi dal più grande per calcolare il cumulato). Nel tuo caso dovrai calcolare lo spend per il solo anno che ti interessa prima di farne la cumulata.

a quel punto calcolo la cumulata %

poi sulla base del valore percentuale creo le categorie a cui assegnare ciascun fornitore.

A presto,
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
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

ABC fornitori / anno corrente

Messaggio da Enrico Galli »

Ciao, oltre alle considerazioni di Andrea90 , prova questa soluzione per adeguare la tua query:

Codice: Seleziona tutto

ABC =
GROUPBY (
    Fact_Table,
    Fact_Table[ID_supplier],
    "Spend_CY", CALCULATE ( SUM ( Fact_Table[Spend] ), Fact_Table[Year] = YEAR ( TODAY () ) )
)
Ma è solo un tentativo, che non posso verificare (inoltre, non so se esiste la colonna "Year" nella tua fact, altrimenti va modificata la condizione)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
Alexia
Messaggi: 33 | Topic creati
Iscritto il: mer 29 lug 2020, 9:59
Ringraziato: 2 volte

ABC fornitori / anno corrente

Messaggio da Alexia »

Ciao Andrea90
Andrea90 ha scritto: mar 11 mag 2021, 11:17 L’analisi che vuoi fare immagino sia statica, nel senso che la categoria assegnata ad un fornitore non deve essere influenzata dal contesto filtro corrente, ma deve rimanere una sorta di dato anagrafico che si aggiorna solo al refresh dei dati.
Si, esatto.
Andrea90 ha scritto: mar 11 mag 2021, 11:17 Se questa è la premessa, bisogna poi vedere che logica vuoi applicare per categorizzare un fornitore.
Spend cumulato <= 0.8, "A",
Spend cumulato <= 0.95, "B",
else "C"
Andrea90 ha scritto: mar 11 mag 2021, 11:17 Poi calcolo un cumulato per ciascun fornitore, utilizzando una logica di spend decrescente (è come se ordinassi i fornitori per spend dal più grande al più piccolo, e partissi poi dal più grande per calcolare il cumulato). Nel tuo caso dovrai calcolare lo spend per il solo anno che ti interessa prima di farne la cumulata.
Grazie! provo a lavorarci e vediamo se riesco ad arrivare alla soluzione desiderata!

Autore del topic
Alexia
Messaggi: 33 | Topic creati
Iscritto il: mer 29 lug 2020, 9:59
Ringraziato: 2 volte

ABC fornitori / anno corrente

Messaggio da Alexia »

Enrico Galli ha scritto: mar 11 mag 2021, 12:08 Ciao, oltre alle considerazioni di Andrea90 , prova questa soluzione per adeguare la tua query:

Codice: Seleziona tutto

ABC =
GROUPBY (
    Fact_Table,
    Fact_Table[ID_supplier],
    "Spend_CY", CALCULATE ( SUM ( Fact_Table[Spend] ), Fact_Table[Year] = YEAR ( TODAY () ) )
)
Ma è solo un tentativo, che non posso verificare (inoltre, non so se esiste la colonna "Year" nella tua fact, altrimenti va modificata la condizione)
Ciao Enrico Galli, grazie per il suggerimento!
Ho provato la tua query, aggiungendo nella tabella Fact l'anno, ma non funziona. Nella tabella fact ho il campo data collegato ad una tabella data per la gestione della time intelligence.
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

ABC fornitori / anno corrente

Messaggio da Enrico Galli »

"Non funziona" è un po' vago... ;) comunque ovviamente non devi creare il campo anno sulla fact, ma devi spostare la definizione del filtro sulla tabella calendario (e qui, se non fosse presente, creare la colonna anno eventualmente)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
Alexia
Messaggi: 33 | Topic creati
Iscritto il: mer 29 lug 2020, 9:59
Ringraziato: 2 volte

ABC fornitori / anno corrente

Messaggio da Alexia »

Enrico Galli ha scritto: mar 11 mag 2021, 14:56 "Non funziona" è un po' vago...
Hai ragione Enrico Galli: ecco l'errore "Le espressioni scalari della funzione 'GROUPBY' devono essere funzioni di aggregazione su CurrentGroup(). L'espressione di ogni aggregazione deve essere una costante o fare riferimento direttamente alle colonne in CurrentGroup()."
Enrico Galli ha scritto: mar 11 mag 2021, 14:56 comunque ovviamente non devi creare il campo anno sulla fact, ma devi spostare la definizione del filtro sulla tabella calendario (e qui, se non fosse presente, creare la colonna anno eventualmente)
Ouch! ho inteso male io, porta pazienza. Nella tabella calendario ho la colonna data, adesso provo a mettere mano sul filtro..
Grazie.
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

ABC fornitori / anno corrente

Messaggio da Enrico Galli »

Allora la misura la scriverei circa così:

Codice: Seleziona tutto

ABC =
ADDCOLUMNS (
    VALUES ( Fact_Table[ID_supplier] ),
    "Spend_CY",
        CALCULATE (
            SUM ( Fact_Table[Spend] ),
            Calendar[Year]
                = YEAR (
                    TODAY ()
                )
        )
)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
Alexia
Messaggi: 33 | Topic creati
Iscritto il: mer 29 lug 2020, 9:59
Ringraziato: 2 volte

ABC fornitori / anno corrente

Messaggio da Alexia »

Enrico Galli ha scritto: mar 11 mag 2021, 15:57 Allora la misura la scriverei circa così:

Codice: Seleziona tutto

ABC =
ADDCOLUMNS (
    VALUES ( Fact_Table[ID_supplier] ),
    "Spend_CY",
        CALCULATE (
            SUM ( Fact_Table[Spend] ),
            Calendar[Year]
                = YEAR (
                    TODAY ()
                )
        )
)
Grazie Enrico Galli
Rispondi