基于列变量过滤DAX中物料号重复值 Power Pivot/Power Query选型咨询
方案选型结论
该需求属于源数据清洗去重场景,优先选择Power Query实现,不推荐用DAX处理。
推荐Power Query的核心原因
- Power Query定位就是数据预处理工具,过滤后的无效行不会进入Power Pivot数据模型,不会占用额外存储空间,也不会拖慢后续DAX计算性能
- 操作逻辑简单可复用,后续源数据更新后只要刷新就能自动完成过滤,不需要重复手动操作
具体实现步骤
- 将源数据导入Power Query编辑器
- 新增自定义列标记行有效性,参考公式:
= let 当前物料 = [物料号], 正确前置期 = Table.Max(Table.SelectRows(#"上一步骤名", each [物料号] = 当前物料 and [常规供应商] <> "否"), "前置期")[前置期] in if [前置期] = 正确前置期 then "有效" else "无效"
- 筛选自定义列保留「有效」行,删除不需要的辅助列后加载到模型即可
不推荐DAX的原因
- DAX是建模后的计算语言,用DAX做筛选的话无效行仍然会保留在数据模型中,会额外占用文件体积
- 仅当你需要临时校验数据、不需要永久删除无效行时,可以用DAX写计算列打标签做临时筛选,长期使用不推荐该方案
内容的提问来源于stack exchange,提问作者Rossco Stringer
相关产品推荐
相关产品推荐

