提取我的客户的 ID 和信息(批量)

提取我的客户的 ID 和信息(批量)

我需要从表格(主数据选项卡)中批量提取(多个客户ID)以及与他们的订单相关的所有信息:

表格电子表格

例如:客户 2245、6987 和 123

我想要生成的最终结果应该如下所示(参见捕获):

我希望得到的结果

我已经建立了一个表单,可以搜索所有客户 ID 重复项并响应所有信息 - 但是我必须一次搜索一个客户,并且使用详尽的列表,这可能有点耗时。

答案1

看起来您希望按照客户在表格中列出的确切顺序对其进行筛选,因为您已使用不同的颜色突出显示了它们。这可以使用 Power Query 轻松完成。在我发布的示例中,有 3 个查询:第一个查询指的是在“主”工作表中导入表格,第二个查询“按原样”创建索引,以便在第三个也是最后一个查询中,记录以建议的方式列出:

第一个查询称为“Table1”,通过 M 代码检索(与后续两个一样):

let
    Font = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Font,{{"ID", type text}, {"Product", type text}, {"Color", type text}, {"Nation", type text}, {"Quantity", Int64.Type}})
in
    #"Changed Type"

第二个查询名为“ID”:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Product", type text}, {"Color", type text}, {"Nation", type text}, {"Quantity", Int64.Type}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"ID"})
in
    #"Removed Other Columns"

第三个“结果表”用于在 Excel 前端的新工作表中填充所需的结果:

let
    Source = Table.NestedJoin(ID, {"ID"}, Table1, {"ID"}, "Table1", JoinKind.LeftOuter),
    #"Removed Columns" = Table.RemoveColumns(Source,{"ID"}),
    #"Expanded Table1" = Table.ExpandTableColumn(#"Removed Columns", "Table1", {"ID", "Product", "Color", "Nation", "Quantity"}, {"ID", "Product", "Color", "Nation", "Quantity"})
in
    #"Expanded Table1"

因此,关闭 PQ 并返回 Excel 的前端,将“结果表”加载到工作表中。这可以通过右键单击其名称并选择“加载到...”来完成,然后根据需要选择目标工作表。

答案2

我将创建一个新表(不仅仅是一个范围,而是一个“Ctrl+T”表)来保存您感兴趣的客户列表,因为感觉这个列表每次或至少随着时间的推移可能会发生变化。给该表起一个合理的名称,例如“FilterCustomers”。使用 Power Query 将该表拉入,方法是选择表中的任意单元格,然后转到数据 > 来自表或范围。

当您执行“关闭并加载 > 关闭并加载到”时,选择“仅创建连接”。现在您有一个引用该表的查询。返回您的原始数据范围,将其也制作成一个表,然后以相同的方式将其加载到 Power Query 中。

(如果这些数据位于您正在加载或粘贴的外部文件(如 CSV)中,则最好构建一个直接提取该文件的解决方案,以从手动过程中删除一些步骤)。

将数据加载到 Power Query 后,添加合并查询步骤(相当于数据库连接),将主数据中的 ID 与过滤表中的 ID 或客户名称关联,选择内连接类型,然后单击确定,这样您将只获取与过滤列表中的条目匹配的主数据中的行。

您可以添加几种排序,这样您就可以获得按客户、产品或其他任何您想要的方式排序的最终数据。单击“关闭并加载”,您就会得到您想要的新数据表。

您可以更改客户列表并刷新新表(右键单击 > 刷新,或数据 > 全部刷新)。新的主要数据?将其粘贴,然后刷新。

相关内容