Pagina 1 di 1

FIDO valido

Inviato: mer 7 ott 2020, 12:52
da AntonioP
Ciao, scusate il titolo... totalmente inappropriato.

Vi allego un file.
Obiettivo: dato un elenco di fatture devo creare una nuova colonna che riporti il fido valido in quel determinato periodo.

Nel file d'esempio (molto semplice) vi ho riportato il risultato aspettato.

Non saprei cosa usare (PowerQuery, PowerPivot o formule classiche. Spero non sia necessario una VBA.

Help me, please!!

Grazie mille

FIDO valido

Inviato: mer 7 ott 2020, 13:24
da AntonioP
Chiedo scusa... il primo file d'esempio non riportava la colonna cliente. Non considerate il primo. Grazie

(Nota del moderatore: l'allegato sbagliato è stato eliminato)

FIDO valido

Inviato: mer 7 ott 2020, 23:25
da Enrico Galli
Ciao, con Power Query si potrebbe fare così: un merge tra le due tabelle, un filtro per escludere i cambi di fido di data successiva a quella della fattura, poi un raggruppamento per trovare il max delle date fido rimanenti e un ultimo filtro per eguagliare la data fido a questo max. Il tutto in allegato :wave:

Codice: Seleziona tutto

// Output
let
    Origine = Table.NestedJoin(fatture, {"Cliente"}, fidi, {"Cliente"}, "fidi", JoinKind.LeftOuter),
    #"Tabella fidi espansa" = Table.ExpandTableColumn(Origine, "fidi", {"Data", "Fido"}, {"fidi.Data", "fidi.Fido"}),
    #"Filtrate righe" = Table.SelectRows(#"Tabella fidi espansa", each ([fidi.Data] <= [data])),
    #"Raggruppate righe" = Table.Group(#"Filtrate righe", {"fattura"}, {{"ar", each _, type table [data=nullable date, fattura=nullable text, importo=nullable number, Cliente=nullable number, fidi.Data=nullable date, fidi.Fido=nullable number]}, {"datafidomax", each List.Max([fidi.Data]), type nullable date}}),
    #"Tabella ar espansa" = Table.ExpandTableColumn(#"Raggruppate righe", "ar", {"data", "importo", "Cliente", "fidi.Data", "fidi.Fido"}, {"data", "importo", "Cliente", "fidi.Data", "fidi.Fido"}),
    #"Filtrate righe1" = Table.SelectRows(#"Tabella ar espansa", each ([fidi.Data] = [datafidomax])),
    #"Rimosse colonne" = Table.RemoveColumns(#"Filtrate righe1",{"datafidomax"})
in
    #"Rimosse colonne"

FIDO valido

Inviato: gio 8 ott 2020, 9:30
da AntonioP
Enrico Galli ha scritto: mer 7 ott 2020, 23:25 Ciao, con Power Query si potrebbe fare così: un merge tra le due tabelle, un filtro per escludere i cambi di fido di data successiva a quella della fattura, poi un raggruppamento per trovare il max delle date fido rimanenti e un ultimo filtro per eguagliare la data fido a questo max. Il tutto in allegato :wave:
Carissimo Enrico Galli , nulla di nuovo sotto il profilo tecnico, ma assolutamente geniale nella combinazione delle varie funzioni di Power Query: semplice e funzionale.
Comincio ad essere in debito.... :clap: :clap: :clap:

Grazie mille

FIDO valido

Inviato: gio 8 ott 2020, 9:51
da Enrico Galli
Ti ringrazio AntonioP , ma non c'è proprio nulla di geniale... solo un po' di studio, un po' di esperienza e soprattutto tanta pratica :wave: