2

Я хотел бы объединить и перечислить содержимое ячейки из одного столбца, используя логику, полученную из другого. Подробности ниже

Набор данных

Name             Sales order number

Harry1           1234
Dave2            1235
Mary3            1234
Bill4            1234
Tom5             1235

Формула будет смотреть на номера заказов на продажу, собирать все имена с одинаковыми номерами заказов на продажу и отображать имена в одном столбце под названием "Продано"

Результаты

  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

Это может показаться нелогичным, но я получил огромный набор данных и затем сделал бы Pivot, используя "Результаты".

Делая простое утверждение IF, я вытащил первое имя в столбец продаж по, но не могу понять, как объединить все имена с одним и тем же заказом на продажу и перечислить их в столбце

1 ответ1

0

Вы можете сделать этот шаг преобразования с помощью бесплатной надстройки Microsoft Power Query .
Это не VBA, но в этом случае есть некоторые шаги для кодирования, помимо использования пользовательского интерфейса.

набор данных -> вывод данных из Power Query Таблица "Набор данных" -> вывод данных из Power Query

  1. Определите набор данных как таблицу (я называю его "набор данных" в следующем сценарии)
  2. На ленте Power Query импортируйте таблицу в пользовательском интерфейсе ("Из таблицы").
  3. Поместите приведенный ниже скрипт в расширенный редактор (просмотр ленты -> расширенный редактор)

Вот код М:

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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .