Power BI中如何根据周数字段填充对应月份名称
Power BI 基于Week Number填充Month Name操作方案
前置说明:默认你使用的是自然年周数规则,若使用ISO周或自定义周规则,可对应调整周起始日参数即可
方案1:DAX计算列实现(适合报表层动态计算)
- 第一步先提取年份字段(避免跨年周数重复匹配错误,已有年份字段可跳过):
新建计算列,输入公式:Year = YEAR('你的实际表名'[New Status Date]) - 第二步新建Month Name计算列,输入DAX公式:
Month Name = // 计算当年第一天 VAR FirstDayOfYear = DATE('你的实际表名'[Year], 1, 1) // 计算当前周的第一天,WEEKDAY第二个参数2代表周一为周首日,改成1代表周日为周首日 VAR FirstDayOfCurrentWeek = FirstDayOfYear + ('你的实际表名'[Week Number] - 1)*7 - WEEKDAY(FirstDayOfYear, 2) + 1 // 返回当前周第一天所在月份的完整名称 RETURN FORMAT(FirstDayOfCurrentWeek, "mmmm") - 替换公式内的
你的实际表名为你的数据表真实名称即可生效
方案2:Power Query M实现(适合数据清洗阶段静态处理)
- 进入Power Query编辑器,选中目标数据表
- 依次点击「添加列」→「自定义列」,输入M公式:
// Date.DayOfWeek第二个参数Day.Monday代表周一为周首日,改为Day.Sunday即为周日为周首日 = Date.MonthName( Date.AddDays( #date([Year],1,1), ([Week Number]-1)*7 - Date.DayOfWeek(#date([Year],1,1), Day.Monday) + 1 ) ) - 点击确定后,新列会自动填充所有行的月份名称,应用更改后加载到模型即可使用
特殊场景适配:如果你的周存在跨月情况,需要取周内天数占比更高的月份作为归属月,只需要在原有公式基础上增加周首日和周尾日的月份判断,取天数更多的月份即可
内容的提问来源于stack exchange,提问作者techmaster
相关产品推荐
相关产品推荐

