apro un nuovo topic anche se il report è lo stesso del mio post precedente, perché si tratta di nuovo argomento, penso sia più corretto così e più comodo anche per chi fa una ricerca.
Il report riguarda il calcolo del valore di magazzino. In allegato immagine del modello dati.
Mi sono reso conto che il listino (listino mensile, per ogni codice un nuovo listino ogni fine mese), non è strutturato come pensavo. Per alcuni codici il listino non è aggiornato di mese in mese ma si ferma ad una data nel passato (questo credo sia un problema di elaborazione dell'ERP, che genera il listino, e vedrò di sistemarlo con la software house) per cui, se l'ultimo listino è 30/04/2022 ci sono alcuni codici non presenti in questo listino e magari si fermano al 30/11/2021.
Attualmente per il calcolo del valore giacenza usavo questa misura (che funzionava):
Codice: Seleziona tutto
DAX.Valore Giacenza TEST =
VAR vDataMax =
MAXX ( ENDOFMONTH ( dimcalendario[Data] ), [Data] )
VAR vValore =
SUMX (
ADDCOLUMNS (
VALUES ( dimArticoli[Articolo Codice] ),
"_ValoreGiacenza",
'Misure DAX'[DAX.Giacenza Modificata]
* CALCULATE ( MAX ( fListino[Prezzo Listino] ), dimCalendario[Data] = vDataMax )
),
[_ValoreGiacenza]
)
RETURN
vValore
Codice: Seleziona tutto
DAX.Valore Giacenza TEST2 =
VAR vDataListino =
CALCULATE (
MAX ( fListino[Data Listino] ),
FILTER (
VALUES ( fListino ),
fListino[Data Listino] <= MAX ( dimCalendario[Data] )
)
)
VAR vTabDataListino =
ADDCOLUMNS (
VALUES ( dimArticoli[Articolo Codice] ),
"@DataListino", vDataListino
)
VAR vValore =
SUMX (
ADDCOLUMNS (
VALUES ( dimArticoli[Articolo Codice] ),
"_ValoreGiacenza",
'Misure DAX'[DAX.Giacenza Modificata]
* CALCULATE (
MAX ( fListino[Prezzo Listino] ),
dimCalendario[Data] = MAXX ( vTabDataListino, [@DataListino] )
)
),
[_ValoreGiacenza]
)
RETURN
vValore
Alessandro