Risolto calcolare la maggiorazione di prezzo per i giorni festivi, i sabati e le domeniche

everestmilto

Utente junior
13 Novembre 2016
27
3
51
Lugano
Office 365
0
Buongiorno a tutti, non è da molto che mi cimento con le Pover Query, ma mi sto appassionando.
Nel file allegato, ho creato alcune connessioni per tabelle collegate.
Sono riuscito a fare in modo che, a seconda dei vari giorni trascorsi, le power mi calcolano il prezzo giornaliero.
Quello che richiedo il vostro aiuto è su come fare per calcolare il prezzo giornaliero più una maggiorazione per determinati nomi.
Esempio
Knigty
entrata il 16 luglio 2021
uscita il 20 luglio 2021
Totale 5 giorni
Prezzo al giorno 20
Prezzo totale 100
Tra la data di entrata e quella di uscita c'è un sabato e una domenica
Come si potrebbe fare per far calcolare 10 in più per il sabato e la domenica?
Lo stesso vale per le varie festività annuali

Spero di essere stato esaustivo e vi ringrazio anticipatamente
Ringo
 

Allegati

lukereds

Excel/VBA Expert
Staff
17 Luglio 2018
4.759
145
Milano
www.formazione-milano.net
2013, 2016, Ol
384
ciao,
ci vorrebbero i file di input per maggiore chiarezza
Intanto ci provo, in G2 del foglio Pensioni luglio e agosto scrivi, e trascini in basso
=D2-C2-GIORNI.LAVORATIVI.TOT(C2;D2;Festività_Svizzere[Svizzere])+1

Il risultato rappresenta la somma sab+ dom + altre festività
 
Ultima modifica:

everestmilto

Utente junior
13 Novembre 2016
27
3
51
Lugano
Office 365
0
Ciao lukereds, grazie mille per la risposta, questa formula la conoscevo e usata in diverse occasioniSmileFaceSmileFaceSmileFace
Malauguratamente chiedevo se ci fosse la possibilità, magari anche usando la formula da te gentilmente fornita, in una colonna condizionale in power query. credo che nella mia spiegazione iniziale, ho spiegato male....😱😱😱
 

lukereds

Excel/VBA Expert
Staff
17 Luglio 2018
4.759
145
Milano
www.formazione-milano.net
2013, 2016, Ol
384
ciao,
ecco una bozza di power query, allego anche il file per maggior chiarezza. Foglio RISULTATO
Sono gestiti solo i conteggi di sab e dom

Visual Basic:
let
    Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
    #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"M e R", type text}, {"nome", type text}, {"entrata", Int64.Type}, {"uscita", Int64.Type}, {"Pagato", type text}, {"Acconti", Int64.Type}}),
    #"Aggiunta colonna personalizzata" = Table.AddColumn(#"Modificato tipo", "Personalizzato", each {[entrata]..[uscita]}),
    #"Tabella Personalizzato espansa" = Table.ExpandListColumn(#"Aggiunta colonna personalizzata", "Personalizzato"),
    #"Modificato tipo1" = Table.TransformColumnTypes(#"Tabella Personalizzato espansa",{{"Personalizzato", type date}, {"entrata", type date}, {"uscita", type date}}),
    #"Aggiunta colonna personalizzata1" = Table.AddColumn(#"Modificato tipo1", "Personalizzato.1", each if (Date.DayOfWeek([Personalizzato],Day.Monday)+1=6 or Date.DayOfWeek([Personalizzato],Day.Monday)+1 = 7) then 1 else 0),
    #"Rinominate colonne" = Table.RenameColumns(#"Aggiunta colonna personalizzata1",{{"Personalizzato", "Range"}, {"Personalizzato.1", "NumGiorno"}}),
    #"Raggruppate righe" = Table.Group(#"Rinominate colonne", {"M e R"}, {{"TotGiorniWE", each List.Sum([NumGiorno]), type number}, {"Entrata", each List.Min([entrata]), type date}, {"Uscita", each List.Max([uscita]), type date}}),
    #"Merge di query eseguito" = Table.NestedJoin(#"Raggruppate righe",{"M e R"},Tabella1A,{"M e R"},"Tabella1A",JoinKind.LeftOuter),
    #"Tabella Tabella1A espansa" = Table.ExpandTableColumn(#"Merge di query eseguito", "Tabella1A", {"Pagato", "Acconti"}, {"Tabella1A.Pagato", "Tabella1A.Acconti"}),
    #"Rinominate colonne1" = Table.RenameColumns(#"Tabella Tabella1A espansa",{{"Tabella1A.Pagato", "Pagato"}, {"Tabella1A.Acconti", "Acconti"}})
in
    #"Rinominate colonne1"
 

Allegati

  • Like
Reactions: Rubik72

everestmilto

Utente junior
13 Novembre 2016
27
3
51
Lugano
Office 365
0
Ciao lukereds , grazie mille per la soluzione, la gestione dei fine settimana è perfetta, ma come posso fare per controllare anche i giorni festivi?
si trovano nel foglio "Festività Svizzere"
 

