Power BI技术问询:创建月度最后一天与每周周六数据度量值
没问题!针对你要在Power BI里创建的两个度量值,我给你整理了适配数据持续追加场景的DAX写法和逻辑说明:
一、每月最后一天各服务的统计数值度量值
因为数据会不断追加,我们需要动态获取当前筛选范围内的当月最后一天,而不是固定某个日期。假设你的业务数据表名为业务数据表,日期列是日期,需要统计的数值列是统计数值,服务分类列是服务名称,可以用下面的DAX创建度量值:
每月最后一天统计值 = VAR 当前月份最后一天 = EOMONTH(MAX('业务数据表'[日期]), 0) RETURN CALCULATE( SUM('业务数据表'[统计数值]), '业务数据表'[日期] = 当前月份最后一天 )
逻辑说明:
EOMONTH(MAX('业务数据表'[日期]), 0)会自动获取当前筛选范围内最新日期所属月份的最后一天,不管后续追加多少新数据,都会动态更新。- 如果你的统计需求不是求和,把
SUM换成COUNT、AVERAGE或者你需要的聚合函数即可。 - 搭配
服务名称列使用时,就能自动按服务分类展示每月最后一天的统计值。
二、每周最后一天(周六)的统计数值度量值
针对每周周六的数据统计,分两种场景给你提供写法:
场景1:获取当前筛选范围内最新一周的周六统计值
适合看板上固定展示最新周六的数据:
最新周六统计值 = VAR 当前筛选范围的周六 = MAXX( FILTER( ALL('业务数据表'[日期]), WEEKDAY('业务数据表'[日期], 2) = 6 // 参数2表示周一=1,周六=6 ), '业务数据表'[日期] ) RETURN CALCULATE( SUM('业务数据表'[统计数值]), '业务数据表'[日期] = 当前筛选范围的周六 )
场景2:展示每一周的周六统计值(按周分组)
适合放在矩阵或表格中,搭配周数列查看历史每周六的数据:
各周周六统计值 = CALCULATE( SUM('业务数据表'[统计数值]), WEEKDAY('业务数据表'[日期], 2) = 6 )
逻辑说明:
WEEKDAY函数的第二个参数设为2,是为了让周一对应1、周六对应6,符合你“周六为每周最后一天”的需求。- 如果使用单独的日期维度表,把代码中的
业务数据表'[日期]替换成日期表的日期列,计算效率会更高。
内容的提问来源于stack exchange,提问作者Arpit




