Power BI中DAX实现:排除当前地点的关联客户跨区域销售额(带图例)
问题解决:DAX度量值修改以实现图例正确展示
问题根源
当前度量值无法按其他销售地点拆分展示,核心原因是:当你选中基准销售地点后,Sales[sales location]的筛选上下文被限制为该地点,导致图例只能显示选中的地点;同时原有代码未移除销售地点的筛选限制,无法加载其他地点的数据。
修改后的DAX代码
Cross sell areas = VAR SelectedBaseLocation = SELECTEDVALUE(Sales[sales location]) -- 获取在基准地点有消费记录的客户列表 VAR CustomersInBaseLocation = CALCULATETABLE( VALUES(Sales[customer]), Sales[sales location] = SelectedBaseLocation ) RETURN CALCULATE( SUM(Sales[sales amount]), -- 仅统计基准地点的客户 Sales[customer] IN CustomersInBaseLocation, -- 排除基准地点本身 Sales[sales location] <> SelectedBaseLocation, -- 移除销售地点的筛选限制,让其他地点能在图例中展示 REMOVEFILTERS(Sales[sales location]) )
代码逻辑说明
SelectedBaseLocation:获取你选中的基准销售地点(如beach、mall);CustomersInBaseLocation:提取所有在该基准地点有消费记录的客户;CALCULATE计算块:- 对符合条件的销售额求和;
- 限定计算范围为基准地点的客户;
- 排除基准地点本身,只统计其他地点的销售额;
REMOVEFILTERS(Sales[sales location])解除销售地点的筛选锁定,让其他地点的数据能在图例中正常展示。
图表设置调整
将sales location字段拖入图表的图例区域,把修改后的度量值拖入值区域。此时选中任意基准地点,图例会自动拆分展示其他地点的销售额分布:
- 选中beach时,图例显示mall(€40)和office(€15)
- 选中mall时,图例显示beach(€50)和office(€35)
- 选中office时,图例显示beach(€75)和mall(€60)
内容的提问来源于stack exchange,提问作者Dalydoba
相关产品推荐
相关产品推荐

