从 MM/DD 格式创建日期并包含当前年份?电源查询
Create Date from MM/DD format and include current year? Power Query
我有一个 table,它有一系列包含我需要拆分的数据的列。下面的例子
状态@10/16 12:00:00(代码)
我已经能够很容易地拆分它,当我最初尝试在一个旧数据集上设置日期时,它把它识别为一个日期,例如2021 年 10 月 16 日但是,我开始在此日期列上出现错误,并尝试使用不同的数据集(10/12、10/13、10/14),但找不到日期。我尝试了以下查询代码,但收到错误消息
[状态日期] 拆分为 10/14、10/15 等
#date( Date.Year(DateTime.LocalNow), Date.Month(Text.End([STATUS DATE]), 2), Date.Day(Text.Start([STATUS DATE]),2))
但是我遇到了函数错误所以我尝试了
Date.From(Date.Day(Text.Start([STATUS DATE]),2) & Date.Month(Text.End([STATUS DATE]),2) & Date.Year(DateTime.LocalNow)
我也尝试过从示例列执行此操作,但是创建的查询正在查看单元格值,例如如果 10/14 则 14/10/2021 否则如果 13/10 则 14/10/2021。一旦包含更大的数据集,我觉得这种方法很容易出错。
我是否可以根据 mm/dd 格式确定日期值?但是考虑到年底,除非我们进入 1 月,否则让 YYYY 由当年确定,然后我不希望 10 月、11 月、12 月的值显示为 2022 年。
将 [STATUS DATE] 再次拆分为 [Month] 和 [Day] 列,使用“/”作为分隔符。那么你就不必为 1 或 2 位数字而烦恼,你可以简单地使用这个公式:
#date(Date.Year(DateTime.LocalNow()), [Month], [Day])
DateTime.LocalNow()是一个函数,所以需要加上括号。
[Month] 和 [Day] 已经是数字,因此您不需要 Date.Month() 或 Date.Day() 函数。
你并没有真正展示你的原始数据是什么样子的。
但如果它是这样的:
来源
然后您可以在“添加自定义列”对话框中使用此代码:
let
split=Text.SplitAny([STATUS DATE],"@/ "),
mnth = Number.From(split{1}),
dy = Number.From(split{2})
in
#date(Date.Year(DateTime.LocalNow()),mnth,dy)
Text.SplitAny
函数可让您输入分隔符列表,文本将拆分为 所有 个分隔符。所以提取月份和日期值比较简单
创建:
我有一个 table,它有一系列包含我需要拆分的数据的列。下面的例子
状态@10/16 12:00:00(代码)
我已经能够很容易地拆分它,当我最初尝试在一个旧数据集上设置日期时,它把它识别为一个日期,例如2021 年 10 月 16 日但是,我开始在此日期列上出现错误,并尝试使用不同的数据集(10/12、10/13、10/14),但找不到日期。我尝试了以下查询代码,但收到错误消息
[状态日期] 拆分为 10/14、10/15 等
#date( Date.Year(DateTime.LocalNow), Date.Month(Text.End([STATUS DATE]), 2), Date.Day(Text.Start([STATUS DATE]),2))
但是我遇到了函数错误所以我尝试了
Date.From(Date.Day(Text.Start([STATUS DATE]),2) & Date.Month(Text.End([STATUS DATE]),2) & Date.Year(DateTime.LocalNow)
我也尝试过从示例列执行此操作,但是创建的查询正在查看单元格值,例如如果 10/14 则 14/10/2021 否则如果 13/10 则 14/10/2021。一旦包含更大的数据集,我觉得这种方法很容易出错。
我是否可以根据 mm/dd 格式确定日期值?但是考虑到年底,除非我们进入 1 月,否则让 YYYY 由当年确定,然后我不希望 10 月、11 月、12 月的值显示为 2022 年。
将 [STATUS DATE] 再次拆分为 [Month] 和 [Day] 列,使用“/”作为分隔符。那么你就不必为 1 或 2 位数字而烦恼,你可以简单地使用这个公式:
#date(Date.Year(DateTime.LocalNow()), [Month], [Day])
DateTime.LocalNow()是一个函数,所以需要加上括号。
[Month] 和 [Day] 已经是数字,因此您不需要 Date.Month() 或 Date.Day() 函数。
你并没有真正展示你的原始数据是什么样子的。 但如果它是这样的:
来源
然后您可以在“添加自定义列”对话框中使用此代码:
let
split=Text.SplitAny([STATUS DATE],"@/ "),
mnth = Number.From(split{1}),
dy = Number.From(split{2})
in
#date(Date.Year(DateTime.LocalNow()),mnth,dy)
Text.SplitAny
函数可让您输入分隔符列表,文本将拆分为 所有 个分隔符。所以提取月份和日期值比较简单
创建: