如何按日历年计算累计值?非YTD计算需求
日历年累计值计算逻辑(DAX)
针对你需要的「选择指定年月后,计算该日历年1月至所选月份的累计值」需求,可以通过自定义DAX度量值实现,逻辑如下:
核心思路
- 提取切片器选中的年份和月份数字
- 筛选日期表中同一年份且月份不超过选中月份的所有日期范围
- 对目标数值列在该范围内求和
具体DAX代码
假设你的日期表名为'Date',业务数据表里的数值列是'业务表'[目标数值],创建如下度量值:
日历年累计值 = VAR 选中年份 = SELECTEDVALUE('Date'[年份]) VAR 选中月份 = SELECTEDVALUE('Date'[月份数字]) RETURN CALCULATE( SUM('业务表'[目标数值]), FILTER( ALL('Date'), 'Date'[年份] = 选中年份 && 'Date'[月份数字] <= 选中月份 ) )
关键说明
- 日期表需包含年份列(如2023、2024)和月份数字列(1-12),这两个列用于精准筛选范围
- 切片器使用的「月份 年份」格式列,可通过日期表自定义生成,例如:
若需要带单引号的格式(如Jan '2023),则用:年月显示 = FORMAT('Date'[日期], "MMM yyyy")年月显示 = FORMAT('Date'[日期], "MMM ''yy") - 使用
ALL('Date')是为了忽略切片器对单个月份的筛选,确保能计算当年1月到选中月的全部数据;跨年份时,因为选中年份会自动切换,所以2024年的选中值不会包含2023年的数据,完全符合你的示例要求。
内容的提问来源于stack exchange,提问作者xorpower
相关产品推荐
相关产品推荐

