Power BI DAX表达式修改:计算选定日期及指定Appl的累计交易总额
修正后的DAX表达式
Purchases = VAR SelectedMaxDate = MAXX(ALLSELECTED('calendar'), 'calendar'[cal_posted_date]) VAR TargetAppNos = CALCULATETABLE( VALUES(combined_apps[appl_appl_no]), combined_apps[date_join] = SelectedMaxDate, REMOVEFILTERS(combined_apps) ) RETURN CALCULATE( SUM(combined_apps[tran_amount]), combined_apps[tran_code] IN {"35", "37"}, combined_apps[tran_effective_date] <= SelectedMaxDate, combined_apps[appl_appl_no] IN TargetAppNos, REMOVEFILTERS('calendar') )
核心修改说明
- 用
ALLSELECTED('calendar')精准获取切片器选中的最大日期,避免其他筛选干扰 - 在获取目标
appl_appl_no时,通过REMOVEFILTERS(combined_apps)移除表间关系带来的默认筛选,确保能拿到选中日期所有关联的应用编号 - 计算总和时添加
REMOVEFILTERS('calendar'),解除日历表的筛选约束,让DAX可以统计tran_effective_date小于等于选中日期的所有符合条件的交易 - 修正了原公式中误用
tran_effective_date匹配选中日期的逻辑,改为用表间关系对应的date_join字段,确保目标应用编号的来源正确
若业务逻辑中目标应用编号是基于
tran_effective_date等于选中日期,可将TargetAppNos里的combined_apps[date_join] = SelectedMaxDate替换为combined_apps[tran_effective_date] = SelectedMaxDate
内容的提问来源于stack exchange,提问作者Gray Meiring
相关产品推荐
相关产品推荐

