Power Query - ricerca valore
Moderatore: Utilizzo_prof_Excel
-
- Messaggi: 24 | Topic creati
- Iscritto il: mer 22 lug 2020, 21:25
- Luogo: Rimini
- Ringraziato: 2 volte
Power Query - ricerca valore
Buona sera al gruppo, chiedo consiglio per risolvere questo problema: ha una tabella movimenti con data registrazione, articolo e quantità.
Devo aggiungere alla tabella movimenti un campo proveniente da una seconda tabella dove a parità di codice articolo ho vari record con una data inizio, una data fine e un valore. Mi serve agganciare alla tabella movimenti il valore corrispondente alla data di registrazione che rientra in uno dei range data inizio e data fine.
Pensavo di fare tutto con power query in modo da restituire un report in power pivot.
Grazie per i suggerimenti.
Devo aggiungere alla tabella movimenti un campo proveniente da una seconda tabella dove a parità di codice articolo ho vari record con una data inizio, una data fine e un valore. Mi serve agganciare alla tabella movimenti il valore corrispondente alla data di registrazione che rientra in uno dei range data inizio e data fine.
Pensavo di fare tutto con power query in modo da restituire un report in power pivot.
Grazie per i suggerimenti.
- Allegati
-
- Esempio.xlsx
- Esempio
- (17.78 KiB) Scaricato 17 volte
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Power Query - ricerca valore
Ciao Alex63,
Una possibile logica da implementare:
1) Tabella delle registrazioni, fai un merge con l’altra tabella utilizzando il codice articolo come chiave.
2) Per ciascuna riga della tabella avrai ora un nuovo campo con all’interno un oggetto tabella che rappresenta tutte le righe di quell’articolo.
3) Filtri questa tabella (creando un’altra colonna calcolata se non vuoi complicarti troppo il codice ) per le righe di inizio registrazione inferiori a quella della riga registrazione, e data di fine periodo superiore.
4) Se hai impostato bene gli intervalli di inizio e di fine periodo (periodi che non si accavallano), avrai una sola riga per ciascuna cella della tabella registrazioni
5) Espandi il contenuto di questa colonna per ottenere il relativo costo articolo
Andrea
Una possibile logica da implementare:
1) Tabella delle registrazioni, fai un merge con l’altra tabella utilizzando il codice articolo come chiave.
2) Per ciascuna riga della tabella avrai ora un nuovo campo con all’interno un oggetto tabella che rappresenta tutte le righe di quell’articolo.
3) Filtri questa tabella (creando un’altra colonna calcolata se non vuoi complicarti troppo il codice ) per le righe di inizio registrazione inferiori a quella della riga registrazione, e data di fine periodo superiore.
4) Se hai impostato bene gli intervalli di inizio e di fine periodo (periodi che non si accavallano), avrai una sola riga per ciascuna cella della tabella registrazioni
5) Espandi il contenuto di questa colonna per ottenere il relativo costo articolo
Andrea
-
Autore del topic - Messaggi: 24 | Topic creati
- Iscritto il: mer 22 lug 2020, 21:25
- Luogo: Rimini
- Ringraziato: 2 volte
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Power Query - ricerca valore
Si questa logica la si applica interamente in PowerQuery, ma non è detto che sia l’unica … comunque è un dato che direi statico, nel senso che lo calcoli una volta sola all atto del caricamento del modello dati, non è una cosa che devi rendere dinamica sulla base delle selezioni fatte poi nel report, quindi non è una cosa che gestirei con una misura dax.
Al limite come colonna calcolata in dax (la logica rimarrebbe comunque simile a quella che ti ho indicato, cambia solo il linguaggio da utilizzare)
Andrea
Al limite come colonna calcolata in dax (la logica rimarrebbe comunque simile a quella che ti ho indicato, cambia solo il linguaggio da utilizzare)
Andrea
-
Autore del topic - Messaggi: 24 | Topic creati
- Iscritto il: mer 22 lug 2020, 21:25
- Luogo: Rimini
- Ringraziato: 2 volte
Power Query - ricerca valore
Si confermo è un dato statico legato al range di date nel quale si colloca.
Non mi è chiaro però come applicare il filtro sulla tabella nella nuova colonna.
Non mi è chiaro però come applicare il filtro sulla tabella nella nuova colonna.
-
Autore del topic - Messaggi: 24 | Topic creati
- Iscritto il: mer 22 lug 2020, 21:25
- Luogo: Rimini
- Ringraziato: 2 volte
Power Query - ricerca valore
Buongiorno ieri sera ho provato ad applicare il filtro sulla tabella come soluzione indicata da Andrea sena successo, sicuramente mi manca qualche passaggio che non ricordo.
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
-
Autore del topic - Messaggi: 24 | Topic creati
- Iscritto il: mer 22 lug 2020, 21:25
- Luogo: Rimini
- Ringraziato: 2 volte
Power Query - ricerca valore
Mi sono inceppato sul come applicare il filtro, ho fatto due prove a nso mi pare che qualcosa non torni oppure ho seguito un ragionamento estremamente tortuoso.
- Allegati
-
- Esempio.xlsx
- (225.5 KiB) Scaricato 20 volte
-
- Esempio.xlsx
- (216.88 KiB) Scaricato 22 volte
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Power Query - ricerca valore
Prova così:
Andrea
Codice: Seleziona tutto
let
Origine = Excel.CurrentWorkbook(){[Name="TabellaRegistrazioni"]}[Content],
#"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Data registrazione", type datetime}, {"Codice Articolo", type text}, {"Qta", Int64.Type}, {"Costo", type number}}),
#"Filtrate righe" = Table.SelectRows(#"Modificato tipo", each [Data registrazione] <> null and [Data registrazione] <> ""),
#"Modificato tipo1" = Table.TransformColumnTypes(#"Filtrate righe",{{"Data registrazione", type date}}),
#"Merge di query eseguito" = Table.NestedJoin(#"Modificato tipo1", {"Codice Articolo"}, TabellaDati, {"Codice"}, "TabellaDati", JoinKind.LeftOuter),
fx_Filter = (my_table as table, date_reg as date)=> Table.SelectRows(my_table, each [Data Inizio] <= date_reg and [Data Fine] >= date_reg),
Result = Table.AddColumn(#"Merge di query eseguito", "Test", each fx_Filter([TabellaDati], [Data registrazione]))
in
Result
-
Autore del topic - Messaggi: 24 | Topic creati
- Iscritto il: mer 22 lug 2020, 21:25
- Luogo: Rimini
- Ringraziato: 2 volte
Power Query - ricerca valore
Più articolata me la studio passo per passo e provo ad applicarla alle mie tabelle reali.
Grazie per l'assistenza
Grazie per l'assistenza