Получить дату из номера недели, дня недели и года PowerQuery M - PullRequest
0 голосов
/ 12 января 2019

Я хочу создать дополнительный столбец для моего набора данных. Это должно быть сделано с помощью M в PowerQuery. У меня есть номер недели, день недели и год.

Это можно сделать с помощью следующей формулы в Excel. Мне нужно что-то похожее, но потом в М.

Date = DATE([year],1,-2)-WEEKDAY(DATE([year],1,3))+[week]*7 + [day]-1

Например: неделя 2, день 3, год 2019 должен быть: 9-1-2019 (In # dd-mm-yyyy #)

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Это сделает это

= Table.AddColumn(Source, "Custom", each Date.From(Number.From(Date.AddDays(Date.FromText("1/1/"&Number.ToText([year])),-3))-Date.DayOfWeek(Date.FromText("1/3/"&Number.ToText([year])))-1+[week]*7+[day]-1) )
0 голосов
/ 13 января 2019

Если вы хотите создать свою собственную функцию, это может быть что-то вроде:

dateFromWeekDayYear = (WeekOfYear as number, DayOfWeek as number, Year as number) as date =>
    let
        endOfFirstWeekOfYear = Date.EndOfWeek(#date(Year, 1, 1), Day.Monday), // Consumes one week from "WeekOfYear"
        addRemainingWeeks = Date.AddWeeks(endOfFirstWeekOfYear, WeekOfYear - 2), // Subtract 2 because consumed one week above and because 0-based    
        addDays = Date.AddDays(addRemainingWeeks, DayOfWeek) // Don't need to make 0-based as previous step gives us end of prior week.
    in
        addDays,

Требуется три аргумента: неделя года, день недели и год (в основном вся имеющаяся у вас информация).

Если вы хотите добавить его в таблицу, вы можете попробовать что-то вроде:

Table.AddColumn(someTable, "newColumnName", each dateFromWeekDayYear([weekColumn], [dayColumn], [yearColumn]))

(При условии, что ваша таблица someTable содержит столбцы weekColumn, dayColumn, yearColumn).

...