Pagina 1 di 1

Merge con criteri diversi

Inviato: lun 20 mar 2023, 15:11
da AntonioP
Ciao,
ho due tabelle da mettere in merge: 'Fatti' e 'Condizioni'. Devo riportare con un merge sulla tabella 'Fatti' il valore del campo 'Valore' della tabella 'Condizioni'.
Per alcuni prodotti la condizione di merge è vera se rispetta 2 criteri (Forn+Cat Sconto), per altri solo Forn in quanto lo sconto è valido per tutte le categorie prodotto.
Si può fare?
In allegato un semplice file di esempio con il risultato aspettato ed il merge che non funziona correttamente.

Grazie mille in anticipo

Merge con criteri diversi

Inviato: lun 20 mar 2023, 15:58
da Enrico Galli
Ciao, la mia soluzione sarebbe questa :

Codice: Seleziona tutto

let
    Origine = Excel.CurrentWorkbook(){[Name="Fatti"]}[Content],
    #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Cod. Art.", Int64.Type}, {"Categoria", type text}, {"Fornitore", type text}, {"Acquisto", Int64.Type}}),
    #"Aggiunta colonna personalizzata" = Table.AddColumn(#"Modificato tipo", "Join", (x) => Table.SelectColumns(Table.SelectRows(Condizioni, each [Forn] = x[Fornitore] and ([Cat Sconto] = x[Categoria] or [Cat Sconto] = "Tutto")), "Sconto")),
    #"Tabella Join espansa" = Table.ExpandTableColumn(#"Aggiunta colonna personalizzata", "Join", {"Sconto"}, {"Sconto"})
in
    #"Tabella Join espansa"
Praticamente, anziché utilizzare il merge classico, ho creato una colonna personalizzata in cui sono andato a inserire la colonna "Sconto" della tabella Condizioni, filtrata per uguaglianza del Fornitore e (uguaglianza della Categoria o Categoria = "Tutto"). Poi ho espanso la tabella :wave:

Merge con criteri diversi

Inviato: lun 20 mar 2023, 16:16
da AntonioP
Funziona meravigliosamente. Qui però siamo nel linguaggio M avanzato. Adesso il compito per me arduo è metterlo in produzione.
Grazie Enrico

Merge con criteri diversi

Inviato: mar 21 mar 2023, 10:19
da AntonioP
Ciao Enrico, la messa in produzione mi sta creando problemi che non so gestire. La nuova colonna Join restituisce il valore 'Fuction' anzichè 'Table'.
Secondo te da cosa può dipendere? Tieni conto che la mia tabella 'Fatti' ha come origine un database sql server. Può influenzare?
Grazie

Merge con criteri diversi

Inviato: mar 21 mar 2023, 10:22
da Andrea90
AntonioP,

L'origine non influenza il calcolo.

Avrai commesso qualche errore di sintassi nell'implementare il codice M scritto da Enrico.

Andrea

Merge con criteri diversi

Inviato: mer 22 mar 2023, 16:55
da AntonioP
Ciao @Andrea90, controllato e ricontrollato, ma non ne esco.
Ho rinominato le colonne con delle lettere per semplificare il codice M.
In allegato degli screenshot.
Spero riusciate ad aiutarmi.
Grazie

Merge con criteri diversi

Inviato: mer 22 mar 2023, 17:00
da AntonioP
Ciao Andrea90 ,
pardon ... c'era un each di troppo.
Ho risolto.

Grazie mille

Merge con criteri diversi

Inviato: gio 23 mar 2023, 7:39
da Andrea90
AntonioP,

Se hai risolto, segna la discussione come tale.

Andrea