Buonasera a tutti,
vorrei il vs. aiuto per questo problema che non riesco a risolvere.
Ho una tabella in allegato, dovrei inserire una colonna calcolata che per lo stesso VIN calcoli la differenza in gg rispetto alla data precedente.
Ho già inserito colonna esempio "diff gg con precedente".
Grazie
Differenza con riga precedente
-
- Messaggi: 17 | Topic creati
- Iscritto il: mer 28 lug 2021, 16:40
-
- Messaggi: 2268 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 673 volte
- Contatta:
Differenza con riga precedente
Ciao emme1010,
Una delle possibili logiche è quella di lavorare prima in PowerQuery per crearti una colonna indice che consideri il raggruppamento per VIN (la nuova colonna l'ho chiamata "Index"):
Fatto questo la colonna calcolata diventa:
Andrea
Una delle possibili logiche è quella di lavorare prima in PowerQuery per crearti una colonna indice che consideri il raggruppamento per VIN (la nuova colonna l'ho chiamata "Index"):
Codice: Seleziona tutto
let
Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
#"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"No.", type text}, {"VIN", type text}, {"Posting Date", type date}, {"diff gg con precedente", Int64.Type}}),
#"Ordinate righe" = Table.Sort(#"Modificato tipo",{{"VIN", Order.Ascending}, {"Posting Date", Order.Ascending}}),
#"Raggruppate righe" = Table.Group(#"Ordinate righe", {"VIN"}, {{"TempTable", each Table.AddIndexColumn(_, "Index", 1, 1), type table [#"No."=nullable text, VIN=nullable text, Posting Date=nullable date, diff gg con precedente=nullable number]}}),
#"Rimosse altre colonne" = Table.SelectColumns(#"Raggruppate righe",{"TempTable"}),
#"Tabella TempTable espansa" = Table.ExpandTableColumn(#"Rimosse altre colonne", "TempTable", {"No.", "VIN", "Posting Date", "diff gg con precedente", "Index"}, {"No.", "VIN", "Posting Date", "diff gg con precedente", "Index"}),
#"Modificato tipo1" = Table.TransformColumnTypes(#"Tabella TempTable espansa",{{"Index", Int64.Type}})
in
#"Modificato tipo1"
Codice: Seleziona tutto
=
VAR CurIdx = [Index]-1
VAR CurVIN = [VIN]
VAR TempTable = FILTER( ALL(Tabella1); Tabella1[VIN] = CurVIN && Tabella1[Index] = CurIdx)
VAR PrecDate = CALCULATE( MAX( [Posting Date] ); TempTable )
VAR Result= IF( NOT ISBLANK(PrecDate); [Posting Date] - PrecDate)
RETURN Result
-
Autore del topic - Messaggi: 17 | Topic creati
- Iscritto il: mer 28 lug 2021, 16:40
Differenza con riga precedente
Grazie,
avevo pensato una soluzione simile.
Ma mi mancava il "pezzo" in power query per l'indicizzazione.
Fantastico!
avevo pensato una soluzione simile.
Ma mi mancava il "pezzo" in power query per l'indicizzazione.
Fantastico!
-
Autore del topic - Messaggi: 17 | Topic creati
- Iscritto il: mer 28 lug 2021, 16:40
Differenza con riga precedente
Buonasera Andrea,
ho seguito le tue "istruzioni".
premesso che la tab ha circa 100000 righe.
non capisco perchè il sort è errato, questo il risultato per VIN di esempio ( query solo WDD117*)
ODL VIN Posting Date Indexdifferenza
COF184423 WDD1179081N468494 09/10/2018 1
COF184422 WDD1179081N468494 28/11/2018 2 50
COF2190656 WDD1179081N468494 08/04/2019 3 131
COF193044 WDD1179081N468494 16/07/2019 4 99
COF2193025 WDD1179081N468494 16/10/2019 5 92
COF2193026 WDD1179081N468494 23/10/2019 6 7
COF2202859 WDD1179081N468494 06/11/2020 7 380
COF2210069 WDD1179081N468494 21/01/2021 8 76
COF3210027 WDD1179081N468494 01/03/2021 9 39
ed è corretto
se invece eleboro tutta la tab, il risultato è errato:
ODL VIN Posting Date Indexdifferenza
COF184423 WDD1179081N468494 09/10/2018 1
COF184422 WDD1179081N468494 28/11/2018 2 50
COF193044 WDD1179081N468494 16/07/2019 3 230
COF2193025 WDD1179081N468494 16/10/2019 4 92
COF2193026 WDD1179081N468494 23/10/2019 5 7
COF2202859 WDD1179081N468494 06/11/2020 6 380
COF2210069 WDD1179081N468494 21/01/2021 7 76
COF3210027 WDD1179081N468494 01/03/2021 8 39
COF2190656 WDD1179081N468494 08/04/2019 9 -693
sembrerebbe che il sort per l'intera tab avesse qualche problema.
non so cosa pensare.
ho seguito le tue "istruzioni".
premesso che la tab ha circa 100000 righe.
non capisco perchè il sort è errato, questo il risultato per VIN di esempio ( query solo WDD117*)
ODL VIN Posting Date Indexdifferenza
COF184423 WDD1179081N468494 09/10/2018 1
COF184422 WDD1179081N468494 28/11/2018 2 50
COF2190656 WDD1179081N468494 08/04/2019 3 131
COF193044 WDD1179081N468494 16/07/2019 4 99
COF2193025 WDD1179081N468494 16/10/2019 5 92
COF2193026 WDD1179081N468494 23/10/2019 6 7
COF2202859 WDD1179081N468494 06/11/2020 7 380
COF2210069 WDD1179081N468494 21/01/2021 8 76
COF3210027 WDD1179081N468494 01/03/2021 9 39
ed è corretto
se invece eleboro tutta la tab, il risultato è errato:
ODL VIN Posting Date Indexdifferenza
COF184423 WDD1179081N468494 09/10/2018 1
COF184422 WDD1179081N468494 28/11/2018 2 50
COF193044 WDD1179081N468494 16/07/2019 3 230
COF2193025 WDD1179081N468494 16/10/2019 4 92
COF2193026 WDD1179081N468494 23/10/2019 5 7
COF2202859 WDD1179081N468494 06/11/2020 6 380
COF2210069 WDD1179081N468494 21/01/2021 7 76
COF3210027 WDD1179081N468494 01/03/2021 8 39
COF2190656 WDD1179081N468494 08/04/2019 9 -693
sembrerebbe che il sort per l'intera tab avesse qualche problema.
non so cosa pensare.
-
- Messaggi: 2268 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 673 volte
- Contatta:
Differenza con riga precedente
Ciao emme1010,
Senza vedere il file si fa fatica a dire cosa può essere capitato.
Un altra logica potrebbe anche essere quella di effettuare un rank con il DAX utilizzando il campo data (alla fine ottieni una sorta di effetto indice da associare ad una colonna calcolata).
A presto,
Andrea
Senza vedere il file si fa fatica a dire cosa può essere capitato.
Un altra logica potrebbe anche essere quella di effettuare un rank con il DAX utilizzando il campo data (alla fine ottieni una sorta di effetto indice da associare ad una colonna calcolata).
A presto,
Andrea