delta% MoM L’argomento è risolto

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

LuigiS
Messaggi: 36 | Topic creati
Iscritto il: mer 15 giu 2022, 10:11
Luogo: Napoli
Ringraziato: 1 volta

delta% MoM

Messaggio da LuigiS »

Salve a tutti. Volevo un vs aiuto circa la possibilità di calcolare, purtroppo senza un campo data, la differenza % tra un mese e qll precedente della %Anl. Ho creato una semplice "tabella", dove nei valori ho inserito Mese, Tot Lavorato e % dove qst ultime, mi vengono da misure che ho creato ad hoc.
La base dati a cui attingo, mi ripeto, ha solo il mese numerico e non una data.
Non so se c'è già un post in merito e qualora ci fosse, me ne scuso per nn essere riuscito a trovarlo.
Un grazie in anticipo.
LuigiS
Allegati
Quesito.JPG
Quesito.JPG (16.69 KiB) Visto 266 volte


Avatar utente

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

delta% MoM

Messaggio da Andrea90 »

LuigiS,

Un paio di appunti:

1) Perché hai creato il post dentro la sezione “Discussioni Varie”, quando esistono già sezioni ad hoc come quella di PowerBi o PowerQuery/PowerPivot?

2) Con le immagini non ci facciamo nulla, pertanto per i post futuri evita pure di inserirle, quello che a noi serve è un file demo dove, con poche righe di dati, replichi il problema che devi risolvere.

3) Hai familiarità con il concetto di contesto valutativo in Dax? perché se non conosci le basi del Dax non potrai essere autonomo in questo. Nel caso ti consiglio di studiare almeno questi concetti (contesto riga + contesto filtro) di partenza prima di lanciarti nella creazione di misure.

4) Ok che non hai un campo data, quindi hai solo un campo mese nel tuo modello? Senza nemmeno l’anno ?

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
LuigiS
Messaggi: 36 | Topic creati
Iscritto il: mer 15 giu 2022, 10:11
Luogo: Napoli
Ringraziato: 1 volta

delta% MoM

Messaggio da LuigiS »

Capisco di essere in difficoltà perchè, essendo un "minorenne anziano" forse alcune cose sono per me ancora ostiche... ma cerco di imparare.
Mi sono registrato oggi e nn ho avuto modo di girare per i post.
Quindi per i punti 1) e 2) ti chiedo scusa... non sapevo di poter postare direttamente i file *.pbix, cercherò di impostarne uno ad hoc. O posso darvi in altro formato?
Per il punto 3) ho nozioni base, tant'è che sono riuscito a creare un campo %Anl dal solo STATO della mia tabella che è presente nel file che uso.
Per il punto 4) no, sia l'anno che il mese sono in formato numerico. è una tabella che è frutto di altre elaborazioni alle quali io nn accedo.
Ti chiedo ulteriormente scusa e cercherò in futuro di adeguarmi alle regole. credo che qst prime figure di m.. mi bastino!
Un grazie e buona giornata.
Avatar utente

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

delta% MoM

Messaggio da Andrea90 »

LuigiS,

Formato .pbix o excel vanno entrambi bene senza problemi.

Per il modello mi pare di capire che tu possiedi almeno due campi, uno con il mese e l’altro con l’anno (entrambi numerici), corretto ?

Se è così, allora il mio consiglio è quello di crearti una terza colonna (lo fai dentro PowerQuery) che contenga per ciascuna riga, la data al primo giorno del mese e anno corrente.

Perché dico questo? Perché se tu disponi di un campo data, potrai crearti una tabella calendario che ti consentirà di semplificare di molto i calcoli che necessiti per le tue analisi temporali.

Il fatto che il dato che tu prelevi contenga solo anno e mese è irrilevante per questi strumenti, perché con PowerQuery, il quale è un ETL (estrae trasforma e carica i dati nel modello) ti consente di aggiungere nuovi campi, senza modificare la tua sorgente.

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
LuigiS
Messaggi: 36 | Topic creati
Iscritto il: mer 15 giu 2022, 10:11
Luogo: Napoli
Ringraziato: 1 volta

delta% MoM

Messaggio da LuigiS »

Perfetto... inizierò a ragionarci... e posterò quanto prima il file.
Grazie ancora

Autore del topic
LuigiS
Messaggi: 36 | Topic creati
Iscritto il: mer 15 giu 2022, 10:11
Luogo: Napoli
Ringraziato: 1 volta

delta% MoM

Messaggio da LuigiS »

Ciao Andrea...
Allora, in base alle tue indicazioni ho effettuato una serie di passaggi che sono stati, per quel che mi riguarda, a dir poco illuminanti e che mi hanno permesso di risolvere il problema.
Ovviamente sono sicuro che ci sarà una soluzione migliore, ma se per voi va bene cercherò di riepilogare quanto sono riuscito a fare, postandovi sia il file pbix che la base dati in excel.

