PowerBI DAX求助:两个无关表日期匹配求和total_count度量创建
解决PowerBI中无关联表的区间累加度量问题
问题分析
你尝试的DAX代码无法得到正确结果,核心原因是DATESBETWEEN函数的使用场景错误:该函数要求第一个参数是连续的日期维度表列,而非无关联表的离散日期列;同时无关联表之间直接跨表引用列会导致上下文匹配错误,无法针对每个program date筛选对应区间的count值。
正确DAX度量
以下两种写法均可实现需求:
写法一(SUMX迭代匹配)
total_count = SUMX( 'Table 2', CALCULATE( SUM('Table 1'[count]), 'Table 1'[start date] <= 'Table 2'[program date], 'Table 1'[end date] >= 'Table 2'[program date] ) )
写法二(FILTER筛选区间)
total_count = CALCULATE( SUM('Table 1'[count]), FILTER( ALL('Table 1'), 'Table 1'[start date] <= MAX('Table 2'[program date]) && 'Table 1'[end date] >= MAX('Table 2'[program date]) ) )
逻辑说明
- 写法一通过
SUMX迭代Table 2的每一行program date,针对每个日期单独计算Table 1中满足start date ≤ program date ≤ end date的count总和。 - 写法二通过
FILTER遍历Table 1所有行,筛选出当前上下文program date落在区间内的记录,再求和count值。
两种写法均可得到预期结果:
| program date | total_count |
|---|---|
| 01/06/2020 | 13 |
| 31/07/2021 | 14 |
| 27/03/2022 | 16 |
内容的提问来源于stack exchange,提问作者Almond
相关产品推荐
相关产品推荐

