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

Immagine

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

Immagine

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

Immagine

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