如何从 Horizontal table 中提取数据
How to extract data from Horizontal table
我有一个横向的 table,如下所示:
这是一种库存table,通过零件号和代码组合可以制作唯一的钥匙。
每个 part# 有一个 7 行的块,包括一个空白行,它是该块的最后一行。 (红框为一格)。
我只想提取与零件号相关的数量。
由于未输入 Part No 列的所有单元格,因此很难获得 part# 的数量。
我不想在 PartNo 列中手动复制零件编号,因为 table 有很多零件。
我想要一个 table 这样的:
我试过的是:
- 首先,我需要了解 table 中有多少零件。 - >它有200
部分。
- Power Query:按数量筛选类别列
-> NG 因为我
看不到零件号。
- 将part#和code拼接成唯一键,然后使用索引匹配。
-> 零件数量不匹配。
使用这种 table 提取我需要的内容的最佳方法是什么??
试试这个。使用来自 table/range.
的数据...将数据导入 powerquery
添加列,使用公式自定义列
= if [Part No]<> null and [shipping info]=null then [Part No] else null
添加列,使用公式自定义列
= if [Part No]<> null and [shipping info]=null then [code] else null
单击 select 这两列并右键单击向下填充
使用类别列顶部的下拉菜单筛选值 [x] QTY
单击 select 原始部件号列、原始代码列以及运输信息和日期列,然后右键单击将其删除
这对您来说可能就足够了,到这里结束,执行文件...关闭并加载。但是,如果有重复的行需要合并和添加在一起,则单击 select 类别、零件和代码列,右键单击并取消透视其他列。然后单击 select 属性列并转换 .. pivot column ... 使用 Value 作为值列,并在高级选项中选择 [x] sum
示例完整代码:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "MasterPart", each if [Part No]<> null and [shipping info]=null then [Part No] else null),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "MasterCode", each if [Part No]<> null and [shipping info]=null then [code] else null),
#"Filled Down" = Table.FillDown(#"Added Custom1",{"MasterPart", "MasterCode"}),
#"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([category] = "QTY")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Part No", "code", "shipping info", "date"}),
// you may just be able to stop here unless rows need to be added together
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Columns", {"category", "MasterPart", "MasterCode"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns", List.Distinct(#"Unpivoted Other Columns"[Attribute]), "Attribute", "Value", List.Sum)
in #"Pivoted Column"
我有一个横向的 table,如下所示:
每个 part# 有一个 7 行的块,包括一个空白行,它是该块的最后一行。 (红框为一格)。 我只想提取与零件号相关的数量。 由于未输入 Part No 列的所有单元格,因此很难获得 part# 的数量。 我不想在 PartNo 列中手动复制零件编号,因为 table 有很多零件。
我想要一个 table 这样的:
我试过的是:
- 首先,我需要了解 table 中有多少零件。 - >它有200 部分。
- Power Query:按数量筛选类别列 -> NG 因为我 看不到零件号。
- 将part#和code拼接成唯一键,然后使用索引匹配。 -> 零件数量不匹配。
使用这种 table 提取我需要的内容的最佳方法是什么??
试试这个。使用来自 table/range.
的数据...将数据导入 powerquery添加列,使用公式自定义列
= if [Part No]<> null and [shipping info]=null then [Part No] else null
添加列,使用公式自定义列
= if [Part No]<> null and [shipping info]=null then [code] else null
单击 select 这两列并右键单击向下填充
使用类别列顶部的下拉菜单筛选值 [x] QTY
单击 select 原始部件号列、原始代码列以及运输信息和日期列,然后右键单击将其删除
这对您来说可能就足够了,到这里结束,执行文件...关闭并加载。但是,如果有重复的行需要合并和添加在一起,则单击 select 类别、零件和代码列,右键单击并取消透视其他列。然后单击 select 属性列并转换 .. pivot column ... 使用 Value 作为值列,并在高级选项中选择 [x] sum
示例完整代码:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "MasterPart", each if [Part No]<> null and [shipping info]=null then [Part No] else null),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "MasterCode", each if [Part No]<> null and [shipping info]=null then [code] else null),
#"Filled Down" = Table.FillDown(#"Added Custom1",{"MasterPart", "MasterCode"}),
#"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([category] = "QTY")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Part No", "code", "shipping info", "date"}),
// you may just be able to stop here unless rows need to be added together
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Columns", {"category", "MasterPart", "MasterCode"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns", List.Distinct(#"Unpivoted Other Columns"[Attribute]), "Attribute", "Value", List.Sum)
in #"Pivoted Column"