Pagina 1 di 1

Colonna calcolata

Inviato: mer 28 lug 2021, 17:02
da emme1010
Buonpomeriggio,
vorrei sottoporvi questo problema:
ho due tabelle relazionate
tabella Stock
Immagine

tabella Costi

Immagine

il mio obiettivo sarebbe riportare nella tabella stock nella colonna costo, il costo che ha la data più recente per entry

Esempio

Immagine

ogni suggerimento è ben accetto

Colonna calcolata

Inviato: mer 28 lug 2021, 17:38
da Andrea90
Ciao emme1010,

Come primo suggerimento direi di verificare di aver inserito correttamente le immagini, poiché io non riesco a vederle, ecco il link per il tutorial:

viewtopic.php?f=4&t=12

Secondo aspetto, con le immagini ci si fa pochissimo, meglio allegare un file con qualche riga demo di dati ed il risultato desiderato scritto a mano.
Altrimenti costringi gli utenti a dover replicare le tue immagini in un file di esempio per mostrarti i possibili calcoli da utilizzare.

A presto,
Andrea

Colonna calcolata

Inviato: mer 28 lug 2021, 17:57
da emme1010
ops, le immagini le vedo perfettamente!
in allegato stock.xlsx

Foglio Stock (anagrafica Item)
Foglio Entry (movimenti sugli item)

Foglio Risultato, è ciò che mi aspetto nella colonna Costo.

Grazie anticipatamente

Colonna calcolata

Inviato: mer 28 lug 2021, 18:16
da Andrea90
Ciao emme1010,

Se vuoi farlo come colonna calcolata in DAX allora devi costruirti una misura che contenga:

1) Var MinDate che altro non è che il MAX del posting date, il tutto racchiuso dentro ad un calculate così da beneficiare del context transition
2) Una seconda variabile chiamata Result che contenga il calcolo di un SUMX della RELATEDTABLE(Entry) che calcoli la somma del campo Cost per Unit, questo perché stai creando una colonna calcolata dentro alla tabella stock. Anche questa racchiusa dentro ad un calculate dove il valore del PostingDate è uguale a quello della variabile al punto 1.
3) chiudi la misura con RETURN Result

A presto,
Andrea

Colonna calcolata

Inviato: mer 28 lug 2021, 22:24
da emme1010
grazie innanzitutto.

questo il costrutto:

Codice: Seleziona tutto

costo_ultimo =
VAR datamax =
    MAXX ( RELATEDTABLE ( Entry ), Entry[Posting Date] )
VAR result =
    CALCULATE (
        SUMX ( RELATEDTABLE ( Entry ), Entry[Cost per Unit] ),
        Entry[Posting Date] = datamax
    )
RETURN
    result

non ho ben capito l'utilizzo del Calculate nella var datamax. sembra funzionare lo stesso
:D

Colonna calcolata

Inviato: mer 28 lug 2021, 22:34
da Andrea90
Ciao emme1010,

Il codice va inserito nei tagcode, per questa volta l'ho fatto io al tuo posto.

Tornando alla tua richiesta, il motivo per il quale ti funziona comunque è perché hai utilizzato RELATEDTABLE anche dentro MAXX, se lo togli vedrai che ricevi un valore BLANK.

Se al posto di:

Codice: Seleziona tutto

MAXX ( RELATEDTABLE ( Entry ), Entry[Posting Date] )
scrivi:

Codice: Seleziona tutto

CALCULATE(MAXX (  Entry ; Entry[Posting Date] ))
Otterrai lo stesso risultato, il motivo risiede che CALCULATE, quando utilizzato dentro ad un contesto riga (come quello delle colonne calcolate), attiva il context transition, e pertanto il contesto riga (ovvero il singolo stock) diventa un contesto filtro in grado di filtrare la tua tabella entry per solo quelle righe relative al codice di stock che stai analizzando.

A presto,
Andrea

Colonna calcolata

Inviato: mer 28 lug 2021, 22:44
da emme1010
ancora grazie, per il prezioso aiuto.