Ringrazio anticipatamente chi avrà voglia o modo di aiutarmi a comprendere i tasselli mancanti.
Nel mio lavoro, dovendo analizzare processi di natura logistica, mi trovo spesso a lavorare con degli ETA (intese come date attese di processo, lavorazione, evasione o consegna di un ordine), piuttosto che con analisi a livello di Lead Time in giorni lavorativi tra due date. Questi temi, facilmente smarcati su Excel con le apposite funzioni customizzabili, mi stanno creando notevoli grattacapi nel mio tentativo di spostarle su BI.
- Calcolo ETA: la mia necessità è quella, a partire da una data di partenza inserita in una colonna e da una colonna "promise" contenente un num. di giorni per la lavorazione, stimare una data stimata (per intenderci, funzione GIORNO.LAVORATIVO). La funzione Date.AddDays di Power Query purtroppo non esclude weekends e festività. Cercando una soluzione, ho trovato un video molto ben fatto di Lodovico D'Incau, che però non mi pareva rispondesse al mio specifico fabbisogno, e ho trovato un codice di una funzione customizzata online, che vi riporto sotto. Oltre a non riuscire ancora a non comprendere a fondo codice, mi crea alcuni problemi in stima date; ad esempio:
1) Se inserisco data Venerdì e 1 giorno da aggiungere, mi stima Martedì (invece avrei bisogno stimasse il Lunedì).
2) Non tiene conto delle Holidays nazionali (forse va aggiunta una riga DeleteHolidays=List.Select + List of Dates da una certa tabella e aggiungere il riferimento alla riga di codice successiva?
Utente Imke F community Power BI:
Codice: Seleziona tutto
let
func = (StartDate as date, WorkDays as number) =>
let
WorkDays2 = (WorkDays * 2) + 7,
startDate =
if Date.DayOfWeek(StartDate) = 5 then
Date.AddDays(StartDate, 2)
else if Date.DayOfWeek(StartDate) = 6 then
Date.AddDays(StartDate, 1)
else
StartDate,
ListOfDates = List.Dates(startDate, WorkDays2, #duration(1, 0, 0, 0)),
DeleteWeekends = List.Select(ListOfDates, each Date.DayOfWeek(_, 1) < 5),
WorkDate = List.Range(DeleteWeekends, WorkDays, 1),
Result = WorkDate{0}
in
Result
in
func
- Calcolo Lead Time: Non sono riuscito a trovare una soluzione con linguaggio M e Power Query, pertanto è una colonna che calcolo nello specifico con DAX su Power BI caricando un calendario con giorni lavorativi=1, weekends e Holidays = 0 e usando SUMX con FILTER in combinazione e sommando gli 1 tra le due date.
Se qualcuno sapesse aiutarmi a risolvere questo problema, o sapesse suggerirmi qualche soluzione già trovata in forum o qualche video che possa risolvere questo problema gliene sarei gratissimo. Ho cercato al meglio delle mie possibilità attuali di venire a capo di queste esigenze, ma ho finito le idee
Già che ci sono, vi chiederei un parere se secondo voi l'inserimento di una colonna ad hoc su Power Query e quindi un valore per ogni riga tabellare sia il modo più consigliato per determinare questi due valori.
Spero gradualmente di riuscire a rafforzare le mie competenze, migliorando e poter fornire poi anche io contributi di utilità in forum.
Grazie mille e chiedo scusa per il lungo messaggio.
Buon fine settimana,
Fabio