得到weeknumber,星期和年PowerQuery中号日期(Get date from week

2019-10-30 02:39发布

我想创建一个额外的列到我的数据集。 这需要通过在PowerQuery基于M来完成。 我有weeknumber,dayoftheweek和年使用。

这可以通过使用Excel中的下列公式来完成。 我需要M.类似的东西,但随后

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

例如:第2周,第3天,2019年应该是:2019年9月1日(在#DD-MM-YYYY#)

提前致谢

Answer 1:

这将做到这一点

= 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) )


Answer 2:

如果你想创建自己的功能,它可能是这样的:

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载列weekColumndayColumnyearColumn )。



文章来源: Get date from weeknumber, dayofweek and year PowerQuery M