Tabella calcolata in DAX, errore su endofmonth
Inviato: ven 12 nov 2021, 16:58
Buongiorno a tutti,
partendo dai movimenti di magazzino del gestionale, genero una tabella calcolata che calcola le giacenze giorno per giorno e, collegando un listino, mi dà anche il prezzo unitario. Problema: il listino è datato, calcolato nel gestionale ogni fine mese. Per collegarlo con la giacenza faccio questo: se la data giacenza è fine mese, collego il corrispondente listino, altrimenti collego il listino del mese prima. Tradotto se data giacenza è il 31/01/2021 prendo listino 31/01/2021, se la data è il 15/01/2021 prendo il listino 31/12/2020. La formula che uso per trasformare la data giacenza nella data da collegare al listino è questa :
Se questa formula la uso per una colonna calcolata direttamente nella tabella "ElencoCodici" mi produce risultati assolutamente bizzarri, del tipo:
30/09/21 -> 30/09/21 ok
15/09/21 -> 31/08/21 ok
02/07/19 -> 21/06/19 ??
01/01/19 -> (vuoto) ??
Poi l'ho integrata nella tabella calcolata con le giacenze per avere direttamente il prezzo unitario e sembra funzionare, tranne per il fatto che in tale tabella, per la data di oggi, 12/11/21, il campo prezzo risulta vuoto. Di seguito il calcolo della tabella calcolata:
Sapete dirmi dove sbaglio?
Altra cosa: siccome è la prima tabella calcolata che creo, appena fatta ha lavorato 5 minuti per generare la tabella (e ci sta... 49 milioni di righe). Ora, che sto facendo modifiche in power query e poi ricaricando, non noto che la tabella calcolata impieghi tempo per generarsi... è veramente così rapida o mi sfugge qualcosa? Grazie dell'eventuale aiuto
partendo dai movimenti di magazzino del gestionale, genero una tabella calcolata che calcola le giacenze giorno per giorno e, collegando un listino, mi dà anche il prezzo unitario. Problema: il listino è datato, calcolato nel gestionale ogni fine mese. Per collegarlo con la giacenza faccio questo: se la data giacenza è fine mese, collego il corrispondente listino, altrimenti collego il listino del mese prima. Tradotto se data giacenza è il 31/01/2021 prendo listino 31/01/2021, se la data è il 15/01/2021 prendo il listino 31/12/2020. La formula che uso per trasformare la data giacenza nella data da collegare al listino è questa :
Codice: Seleziona tutto
if(ElencoCodici[Data]=ENDOFMONTH(ElencoCodici[Data]),ElencoCodici[Data],ENDOFMONTH(DATEADD(ElencoCodici[Data],-1,MONTH)
30/09/21 -> 30/09/21 ok
15/09/21 -> 31/08/21 ok
02/07/19 -> 21/06/19 ??
01/01/19 -> (vuoto) ??
Poi l'ho integrata nella tabella calcolata con le giacenze per avere direttamente il prezzo unitario e sembra funzionare, tranne per il fatto che in tale tabella, per la data di oggi, 12/11/21, il campo prezzo risulta vuoto. Di seguito il calcolo della tabella calcolata:
Codice: Seleziona tutto
Giacenza = ADDCOLUMNS(
ElencoCodici,
"Giacenza",
VAR vArticolo = ElencoCodici[Articolo Codice]
VAR vDeposito = ElencoCodici[Deposito Codice]
VAR vData = [Data]
var vAnno = Year([Data])
VAR vGiac = sumx(filter
(Movimenti,Movimenti[Articolo Codice]=vArticolo &&
Movimenti[Deposito Codice]= vDeposito &&
Year(Movimenti[Data Movimento])=vAnno &&
Movimenti[Data Movimento]<=vdata),
Movimenti[Qta])
RETURN
vGiac + 0,
"prezzo listino",
VAR vDtListino = if(ElencoCodici[Data]=ENDOFMONTH(ElencoCodici[Data]),ElencoCodici[Data],ENDOFMONTH(DATEADD(ElencoCodici[Data],-1,MONTH)))
VAR vArticolo = ElencoCodici[Articolo Codice]
VAR vPrezzo = selectcolumns(FILTER(Listino,Listino[cdart]=vArticolo &&
Listino[dtlis]=vDtListino
),"Prezzo",Listino[prezn])
return
vPrezzo
)
Altra cosa: siccome è la prima tabella calcolata che creo, appena fatta ha lavorato 5 minuti per generare la tabella (e ci sta... 49 milioni di righe). Ora, che sto facendo modifiche in power query e poi ricaricando, non noto che la tabella calcolata impieghi tempo per generarsi... è veramente così rapida o mi sfugge qualcosa? Grazie dell'eventuale aiuto