Excel Power Query EndOfWeek

1

Mam kolumnę dat Power Query. Muszę przekształcić wiersze tej kolumny do końca ich tygodnia. Jak to zrobić, gdy koniec tygodnia jest oparty na niedzieli?

Domyślna transformacja „Obliczony koniec tygodnia” opiera koniec tygodnia na sobocie.

Oto formuła wygenerowana przez edytor zapytań, którą muszę dostosować:

= Table.TransformColumns(#"Changed Type",{{"WorkDate", Date.EndOfWeek, type date}})

Oto kilka informacji MSDN na temat funkcji Date.EndOfWeek: MSDN Date.EndOfWeek

Oto kilka rzeczy, które próbowałem, z których każda powoduje błąd:

= Table.TransformColumns(#"Changed Type",{{"WorkDate", Date.EndOfWeek(, Day.Sunday), type date}})
= Table.TransformColumns(#"Changed Type",{{"WorkDate", Date.EndOfWeek("WorkDate", Day.Sunday), type date}})
= Table.TransformColumns(#"Changed Type",{{"WorkDate", Date.EndOfWeek(WorkDate, Day.Sunday), type date}})

Aktualizacja:

Znalazłem rozwiązanie, które jest swego rodzaju obejściem. Na podstawie wyników wyszukiwania w Google zastąpiłem funkcję Table.TransformColumns następującą funkcją Table.AddColumn w następujący sposób:

= Table.AddColumn(#"Changed Type", "WeekEnding", each Date.EndOfWeek([WorkDate], Day.Monday), type date)

Jednak nadal chciałbym wiedzieć, jak to osiągnąć, modyfikując istniejącą kolumnę, zamiast tworzyć nową kolumnę (a następnie usuwając starą).

Uświadomiłem sobie również, że muszę zmienić mój drugi parametr w funkcji EndOfWeek na poniedziałek zamiast niedzieli, parametr pyta o pierwszy dzień tygodnia.

Fred
źródło

Odpowiedzi:

0

Nie widzę, co jest tak trudnego w dodawaniu kolumny pochodnej, a następnie usuwaniu starego źródła? Jest to bardzo częsta operacja w PQL, a wpływ na wydajność, kod itp. Będzie banalny.

Zazwyczaj pozostawiam ten etap „czyszczenia” Wyboru kolumn do końca zapytania, w którym można usunąć wiele kolumn w jednym kroku. Czasami pośrednie kroki i tak niszczą te „wypracowane” kolumny.

Mike Honey
źródło
Nie ma w tym nic trudnego, to właśnie zrobiłem. Rozwiązanie pierwotnego pytania nadal byłoby pomocne ze względu na kompletność i odniesienie w przyszłości. Dlaczego każda funkcja Date.EndOfWeek (...) działa w AddColumn, a nie w TransformColumn? Jaka jest odpowiednia modyfikacja TransformColumns? Czy można / należy zastosować te powody / metody / strategie do następnej podobnej sytuacji? Itd. Jeśli dodanie nowej kolumny i usunięcie starej jest najwłaściwszym sposobem lub jedynym sposobem na zrobienie tego, dobrze byłoby o tym wiedzieć.
Fred