PowerBI替代COUNTIF:实现单个配送耗时计算的方法
PowerBI解决方案:按销售订单号匹配配送耗时
方法一:数据模型关联+DAX计算
1. 建立表关系
- 确认销售订单行表包含
SALES ORDER #和配送地址字段,配送时间表包含配送地址和配送耗时字段 - 切换到PowerBI的「模型」视图,将销售订单行表的
配送地址字段拖拽到配送时间表的配送地址字段上,建立一对多关系(一个地址对应多个订单行)
2. 创建计算列/度量值
计算列(给每个订单行添配送耗时):
在销售订单行表中新建计算列,输入DAX公式:配送耗时 = RELATED('配送时间表'[配送耗时])同一
SALES ORDER #的所有行将自动匹配到相同的配送耗时。度量值(按订单号汇总耗时):
如果需要在可视化中按订单号展示唯一的配送耗时,创建度量值:订单配送耗时 = MAXX(VALUES('销售订单行表'[SALES ORDER #]), RELATED('配送时间表'[配送耗时]))或用
ALLEXCEPT限定筛选范围:订单配送耗时 = CALCULATE(MAX('配送时间表'[配送耗时]), ALLEXCEPT('销售订单行表', '销售订单行表'[SALES ORDER #]))
方法二:Power Query合并数据(类似Excel VLOOKUP)
- 进入Power Query编辑器,打开销售订单行表
- 点击顶部「合并查询」,选择「合并到当前查询」
- 在合并对话框中,选择销售订单行表的
配送地址作为匹配字段,关联到配送时间表的配送地址字段 - 展开合并后的列,仅勾选
配送耗时字段 - 关闭并上载数据,此时每个订单行已关联对应耗时;若需按订单号去重展示,在可视化中拖入
SALES ORDER #和配送耗时,并设置字段为「不重复值」
注意事项
由于同一SALES ORDER #对应唯一配送地址,PowerBI会直接匹配到对应地址的固定耗时,无需像Excel那样用COUNTIF拆分求和——同一订单的多行耗时在按订单号汇总时会自动取唯一值。
内容的提问来源于stack exchange,提问作者Jamie
相关产品推荐
相关产品推荐

