如何从 Horizo​​ntal table 中提取数据

How to extract data from Horizontal table

我有一个横向的 table,如下所示: 这是一种库存table,通过零件号和代码组合可以制作唯一的钥匙。

每个 part# 有一个 7 行的块,包括一个空白行,它是该块的最后一行。 (红框为一格)。 我只想提取与零件号相关的数量。 由于未输入 Part No 列的所有单元格,因此很难获得 part# 的数量。 我不想在 PartNo 列中手动复制零件编号,因为 table 有很多零件。

我想要一个 table 这样的:

我试过的是:

  1. 首先,我需要了解 table 中有多少零件。 - >它有200 部分。
  2. Power Query:按数量筛选类别列 -> NG 因为我 看不到零件号。
  3. 将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"