如何在Power BI中使用DAX根据筛选器动态汇总仅公共行
需求
仅获取筛选器中所有选中承包商都选择的公共行,并对其进行汇总。
示例数据
Item_id itemcode target_bid_price contractors 1 abc-001 1000 asher 2 abc-002 2000 asher 4 abc-004 4000 asher 1 abc-001 1000 hammad 2 abc-002 2000 hammad 3 abc-003 3000 hammad 4 abc-004 4000 hammad 1 abc-001 1000 jawad 2 abc-002 2000 jawad 3 abc-003 3000 jawad 4 abc-004 4000 jawad
注:示例中asher未选择Item_id=3的条目,其余两个承包商均选择了该条目。
解决方案(SQL实现)
假设数据存储在表bid_items中,以下是具体实现:
1. 筛选公共行
统计每个条目被选中承包商覆盖的数量,筛选出覆盖数量等于选中承包商总数的条目:
-- 替换括号内的承包商列表为实际选中对象,同步调整HAVING后的数字为选中承包商总数 SELECT item_id, itemcode, target_bid_price FROM bid_items WHERE contractors IN ('asher', 'hammad', 'jawad') GROUP BY item_id, itemcode, target_bid_price HAVING COUNT(DISTINCT contractors) = 3;
执行结果为所有选中承包商共同选择的条目:
Item_id itemcode target_bid_price 1 abc-001 1000 2 abc-002 2000 4 abc-004 4000
2. 汇总公共行
若需对公共行进行数值汇总(比如求和目标投标价),可嵌套查询实现:
SELECT SUM(target_bid_price) AS total_target_price FROM ( SELECT item_id, itemcode, target_bid_price FROM bid_items WHERE contractors IN ('asher', 'hammad', 'jawad') GROUP BY item_id, itemcode, target_bid_price HAVING COUNT(DISTINCT contractors) = 3 ) AS common_items;
执行后得到汇总结果:7000(1000+2000+4000)。
内容的提问来源于stack exchange,提问作者Hammad Raza
相关产品推荐
相关产品推荐

