Найти уникальные значения и отобразить соответствующие значения в виде значений, разделенных запятыми, в Excel?

Найти уникальные значения и отобразить соответствующие значения в виде значений, разделенных запятыми, в Excel?

У меня есть таблица с большими данными, содержащими фамилию и домохозяйства семьи. И я пытаюсь получить их в уникальном списке, за которым следуют имена домохозяйств в виде значений, разделенных запятыми.

В таблице ниже поясняются входные данные и желаемый результат.

Уникальные значения и соответствующие столбцы

Вот необработанные данные.

Семья Имена
Смит Джейн
Бойер Аня
Миллер Катя
Смит Джон
Бойер Дуг
Бойер Сэм
Миллер Джо
Смит Джим
Бойер Джефф

Я нашеланалогичный запрос, но он был для Python. Я ищу что-то в Excel, что может это сделать. Я пробовал Pivot table, но это не работает, так как он пытается агрегировать его.

решение1

Существует множество способов достижения желаемого результата, вот несколько способов, которые я знаю на данный момент:

▶️ Использование Power Query, доступно в Windows Excel 2010+иExcel 365 (Windows or Mac)

введите описание изображения здесь


Чтобы использовать Power Query, выполните следующие действия:

  • Сначала преобразуйте исходные диапазоны в таблицу и назовите ее соответствующим образом. Для этого примера я назвал ееTable1

  • Далее откройте пустой запрос из DataTab --> Get & Transform Data--> Get Data--> From Other Sources-->Blank Query

  • Вышеуказанное позволяет Power Queryоткрыть окно, теперь из HomeTab --> Advanced Editor--> и вставьте следующее, M-Codeудалив все, что вы видите, и нажмитеDone

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Household", type text}, {"Names", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Household"}, {{"Names", each Text.Combine([Names],", "), type text}})
in
    #"Grouped Rows"

введите описание изображения здесь


  • Наконец, чтобы импортировать его обратно в Excel--> Нажмите Close & Loadили Close & Load To--> Первый нажатый элемент создаст файл New Sheetс требуемым выводом, а последний выведет окно с вопросом, куда поместить результат.

▶️ Использование GROUPBY()функции, доступной вMS365 Версия Office Insiders:

введите описание изображения здесь


=GROUPBY(A2:A10,B2:B10,ARRAYTOTEXT,,0)

▶️ Или, используя LAMBDA()вспомогательную функцию BYROW()--> Применимо к текущему каналуMS365

=LET(
     _data, A2:B10,
     _household, TAKE(_data,,1),
     _names, UNIQUE(_household),
     HSTACK(_names, BYROW(_names, LAMBDA(x, TEXTJOIN(", ",1,IF(x=_household,TAKE(_data,,-1),""))))))

▶️ Или, используя POWER PIVOT, доступно в Windows Excel 2013+иExcel 365 (Windows)

введите описание изображения здесь


Чтобы использовать Power Pivot, выполните следующие действия:

  • Сначала преобразуйте исходные диапазоны в таблицу и назовите ее соответствующим образом. Для этого примера я назвал ееTable_1

  • Выберите ячейку в ваших данных и нажмите InsertTab -> Нажмите Pivot Table--> Table/RangeБудет отображено как Table_1, Нажмите New Worksheetили Existing Worksheetпо вашему выбору, --> В последнем случае выберите местоположение ячейки и нажмите Add this data the Data Model.

  • Справа Pivot Tableпоявится панель полей, щелкните правой кнопкой мыши Table_1на панели и выберитеAdd Measure

  • Введите название меры по вашему выбору и введите следующую формулу в разделе формул:

=CONCATENATEX(Table_1,[Names],", ")

  • Нажмите «ОК», выберите Householdи поместите в ROWS«Область», а «Измерение» Name-CommaSeparated(используется в этом примере, вы можете изменить его) — в VALUES«Область».

  • На Designвкладке измените Report Layoutна Show in Tabular Form, затем щелкните Grand Totalsи выберите Off for Rows and Columns, и вы получите желаемый результат.

⏩ Другая альтернативная версия для Excel 2016+последующих версий:

введите описание изображения здесь


=SUBSTITUTE(CONCAT(IF(D2=A$2:A$10,","&B$2:B$10,"")),",",,1)

В приведенной выше формуле необходимо нажать CTRL+ SHIFT+ ENTERпри выходе из режима редактирования только для старых версий.


Связанный контент