Pagina 1 di 2
Analisi Variazione Prezzi
Inviato: sab 27 ago 2022, 8:50
da Gennaro_64
Buon giorno,
Partendo da una base dati delle fatture pervenute
grazie ai suggerimenti di
Andrea90 ed
Enrico Galli nel topic
viewtopic.php?f=9&t=866&p=4517#p4517
sono riuscito ad ottenere una serie di informazioni di analisi, tra cui il Costo Medio unitario in corrispondenza di ogni DataFattura.
Adesso vorrei analizzare le variazioni del costo medio unitario rispetto alla rilevazione precedente come indicato nell'immagine che segue
Come posso fare?
Allego il file per ogni valutazione.
Grazie
Gennaro
Analisi Variazione Prezzi
Inviato: sab 27 ago 2022, 11:00
da Andrea90
Gennaro_64,
Nella tabella dei consumi ordina il campo data in senso crescente ed aggiungi una colonna indice.
Poi utilizza la seguente formula per trovare il valore "Diff_Vs_Prec", il resto è un semplice delta%:
Codice: Seleziona tutto
=
VAR CurIndex = MAX( Cons_Elettrici[Indice] )
VAR CurCosto = [CostoMedioAC]
VAR PreCosto = CALCULATE( [CostoMedioAC]; Cons_Elettrici[Indice] = CurIndex - 1; ALL('Calendar'[Date]))
VAR Result = IF( NOT(ISBLANK(PreCosto));CurCosto - PreCosto;BLANK())
RETURN Result
Andrea
Analisi Variazione Prezzi
Inviato: sab 27 ago 2022, 11:12
da Gennaro_64
Grazie
Andrea90,
Andrea90 ha scritto: ↑sab 27 ago 2022, 11:00
aggiungi una colonna indice.
Ottimo! E' un "percorso logico" che potrà essere utilizzato anche in altri contesti quando non sono disponibili funzioni DAX che si basano sulle variabili temporali.
Di nuovo Grazie.
Gennaro
Analisi Variazione Prezzi
Inviato: sab 27 ago 2022, 11:29
da Andrea90
Gennaro_64,
Le funzioni DAX che si basano su variabili temporali (penso tu ti riferisca alle TimeIntelligence Function) altro non sono che sintassi "semplificate" di formule più complesse, ovvero tu scrivi una semplice formula come DATEADD(), ma poi il sistema le traduce per te in sintassi DAX più complesse.
Pertanto, prima di utilizzare queste sintassi cercherei di capire bene come potermi costruire personalmente queste logiche, altrimenti se non ho a disposizione le TimeIntelligence funtion poi rimango a "piedi".
Le logiche da poter applicare al tuo caso erano diverse, un'altra ad esempio è la seguente (ti lascio solo la prima parte che identifica l'ultima data disponibile, il resto è un semplice utilizzo di quella data dentro ad un calculate per trovare lo stesso risultato desiderato):
Codice: Seleziona tutto
=
Var TempDate = MAX(Cons_Elettrici[Data_Ft])
Var TempTab = MAXX(FILTER( ALL( Cons_Elettrici); Cons_Elettrici[Data_Ft]<TempDate); Cons_Elettrici[Data_Ft])
Return TempTab
Andrea
Analisi Variazione Prezzi
Inviato: sab 27 ago 2022, 11:52
da Gennaro_64
Ciao
Andrea90 ,
Andrea90 ha scritto: ↑sab 27 ago 2022, 11:29
(penso tu ti riferisca alle TimeIntelligence Function)
Sì, esatto.
Andrea90 ha scritto: ↑sab 27 ago 2022, 11:29
altrimenti se non ho a disposizione le TimeIntelligence funtion poi rimango a "piedi"
Ed è quello che è successo a me, motivo di questo topic.
Grazie
Andrea90 per questa "preziosa" dritta.
La terrò in considerazione. Anzi, almeno per quelle "TimeIntelligence funtion" con le quali ho preso un po' di confidenza negli ultimi tempi, proverò a costruire la misura con la "sintassi DAX complessa".
PS: Ma le misure che pubblichi con quale strumento le redigi? Così belle a colori, con lo scorrimento a destra e sinistra ....
Gennaro
Analisi Variazione Prezzi
Inviato: sab 27 ago 2022, 12:00
da Andrea90
Ahi Ahi
Gennaro_64 ,
Questo significa che non hai letto la sezioni annunci dello staff, poiché il codice va sempre inserito nei tag code, come spiegato qui:
viewtopic.php?t=13
Andrea
Analisi Variazione Prezzi
Inviato: sab 27 ago 2022, 12:20
da Gennaro_64
Andrea90 ,
Andrea90 ha scritto: ↑sab 27 ago 2022, 12:00
Questo significa che non hai letto la sezioni annunci dello staff, poiché il codice va sempre inserito nei tag code, come spiegato qui:
Diciamo che all'epoca dei miei primi passi in questo Forum non è che avevo capito bene ....
come funzionava e cosa fosse un "tag code".
Adesso è il tempo giusto ....
Dopo qualche prova ecco il mio primo "tag code" di esempio scritto correttamente ....
Codice: Seleziona tutto
IF(ISBLANK([CostoMedioAP]);BLANK();[CostoMedioAC]-[CostoMedioAP])
A presto ....
Gennaro
Analisi Variazione Prezzi
Inviato: dom 28 ago 2022, 11:07
da Gennaro_64
Buon giorno
Andrea90
La misura della "Differenza vs Precedente" rilevazione funziona benissimo come puoi vedere dall'immagine che segue
Mi piacerebbe vedere anche il saldo progressivo (Running Total) di queste variazioni (Diff_Vs_Prec_RT).
Per farlo ho utilizzato la sintassi già utilizzata in altri contesti del tipo [SalesAmount]
Codice: Seleziona tutto
=VAR MaxData = MAX('Cons_Elettrici'[Data_Ft])
VAR VariazCostoRT = CALCULATE([Diff_Vs_Prec]; 'Calendar'[Date]<= MaxData; All('Cons_Elettrici'[Data_Ft]))
RETURN
VariazCostoRT
ma, evidentemente questo contesto non è proprio uguale e, come puoi vedere nell'immagine sopra, non funziona.
Mia aiuti a capire per favore.
Ciao e grazie
gennaro
Analisi Variazione Prezzi
Inviato: lun 29 ago 2022, 8:34
da Andrea90
Gennaro_64,
Codice: Seleziona tutto
=
VAR Idx =
MAX ( Cons_Elettrici[Indice] )
VAR TempTab =
ADDCOLUMNS (
SUMMARIZE ( ALL ( Cons_Elettrici ); Cons_Elettrici[Indice]; 'Calendar'[Date] );
"@CostoMedio"; [Diff_Vs_Prec]
)
VAR Result =
SUMX ( FILTER ( TempTab; Cons_Elettrici[Indice] <= Idx ); [@CostoMedio] )
RETURN
Result
Andrea
Analisi Variazione Prezzi
Inviato: lun 29 ago 2022, 9:10
da Gennaro_64
Grazie
Andrea90 ,
PS:
Sai
Andrea90 . Prima di formulare il nuovo topic, mi sono cimentato in alcuni tentativi, tutti infausti ovviamente. Ma ero giunto alla conclusione, vista la tipologia di risultato cui perveniva la mia misura, che forse sarebbe stata utile una "colonna aggiuntiva" che, una volta "isolati", svincolati dal loro procedimento di calcolo, e messi in fila i risultati della precedente variabile, [Diff_Vs_Prec], ne fornisse una somma progressiva.
Avevo tentato, ero arrivato (e mi sono fermato) ad "ADDCOLUMNS" di [Diff_Vs_Prec], avevo aggiunto la "SUM" della nuova colonna, ma non funzionava ed ho chiesto aiuto.
Ecco, credo sia un buon inizio ....
.
PS2: Non mi è ancora chiaro il perché del risultato errato della misura da me proposta,
Codice: Seleziona tutto
=VAR MaxData = MAX('Cons_Elettrici'[Data_Ft])
VAR VariazCostoRT = CALCULATE([Diff_Vs_Prec]; 'Calendar'[Date]<= MaxData; All('Cons_Elettrici'[Data_Ft]))
RETURN
VariazCostoRT
quale ragionamento ha seguito il sistema per fornire quei risultati "strampalati".
Ciao
Andrea90 e di nuovo grazie
gennaro