funzione adddate piu 1 days e giorni festivi

Anonimo
2024-12-10T14:45:29+00:00

Byuongiorno

con riferimento al post del 12 agosto

https://answers.microsoft.com/it-it/msoffice/forum/all/funzione-adddate-piu-1-giorno-powerquery/05c0aa0b-02b3-4858-bdc4-950a13e3259a?page=2 chiedo se è possibile tramite pwerquey inserire una funzione che sia add date +1 , ma giorno lavorativo?

o bisognerebbe vedere altre soluzioni?

grazie mille

G

Microsoft 365 e Office | Excel | Per il lavoro | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2024-12-11T11:17:25+00:00

Premesso che devo ancora "digerire" la cosa del List.Generate :-)

Ho effettuato l'adattamento per come normalmente viene inteso "primo giorno lavorativo successivo" nel caso di un termine.

La formula originaria di Rick de Groot aggiunge sempre un giorno alla data passata come primo argomento della funzione e poi verifica se la data è un "festivo" (inteso come sabato, domenica o una delle date di un elenco festività).

Questo richiederebbe, nel caso, di prendere sempre una data "precedente" al termine che sia in scadenza ad una determinata data.

Quindi la prima modifica è stata quella di non incrementare di 1 giorno la data passata come argomento della funzione.

Ho fatto anche in modo che si possa indicare se il sabato sia effettivamente un "festivo". Non i tutte le casistiche il sabato è considerato non lavorativo.

Ho anche fatto in modo che l'argomento a cui passare le date delle festività risulti essere solo di tipo "list" e non una tabella e la relativa colonna.

Credo che in questo modo vi sia più "flessibilità" (si può richiamare una tabella e relativa colonna o direttamente una eventuale lista.

Questa è la funzione adattata. La query che la contiene potrebbe essere nominata come "Primo_Giorno_Lavorativo_Successivo"

(Data as date, bSabatoFestivo as logical, optional ListaFestività as list) => 

    Date.AddDays(Data, 0 

    + List.Count( 

        List.Generate( 

            () => [x = Date.AddDays(Data, 0),  

                   y = ListaFestività] ,  

             each Date.DayOfWeek([x], Day.Monday) >= (if bSabatoFestivo = true then 5 else 6)  or List.Contains([y], [x]) ,  

             each [x = Date.AddDays([x], 1), y = [y] ] 

        ) 

      ) 

)

Per Giovanni

Nel tuo lavoro in pratica tu parti da una data a cui aggiungi un giorno. A quella data dovresti applicare la formula. Ad es., per rimanere al topic dove aggiungevi un giorno alla "DATA PAYIN", potrebbe essere utilizzata così:

=Table.TransformColumns(#"Rinominate colonne", {{"DATA PAYIN", each Primo_Giorno_Lavorativo_Successivo(Date.AddDays(_,1), true, {}), type date}})

Ho inserito "true" per l'argomento bSabatoFestivo.

Ho utilizzato una lista vuota "{}" per le festività e quindi non vi saranno spostamenti di data se non per i sabati e domeniche.

Nel caso dovresti creare una tabella, eventualmente tra trasformare il lista, con eventuali date di festività per l'anno o gli anni a cui fanno riferimento le date (tenendo presente che se ci sono date di fine anno potresti dover inserire le festività di inizio anno. Metti che capiti il 31/12 che sia una domenica devi indicare come festività 1/1 dell'anno successivo altrimenti la formula, passa al lunedì che però è 1/1 che è festivo).

Spero ti possa essere utile.

ciao

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Eleuterio Tedeschi 18,750 Punti di reputazione Moderatore volontario
2024-12-10T16:03:10+00:00

questa è una funzione che andrebbe inserita in power M o in VBA

Hai chiesto per Power Query, quella è una udf da inserire nell'editor (ALT+F12) di quell'ambiente.

Purtroppo esula da mie capacità . se si tratta di una funzione da inserire in M in che punto dovrei inserirla?

E questo è un problema, se hai bisogno di farlo in Power Query io ti consiglio di fare un piccolo corso, anche online, per studiarne le basi, altrimenti non saprei trovare le parole per spiegartelo.

Devi creare una nuova funzione ed adattare, perché soluzioni preconfezionate te le garantiscono solo i professionisti, quella che ti ho indicato.

Nella sostanza devi generare una lista di giorni, che confrontati con il giorno della settimana, per escludere sabati e domeniche, oltre ad una tabella contenenti i festivi, ti renda i soli giorni utili e recuperare, nel tuo caso, il primo dell'elenco.

Spero di esserti stato di aiuto,

ciao.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

16 risposte aggiuntive

Ordina per: Più utili
  1. Eleuterio Tedeschi 18,750 Punti di reputazione Moderatore volontario
    2024-12-11T09:12:42+00:00

    Sì, insomma un "ciclo" fino a che il primo giorno non è sabato/domenica o un giorno nella lista festività.

    Forse questa soluzione è più attinente e facilmente replicabile,

    ciao.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Eleuterio Tedeschi 18,750 Punti di reputazione Moderatore volontario
    2024-12-10T15:16:29+00:00

    Ciao Snow Lu MSFT,

    l'OP chiede la funzione per Power Query che, per quanto mi risulta, non la possiede.

    L'argomento è stato trattato, e risolto, anche qui, per cui si può fare riferimento al link per risolvere la discussione,

    ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni