gpt4 book ai didi

excel - 比较多个表中的数据

转载 作者:行者123 更新时间:2023-12-04 22:18:02 26 4
gpt4 key购买 nike

背景:
在左下图中,我有 Material A、B...C 等。这些 Material 中的每一种都可以来自 3 个供应商 (1-3),但由于它们是不同的供应商,每种 Material 都含有各种杂质(金属)。
enter image description here
问题/到目前为止:
为简化起见,我使用 power query 将数据拆分为 3 个独立的表,以便对数据进行分区(如下所示)。
enter image description here
现在,对于每种杂质(金属),我希望比较 3 个表之间的金属,并返回一个仅包含最高值的列表以及表名称(供应商)(如果可能)。
这被证明是相当具有挑战性的,尽管我确信之前已经实现了类似的分析。本质上,我的目标只是比较多个表中的值,以返回找到的最高值及其来源。如果有人做过这样的事情有任何建议/解决方案,我们将不胜感激。

最佳答案

有点不同的 PQ 方法

  • 拆分原始表以为每个项目创建单行,并为金属和数量分开列
  • 使用 Table.Group 函数提取每种 Material /金属组合的最高数量和对应的供应商

  • M码
    let
    Source = Excel.CurrentWorkbook(){[Name="Table5"]}[Content],
    #"Renamed Columns1" = Table.RenameColumns(Source,{{"Column1", "Material"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns1",
    {{"Material", type text}, {"1", type text}, {"2", type text}, {"3", type text}}),

    //Unpivot to create three columns
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Material"}, "Supplier", "Value"),

    //Split the Metals column into rows by line feed to => one row per metal
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Unpivoted Other Columns", {
    {"Value", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv),
    let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Value"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Value", type text}}),

    //Split Metals column at the space to => two columns -- one for the name; the other for the amount
    #"Split Column by Delimiter1" = Table.SplitColumn(#"Changed Type1", "Value",
    Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Metal", "Amount"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter1",{{"Metal", type text}, {"Amount", Int64.Type}}),

    //Group rows by Material and Metal
    //Extract the highest amount and corresponding suppler
    #"Grouped Rows" = Table.Group(#"Changed Type2", {"Material", "Metal"}, {
    {"Amount", each List.Max([Amount]),type number},
    {"Supplier", (t) => t[Supplier]{List.PositionOf(t[Amount],List.Max(t[Amount]))}, type text}
    })
    in
    #"Grouped Rows"
    enter image description here

    关于excel - 比较多个表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67006712/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com