使用另一列中的逻辑将一列中的单元格内容合并


2

我想使用从另一列派生的逻辑来合并并列出一列中的单元格内容。请参见下面的详细信息

数据集

Name             Sales order number

Harry1           1234
Dave2            1235
Mary3            1234
Bill4            1234
Tom5             1235

该公式将查看销售订单编号,收集具有相同销售订单编号的所有名称,并将名称显示在一个名为“ Sold by”的列中

结果

  Name            Sales Order Number            Sold by

Harry1            1234                          Harry1, Mary3, Bill4
Dave2             1235                          Dave2, Tom5
Mary3             1234                          Harry1, Mary3, Bill4
Bill4             1234                          Harry1, Mary3, Bill4
Tom5              1235                          Dave2, Tom5

这样做似乎不合逻辑,但我有一个庞大的数据集,然后将使用“结果”进行数据透视

通过执行一个简单的IF语句,我已经将名字拉到了sold by列中,但似乎无法弄清楚如何将所有具有相同销售订单的名称汇总并在列中列出它们


2
对于庞大的数据集,使用简单的公式将无法实现。似乎有些排序和数据透视表是没有VBA的最佳选择
Raystafarian

好的,我的意思是26,000行。我们还有其他数据集,它们使excel工作表的第一个选项卡最大,并迫使我们使用新的选项卡,但我不会将此逻辑应用于该工作表。
user593732 '16

您是否考虑过迁移到关系数据库?
雷斯塔法里安

Answers:


0

您可以使用免费的Microsoft Power Query加载项进行此转换步骤。
它不是VBA,但在这种情况下,除了使用UI外,还有一些编码步骤。

数据集-> Power Query的数据输出 表“数据集”-> Power Query的数据输出

  1. 将数据集定义为表(在以下脚本中将其称为“数据集”)
  2. 在功能区Power Query上,在UI中导入表格(“ From Table”)
  3. 将脚本放在下面的高级编辑器中(功能区视图->高级编辑器)

这是M代码:

let
    Source = Excel.CurrentWorkbook(){[Name="Dataset"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Sales order number", Int64.Type}}),
    #"Merged Queries" = Table.NestedJoin(#"Changed Type",{"Sales order number"},#"Changed Type",{"Sales order number"},"NewColumn",JoinKind.LeftOuter),

    // Function for Merging the matching rows
    List_MatchingRows=(Table, Column) =>
        let 
            ColumnToMerge = Table.SelectColumns(Table, Column),
            ListMatch = Table.ToList(ColumnToMerge),
            SingleLine = Text.TrimEnd(Text.TrimEnd(Lines.ToText(ListMatch, ", ")," "),",")
        in
            SingleLine,


    #"Added Custom" = Table.AddColumn(#"Merged Queries", "Sold by", each List_MatchingRows([NewColumn],"Name")),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"NewColumn"})

in
    #"Removed Columns"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.