lukereds

Excel/VBA Expert
Staff
17 Luglio 2018
4.759
145
Milano
www.formazione-milano.net
2013, 2016, Ol
384
ho aggiuto le feste Svizzere (ho messo una festività XXXX in più per i test, da togliere)

Il codice può essere ottimizzato, ho solo inserito alcune righe rispetto al post precedente per la gestione delle festività

Visual Basic:
let
    Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
    #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"M e R", type text}, {"nome", type text}, {"entrata", Int64.Type}, {"uscita", Int64.Type}, {"Pagato", type text}, {"Acconti", Int64.Type}}),
    #"Aggiunta colonna personalizzata" = Table.AddColumn(#"Modificato tipo", "Personalizzato", each {[entrata]..[uscita]}),
    #"Tabella Personalizzato espansa" = Table.ExpandListColumn(#"Aggiunta colonna personalizzata", "Personalizzato"),
    #"Modificato tipo1" = Table.TransformColumnTypes(#"Tabella Personalizzato espansa",{{"Personalizzato", type date}, {"entrata", type date}, {"uscita", type date}}),
    #"Aggiunta colonna personalizzata1" = Table.AddColumn(#"Modificato tipo1", "Personalizzato.1", each if (Date.DayOfWeek([Personalizzato],Day.Monday)+1=6 or Date.DayOfWeek([Personalizzato],Day.Monday)+1 = 7) then 1 else 0),
    #"Rinominate colonne" = Table.RenameColumns(#"Aggiunta colonna personalizzata1",{{"Personalizzato", "Range"}, {"Personalizzato.1", "NumGiorno"}}),
    FesteSvizzere = Table.NestedJoin(#"Rinominate colonne",{"Range"},Festività_Svizzere,{"Svizzere"},"Festività_Svizzere",JoinKind.LeftOuter),
    #"Tabella Festività_Svizzere espansa" = Table.ExpandTableColumn(FesteSvizzere, "Festività_Svizzere", {"Festività"}, {"Festività"}),
    #"Sostituito valore" = Table.ReplaceValue(#"Tabella Festività_Svizzere espansa",null,"",Replacer.ReplaceValue,{"Festività"}),
    #"Aggiunta colonna personalizzata2" = Table.AddColumn(#"Sostituito valore", "Personalizzato", each if ([Festività]<>"") then 1 else 0),
    #"Rimosse colonne" = Table.RemoveColumns(#"Aggiunta colonna personalizzata2",{"Festività"}),
    #"Rinominate colonne2" = Table.RenameColumns(#"Rimosse colonne",{{"Personalizzato", "Feste"}}),
    #"Raggruppate righe" = Table.Group(#"Rinominate colonne2", {"M e R"}, {{"TotGiorniWE", each List.Sum([NumGiorno]), type number}, {"Entrata", each List.Min([entrata]), type date}, {"Uscita", each List.Max([uscita]), type date}, {"Feste", each List.Sum([Feste]), type text}}),
    #"Aggiunta colonna personalizzata3" = Table.AddColumn(#"Raggruppate righe", "TotFeste", each [TotGiorniWE]+[Feste]),
    #"Rimosse colonne1" = Table.RemoveColumns(#"Aggiunta colonna personalizzata3",{"Feste"}),
    #"Rinominate colonne3" = Table.RenameColumns(#"Rimosse colonne1",{{"TotGiorniWE", "TotGiorniWE1"}, {"TotFeste", "TotGiorniWE"}}),
    #"Riordinate colonne" = Table.ReorderColumns(#"Rinominate colonne3",{"M e R", "TotGiorniWE1", "TotGiorniWE", "Entrata", "Uscita"}),
    #"Rimosse colonne2" = Table.RemoveColumns(#"Riordinate colonne",{"TotGiorniWE1"}),
    #"Merge di query eseguito" = Table.NestedJoin(#"Rimosse colonne2",{"M e R"},Tabella1A,{"M e R"},"Tabella1A",JoinKind.LeftOuter),
    #"Tabella Tabella1A espansa" = Table.ExpandTableColumn(#"Merge di query eseguito", "Tabella1A", {"Pagato", "Acconti"}, {"Tabella1A.Pagato", "Tabella1A.Acconti"}),
    #"Rinominate colonne1" = Table.RenameColumns(#"Tabella Tabella1A espansa",{{"Tabella1A.Pagato", "Pagato"}, {"Tabella1A.Acconti", "Acconti"}})
in
    #"Rinominate colonne1"
 

Allegati

Ultima modifica:

everestmilto

Utente junior
13 Novembre 2016
27
3
51
Lugano
Office 365
0
Ciao lukereds, ti ringrazio moltissimo, ho fatto diverse prove, ma sono piuttosto indietro con power query ma, grazie a voi, sto cercando d'imparare più che posso hehehehehe.
Perfetto funzia alla grande, ora posso continuare a creare il mio programmino....
Ti auguro ogni bene e a presto, ciaooooooooooooo
 
  • Like
Reactions: lukereds

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!