求助:如何将Power BI图表的周起始日期从周日改为周一?
解决Power BI周起始日期改为周一的简单方法
方法1:修改自动日期表的内置设置
如果使用Power BI自动生成的日期表:
- 切换到数据视图,选中自动生成的日期表
- 点击顶部菜单栏的建模选项卡,选择日期表设置
- 在弹出窗口中,将「周起始日」改为星期一,点击确定即可。这是最快捷的方式,无需编写代码。
方法2:Power Query自定义日历表(含周起始逻辑)
若手动构建日历表,需确保周起始参数应用到实际计算列中,完整示例代码:
let StartDate = #date(2023, 1, 1), EndDate = #date(2024, 12, 31), varFirstDayOfWeek = Day.Monday, // 定义周起始为周一 DateList = List.Dates(StartDate, Duration.Days(EndDate - StartDate) + 1, #duration(1,0,0,0)), #"转换为表" = Table.FromList(DateList, Splitter.SplitByNothing()), #"重命名列" = Table.RenameColumns(#"转换为表", {{"Column1", "日期"}}), #"添加周起始日" = Table.AddColumn(#"重命名列", "周起始日", each Date.StartOfWeek([日期], varFirstDayOfWeek)), #"添加年度周数" = Table.AddColumn(#"添加周起始日", "年度周数", each Date.WeekOfYear([日期], varFirstDayOfWeek)) in #"添加年度周数"
- 核心是在
Date.StartOfWeek和Date.WeekOfYear中传入varFirstDayOfWeek参数,仅定义变量不会生效。
方法3:DAX计算列快速调整
如果已有现成日期表,直接在DAX中添加两个计算列:
周起始日 = DATEADD('日期表'[日期], -WEEKDAY('日期表'[日期], 2) + 1, DAY) 年度周数 = WEEKNUM('日期表'[日期], 2)
WEEKDAY(...,2)和WEEKNUM(...,2)均表示周起始为周一(参数1代表周日起始)。
验证效果
修改完成后,在图表视觉对象中使用新的「周起始日」或「年度周数」字段,即可实现以周一为周起始的分组展示。
内容的提问来源于stack exchange,提问作者RyoXen
相关产品推荐
相关产品推荐

