Pagina 1 di 1

Settimana dell'anno in PQ

Inviato: mer 27 gen 2021, 18:11
da AntonioP
Ciao,
di seguito l'istruzione M che calcola la settimana dell'anno:
= Table.AddColumn(#"Inserito mese", "Settimana dell'anno_CONS", each Date.WeekOfYear([DATA_CONSEGNA]), Int64.Type)

Mi è stato sollevato un problema: alcuni calendari considerano i giorni 1-2-3 gennaio come settimana 53 del 2020, mentre la funzione sopra la considera come settimana 1 del 2021.

Posso fare in modo la settimana 1 in PQ sia dal 4 al 10 gennaio, mentre 1-2-3 legarli alla settimana 53/2020?

Grazie

Settimana dell'anno in PQ

Inviato: mer 27 gen 2021, 18:30
da Andrea90
Ciao AntonioP,

Devi cercare online su come implementare la ISO WEEK 8601 in PowerQuery.

Ci sono tantissimi esempi di codice già pronti che potrai adattare alla tua query.

Esempio da inserire in una query vuota, il sito é datacornering.com:

//datacornering.com

Codice: Seleziona tutto

let
    Source = List.Dates(#date(2021,1,1), 365, #duration(1, 0, 0, 0)),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "Date"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Date", type date}}),
    #"Weekday Number" = Table.AddColumn(#"Changed Type", "Weekday Number", each Date.DayOfWeek([Date], Day.Monday)+1),

    #"ISO Week Number" = Table.AddColumn(#"Weekday Number", "ISO Week Number", each if
Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7)=0

then 
Number.RoundDown((Date.DayOfYear(#date(Date.Year([Date])-1,12,31))-(Date.DayOfWeek(#date(Date.Year([Date])-1,12,31), Day.Monday)+1)+10)/7)

else if
(Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7)=53
and (Date.DayOfWeek(#date(Date.Year([Date]),12,31), Day.Monday)+1<4))

then
1

else 
Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7))
in
    #"ISO Week Number"
A presto,

Andrea

Settimana dell'anno in PQ

Inviato: mer 27 gen 2021, 18:53
da Enrico Galli
Ciao AntonioP , se ti può interessare, la nuova versione del mio add-in , Excel Swiss Knife, include uno strumento per generare un calendario in Power Query, con un set di colonne personalizzabili tra cui la settimana ISO :)
Vedi qui: viewtopic.php?p=1482#p1482

Settimana dell'anno in PQ

Inviato: gio 28 gen 2021, 12:15
da AntonioP
@Andrea90 ignoravo l'esistenza del calendario ISO. Grazie
Enrico Galli è giunto il momento di provare Excel Swiss Knife.....

GRAZIE MILLE