excel - 电量查询中的批量跟踪
问题描述
我有一个包含一些生产数据的 CSV。当加载到 Excels 电源查询中时,它具有与此类似的结构(材料批次可能包含旧材料批次的剩余部分作为回收材料):
Mat_Batch 日期 Recyc_Batch RawMaterial1 RawMaterial2 RawMaterial3 Amount1 Amount2 Amount3 123 01.11.2019 铁铬镍 70 19 11 234 01.12.2019 铁铬镍 71 18 11 345 01.02.2020 123 铁铬镍 72 17 9 456 01.01.2020 234 铁铬镍 70 19 11 567 01.02.2020 铁铬镍 72 16 10 678 01.01.2020 456 铁铬镍 70 19 11
另一个 CSV 具有以下内容(它只是将一个生产批次链接到一个物料批次;生产批次可能包含多个物料批次):
批处理 Mat_Batch 美国广播公司 456 美国广播公司 567 公元前 345 年
现在我想使用 power query m 来评估哪些材料批次确切地用于生产零件批次。例如,批次“abc”由 456 + 567 + 234 制成(作为 456 中的回收材料)。
作为第一步,我按特定批次过滤生产批次表,并通过生成的 Mat_Batch 列连接两个表。作为第二次迭代,我将 Recyc_Batch 列从匹配的材料批次中分离出来,并与我的材料批次表的副本进行第二次连接,以获得所有其他使用的回收材料。但是我怎么能做到“无限”次呢?我这样做的方式是,我必须为每次迭代创建额外的查询,但我需要一种方法来自动重复这些连接步骤,直到不再使用额外的回收材料。
解决方案
这是您可以使用的查询(结果)(如果我理解正确)
let
Quelle = Table.NestedJoin(tbl_Material, {"Mat_Batch"}, tbl_Production, {"Mat_Batch"}, "tbl_Production", JoinKind.LeftOuter),
Combine_Sources = Table.ExpandTableColumn(Quelle, "tbl_Production", {"Batch"}, {"Batch"}),
DeleteOtherColumns = Table.SelectColumns(Combine_Sources,{"Batch", "Mat_Batch", "Recyc_Batch"}),
UnpivotOtherColumns = Table.UnpivotOtherColumns(DeleteOtherColumns, {"Batch"}, "Attribut", "Wert"),
FilterRows = Table.SelectRows(UnpivotOtherColumns, each ([Batch] <> null)),
SortRows = Table.Sort(FilterRows,{{"Batch", Order.Ascending}})
in
SortRows
推荐阅读
- postgresql - 如何在 postgresql 中交换 geom 类型 cloumn 的 lat long 值
- android - 什么是编程模块(Android)
- istio - 根据 URL 路径生成 Istio 指标
- python - Python 不一致的 UnboundLocalError 行为。一个局部变量抛出错误,而另一个没有
- list - 当在颤动中单击按钮时,如何在空的动态列表中添加动态项目?
- apache-flink - 即使在 PerJob 部署模式下完成作业执行后,TaskManagers 仍处于启动状态
- python - 颤振与 python 后端
- r - 在每个向量入口处求和到向量的末尾
- css - CSS过滤器属性改变内部DIV的高度
- python - 中央认证和授权服务