Power Query - ricerca valore

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel

Rispondi

Alex63
Messaggi: 24 | Topic creati
Iscritto il: mer 22 lug 2020, 21:25
Luogo: Rimini
Ringraziato: 2 volte

Power Query - ricerca valore

Messaggio da Alex63 »

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.
Allegati
Esempio.xlsx
Esempio
(17.78 KiB) Scaricato 17 volte


Avatar utente

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

Power Query - ricerca valore

Messaggio da Andrea90 »

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
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

Autore del topic
Alex63
Messaggi: 24 | Topic creati
Iscritto il: mer 22 lug 2020, 21:25
Luogo: Rimini
Ringraziato: 2 volte

Power Query - ricerca valore

Messaggio da Alex63 »

Ciao Andrea tutto questo a livello di power query corretto?
Avatar utente

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

Power Query - ricerca valore

Messaggio da Andrea90 »

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
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

Autore del topic
Alex63
Messaggi: 24 | Topic creati
Iscritto il: mer 22 lug 2020, 21:25
Luogo: Rimini
Ringraziato: 2 volte

Power Query - ricerca valore

Messaggio da Alex63 »

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.

Autore del topic
Alex63
Messaggi: 24 | Topic creati
Iscritto il: mer 22 lug 2020, 21:25
Luogo: Rimini
Ringraziato: 2 volte

Power Query - ricerca valore

Messaggio da Alex63 »

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.
Avatar utente

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

Power Query - ricerca valore

Messaggio da Andrea90 »

Allega il file con i tentativi svolti.

Andrea
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

Autore del topic
Alex63
Messaggi: 24 | Topic creati
Iscritto il: mer 22 lug 2020, 21:25
Luogo: Rimini
Ringraziato: 2 volte

Power Query - ricerca valore

Messaggio da Alex63 »

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 19 volte
Esempio.xlsx
(216.88 KiB) Scaricato 20 volte
Avatar utente

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

Power Query - ricerca valore

Messaggio da Andrea90 »

Prova così:

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
Andrea
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

Autore del topic
Alex63
Messaggi: 24 | Topic creati
Iscritto il: mer 22 lug 2020, 21:25
Luogo: Rimini
Ringraziato: 2 volte

Power Query - ricerca valore

Messaggio da Alex63 »

Più articolata me la studio passo per passo e provo ad applicarla alle mie tabelle reali.
Grazie per l'assistenza :clap:
Rispondi