sto cercando di calcolare la differenza tra il valore degli acquisti di un anno con quello risultante dal prodotto delle quantità di quest'anno con il prezzo medio dell'ultimo anno di acquisto. Ho creato la misura che riporto sotto ("DAX.Valore prezzo Medio Ultimo Anno Acquisto"). Funziona a livello di singolo codice, ma non quando nella matrice il dato viene aggregato per categoria. Se vedete nel file di esempio, con dati semplificati, in allegato, il codice "melanzane" (fornitore Marco) dà come risultato 20, corretto, che sommato agli altri 50 dovrebbe darmi 70. Il risultato della categoria "Verdura" è però 80 (pari al valore attuale).
Grazie per un eventuale aiuto
Codice: Seleziona tutto
DAX.Valore Prezzo Medio Ultimo Anno Acquisto =
VAR vMaxDataPrec =
MIN ( dimCalendario[Data] ) - 1
VAR vTabAnnoArtPrec =
CALCULATETABLE (
SUMMARIZE (
fMovMag,
dimArticolo[Articolo Codice],
"Anno", YEAR ( MAX ( fMovMag[Data Ingresso] ) )
),
FILTER (
ALL ( dimCalendario ),
dimCalendario[Anno] <= CONVERT ( YEAR ( vMaxDataPrec ), STRING )
)
)
VAR vTabArtPrec =
SELECTCOLUMNS ( vTabAnnoArtPrec, "Articolo Codice", [Articolo Codice] )
VAR vTabAnnoArtCorr =
ADDCOLUMNS (
EXCEPT ( SUMMARIZE ( fMovMag, dimArticolo[Articolo Codice] ), vTabArtPrec ),
"Anno", YEAR ( vMaxDataPrec + 1 )
)
VAR vTabAnnoArt =
UNION ( vTabAnnoArtPrec, vTabAnnoArtCorr )
VAR vTabPrezziPrec =
ADDCOLUMNS (
vTabAnnoArt,
"@Prezzo Precedente",
CALCULATE (
[DAX.Prezzo Medio],
VALUE ( dimCalendario[Anno] ) = MAXX ( vTabAnnoArt, [Anno] )
),
"@Prezzo Periodo",
CALCULATE (
[DAX.Prezzo Medio],
VALUE ( dimCalendario[Anno] )
= YEAR ( vMaxDataPrec ) + 1
)
)
VAR vTabPrezziBase =
ADDCOLUMNS (
vtabPrezziPrec,
"@PrezzoBase", IF ( [@Prezzo Precedente] = BLANK (), [@Prezzo Periodo], [@Prezzo Precedente] )
)
VAR vResult =
SUMX (
vTabPrezziBase,
IF ( ISBLANK ( [@PrezzoBase] ), [DAX.Prezzo Medio], [@PrezzoBase] ) * [DAX.Qta]
)
RETURN
vResult