DAX/Power BI双表筛选求和:如何添加客户维度过滤条件
解决方案
你可以直接在CALCULATE的筛选参数中新增客户维度的匹配条件即可,考虑到两表已经通过SKU建立多对多关联,直接添加客户等值筛选就能实现和你给出的Excel SUMIFS完全一致的逻辑。
修改后的DAX公式如下:
ordered = CALCULATE( SUM(ORDERS[order qty]), KEEPFILTERS(DATESBETWEEN(ORDERS[Document Date], PromoLib[Order Start], PromoLib[Order End])), -- 新增客户维度筛选条件,匹配当前促销行对应的客户 ORDERS[客户] = SELECTEDVALUE(PromoLib[客户]), -- 如果是在计算列(而非度量值)场景下使用,可以直接写如下等值匹配,不需要SELECTEDVALUE -- ORDERS[客户] = PromoLib[客户] )
注意事项
- 如果你是在PromoLib表的计算列里写这段DAX,可以直接去掉SELECTEDVALUE,行上下文会自动取当前行的客户值做匹配
- 如果是做度量值放在可视化对象中,确保上下文可以唯一确定PromoLib的客户、SKU、促销时间段,避免SELECTEDVALUE返回空值导致计算异常
- 现有多对多的SKU关联不需要额外调整,新增客户筛选后会自动过滤掉同SKU但客户不匹配的订单数据
内容的提问来源于stack exchange,提问作者agas0077
相关产品推荐
相关产品推荐