1) ho creato una tabella Calendario con l'istruzione Calendar..
2) ho creato 2 colonne da power query... 1a che crea una data concatenando anno,mese e giorno fittizio ed una 2a che trasforma quest'ultima in un formato data.
3) ho collegato la tabella calendario con la data che mi sono creato con i passaggi precedenti.
... da qui in poi sono andato spedito e con qualche "misura", ragionandoci, sono arrivato a una soluzione(per quelle che sono le mie limitate conoscenze..).
Cmq l'errore maggiore era che inserivo i mesi della tabella dati e non quelli frutto della join con calendar...
Non lo so, ho spremuto le mie oramai vetuste meningi e volevo condividere con voi qst mio piccolo risultato.
Spero di non aver sbagliato ulteriormente con le policy del forum. Il risolto pare che lo inserite voi amministratori se nn ho letto male!
Grazie in anticipo per la pazienza e degli eventuali suggerimenti possiate darmi.
L.
Allegati
DB_Prova.xlsx
(11.63 KiB) Scaricato 8 volte
DB_prova.pbix
(53.39 KiB) Scaricato 10 volte
Avatar utente

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

delta% MoM

Messaggio da Andrea90 »

Ciao LuigiS,

Intanto complimenti per il tentativo fatto, essendo appena entrato in questo mondo immagino non sia tutto :clap: , ma l'importante è provare con mano, altrimenti difficilmente apprenderai le conoscenze che ti servono.

Per quanto riguarda il tuo file, darei i seguenti consigli:

1) Quanto crei la tabella calendario, non limitarti a creare solo la colonna con le date, ma aggiungi anche tutti gli altri campi dimensionali utili alla tua analisi (in rete trovi dei video, o porzioni di codice già pronti con molti campi già predisposti).

2) Ricordati inoltre di impostare la tabella calendario, come una tabella data, per poter cos' usufruire delle funzioni avanzate

3) Una volta che crei i campi della tabella calendario, sono questi quelli da inserire dentro ai tuoi report (se due tabelle sono tra loro relazionate da con una relazione 1 a molti, dovrai usare i campi della tabella del lato 1 (in questo caso la tabella calendario) per creare le tue visualizzazioni. Infatti i campi della tabella lato molti che servono per la relazione (come il campo Data della tabella DB_Prova) vengono di norma nascosti.

4) Una volta impostate le tabelle e le loro relazioni, crea le misure che ti servono, non fare come nelle pivot di excel che prendi e sposti semplicemente i campi che ti servono nell'area di visualizzazione (in questo modo crei misure "implicite" che sono da evitare).

Per farti un esempio il campo "Totale" usalo per creare una misura come questa:

Codice: Seleziona tutto

fx_Totale = SUM(DB_Prova[Totale] )
Poi crea le misure che ti servono come hai già fatto, e per il calcolo del mese precedente utilizza le time intelligence function, come ad esempio DATEADD():

Codice: Seleziona tutto

DeltaAnni = 
VAR CurAnl = [%Anl]
VAR PYAnl = CALCULATE( [%Anl], DATEADD( Calendario[Date], -1, MONTH ) )
VAR Result = IF( OR(ISBLANK(CurAnl), ISBLANK(PYAnl)), BLANK(), CurAnl - PYAnl)
RETURN Result
5) Comincia ad utilizzare quanto prima le "VAR", poiché ti permettono di mantenere il codice più pulito oltre che a tutta un'altra serie di vantaggi.

Lascio il file allegato.

Andrea
Allegati
DB_prova.pbix
(49.94 KiB) Scaricato 11 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

Autore del topic
LuigiS
Messaggi: 36 | Topic creati
Iscritto il: mer 15 giu 2022, 10:11
Luogo: Napoli
Ringraziato: 1 volta

delta% MoM

Messaggio da LuigiS »

oh... grazie Andrea... perfetto!
Era quello che sto cercando di imparare, magari anche grazie al vs aiuto... il lavorare pulito!
Allora:
1) interessante, anche se nn mi è molto chiara sta cos potresti per cortesia magari postarmi qlc video o link a riguardo per fare prima?
2)assolutamente ora è chiaro il vantaggio.
3)ok
4) anche per qst punto ti do ragione ed è correttissimo quanto affermi, ma l'ho fatto solo per fare prima nell'arrivare al risultato...
una curiosità...
il deltaanni che hai creato, come potrei non farlo visualizzare sul totale?

Sarà mia cura ora approfondire anche con qlc libro le time intelligence function..
Ancora grazie!
Avatar utente

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

delta% MoM

Messaggio da Andrea90 »

LuigiS,

Il loro sito è uno dei più completi in assoluto per quanto concerne il Dax (a mio avviso il migliore tra tutti quelli disponili).

https://www.sqlbi.com/articles/creating ... le-in-dax/

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