如何在Power BI中创建自连接或计算字段统计DC及所属门店库存
解决Power BI中DC与下属门店库存汇总的问题
方法一:用DAX计算列快速实现
不用建表关联,直接在原始数据表中添加两个计算列即可:
- DC Inventory:仅保留DC自身的库存,非DC行留空(最终我们只展示DC行)
DC Inventory = IF( '你的表名'[Location Type] = "DC", '你的表名'[Inventory], BLANK() )
- Total Store Inventory:计算当前DC下属所有门店的库存总和,无下属门店时显示0
Total Store Inventory = CALCULATE( SUM('你的表名'[Inventory]), FILTER( ALL('你的表名'), '你的表名'[Supporting DC ID] = EARLIER('你的表名'[Location ID]) && '你的表名'[Location Type] = "Store" ) ) + 0
配置可视化
- 插入矩阵,行字段选择
Location ID,然后在可视化的筛选器中设置Location Type = DC - 值字段选择刚创建的
DC Inventory和Total Store Inventory
方法二:自连接表(适合后续扩展复杂逻辑)
如果后续需要添加更多关联分析,用自连接方式更灵活:
- 复制并筛选DC表:复制原始表并命名为
DC列表,然后筛选出Location Type = DC的行(可通过Power Query过滤,或直接给表添加筛选器) - 建立关系:在模型视图中,将原始表的
Supporting DC ID与DC列表的Location ID建立多对一关系 - 创建两个度量值:
- DC库存度量值:
DC库存 = SUM('DC列表'[Inventory])- 下属门店总库存度量值:
门店总库存 = CALCULATE( SUM('原始表名'[Inventory]), '原始表名'[Location Type] = "Store" ) + 0 - 配置矩阵:
- 行字段选择
DC列表的Location ID - 值字段选择两个度量值
- 行字段选择
两种方法都能得到你期望的结果:
| Location ID | DC Inventory | Total Store Inventory |
|---|---|---|
| 1 | 100 | 110 |
| 3 | 75 | 190 |
| 5 | 90 | 0 |
| 7 | 110 | 40 |
| 9 | 85 | 0 |
内容的提问来源于stack exchange,提问作者Shan Jiang
相关产品推荐
相关产品推荐

