请求协助:使用DAX创建按列分组取指定日期对应数量总和的度量值
DAX度量值实现分组取指定日期对应数量求和
实现思路
- 获取日期切片器所选范围的最大日期
- 对每个分组,筛选出该分组中小于上述最大日期的所有记录,取其中的最大日期
- 匹配每个分组对应日期的
qty值,最后求和
度量值代码
假设你的数据模型包含:
- 事实表(示例命名为
Sales):包含分组列(示例为Group)、日期列Date、数量列qty - 日期表(示例命名为
Date):与事实表的Date列建立关联,用于日期切片器
分组指定日期数量总和 = VAR MaxSelectedDate = MAX(ALLSELECTED('Date'[Date])) VAR GroupLatestDates = ADDCOLUMNS( VALUES(Sales[Group]), "@LatestDate", CALCULATE( MAX(Sales[Date]), Sales[Date] < MaxSelectedDate ) ) VAR GroupQtyValues = ADDCOLUMNS( GroupLatestDates, "@Qty", CALCULATE( SUM(Sales[qty]), Sales[Date] = [@LatestDate] ) ) RETURN SUMX(GroupQtyValues, [@Qty])
关键说明
- 如果分组列来自独立维度表(而非事实表),只需将
VALUES(Sales[Group])替换为对应维度表的分组列,比如VALUES(Dim_Group[Group]) - 若同一分组在目标日期有多条记录,
SUM(Sales[qty])会自动汇总该日期的所有数量;如果只需取单条记录的数量,可替换为MAX(Sales[qty])或MIN(Sales[qty]),根据实际业务调整 - 确保日期表与事实表的关联关系正确,否则切片器的日期范围无法正确作用于事实表数据
内容的提问来源于stack exchange,提问作者andy
相关产品推荐
相关产品推荐

