基于日期添加DAX列:上月末及之前标记YTD,否则标记FCT
Power Query生成YTD/FCT列的正确实现
原代码问题分析
- 语法错误:代码中
Added Custom"的引号位置错误,正确写法应为"Added Custom" - 逻辑偏差:使用
Today()无法满足“上月末或更早日期”的需求,需要精准计算上月末日期
修正后的完整代码
"Added Custom" = Table.AddColumn(#"Change Type4", "YTD Date", each if [Date.Custom] <= Date.EndOfMonth(Date.AddMonths(Date.From(DateTime.LocalNow()), -1)) then "YTD" else "FCT")
代码逻辑说明
Date.EndOfMonth(Date.AddMonths(Date.From(DateTime.LocalNow()), -1)):精准计算上月最后一天的日期DateTime.LocalNow():获取当前系统的日期时间Date.From():将日期时间转换为纯日期类型,避免时间部分干扰判断Date.AddMonths(..., -1):得到上个月的对应日期Date.EndOfMonth():提取该月的最后一天
- 条件判断:当
[Date.Custom]早于或等于上月末时返回YTD,否则返回FCT
额外提示
如果[Date.Custom]是日期时间格式,建议将其转换为纯日期后再判断,避免因时间部分导致的误判,修改后的条件部分如下:
if Date.From([Date.Custom]) <= Date.EndOfMonth(Date.AddMonths(Date.From(DateTime.LocalNow()), -1)) then "YTD" else "FCT"
内容的提问来源于stack exchange,提问作者Yolanda CB
相关产品推荐
相关产品推荐

