Pagina 1 di 1

Calcoli tar righe della stessa colonna

Inviato: ven 24 set 2021, 19:40
da masnut
Salve a tutti, volevo una informazione, mi trovo una colonna in cui i dati sono dati dal valore di quella riga più il valroe del precedente, giusto per dare un esempio: colonna data 15/09/2021 colonna valore 10, riga successiva data 16/09/2021 valore 15 ovvero 10+5(valore del 16), riga ulteriore data 17/09/2021 valore 21 ovvero 15+6 e così via.
Vorrei calcolare una colonna chiamamola valore_giornaliero che mi dia il valore puntuale :
data valore _giornaliero
15/09/2021 10
16/09/2021 5
17/09/2021 6
Potete darmi delle indicazioni?
Grazie

Calcoli tar righe della stessa colonna

Inviato: ven 24 set 2021, 19:57
da Andrea90
Ciao masnut,

Puoi risolvere con il DAX utilizzando una tabella Calendar e sfruttando le time intelligence function, come ad esempio la funzione DATEADD()

Link --> https://dax.guide/dateadd/

Oppure in PowerQuery prevedendo il calcolo di una colonna che prelevi il valore della riga corrente sottraendolo poi a quello della riga precedente così da avere il valore giornaliero.

La prima soluzione è ovviamente più semplice, ma ti porta ad utilizzare una misura, e pertanto dovrai avere un report con il dettaglio del giorno, altrimenti non funzionerà.

La seconda invece è più complessa ma potrai poi avere una colonna da utilizzare liberamente, per intenderci ecco un esempio semplice:

Codice: Seleziona tutto

let
    Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
    #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Data", type date}, {"Valore", Int64.Type}}),
    #"Ordinate righe" = Table.Sort(#"Modificato tipo",{{"Data", Order.Ascending}}),
    Index1 = Table.AddIndexColumn(#"Ordinate righe", "Indice", 1, 1, Int64.Type),
    Index2 = Table.AddIndexColumn(Index1, "Indice2", 0, 1, Int64.Type),
    #"Merge di query eseguito" = Table.NestedJoin(Index2, {"Indice2"}, Index2, {"Indice"}, "Personalizzato1", JoinKind.LeftOuter),
    #"Tabella Personalizzato1 espansa" = Table.ExpandTableColumn(#"Merge di query eseguito", "Personalizzato1", {"Valore"}, {"Valore.1"}),
    #"Inserita sottrazione" = Table.AddColumn(#"Tabella Personalizzato1 espansa", "Valore Giorno", each if [Valore] - [Valore.1] = null then [Valore] else [Valore] - [Valore.1], Int64.Type),
    #"Rimosse colonne" = Table.RemoveColumns(#"Inserita sottrazione",{"Indice", "Indice2", "Valore.1"})
in
    #"Rimosse colonne"
Andrea