Calcoli tar righe della stessa colonna

Il software per la BI di Microsoft, leader nel mercato
Rispondi
Avatar utente

masnut
Messaggi: 1 | Topic creati
Iscritto il: ven 24 set 2021, 19:30

Calcoli tar righe della stessa colonna

Messaggio 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


Avatar utente

Andrea90
Messaggi: 2240 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 672 volte
Contatta:

Calcoli tar righe della stessa colonna

Messaggio 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
Allegati
Test_Running.xlsx
(17.67 KiB) Scaricato 18 volte
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Rispondi