Создать все возможные уникальные комбинации из двух столбцов Excel - PullRequest
1 голос
/ 05 мая 2019

У меня есть следующий упрощенный набор данных, из которого мне нужно создать уникальный список и перенести данные из столбца B одновременно.Я думаю, что мне нужно использовать INDEX, но я не уверен в правильном синтаксисе для этого сценария.

Данные в столбце B разделены пробелом.

Вот так выглядят мои данные:

|---------------------|------------------|
|      Column A       |      Column B    |
|---------------------|------------------|
|          1          |       AA BB      |
|---------------------|------------------|
|          2          |       BB CC      |
|---------------------|------------------|
|          3          |       DD EE      |
|---------------------|------------------|

Требуемый результат

|---------------------|------------------|
|      Column A       |      Column B    |
|---------------------|------------------|
|          1          |         AA       |
|---------------------|------------------|
|          1          |         BB       |
|---------------------|------------------|
|          2          |         BB       |
|---------------------|------------------|
|          2          |         CC       |
|---------------------|------------------|
|          3          |         DD       |
|---------------------|------------------|
|          3          |         EE       |
|---------------------|------------------|

Ответы [ 2 ]

1 голос
/ 06 мая 2019

Чтобы получить выходную таблицу с учетом входной таблицы, вы можете использовать Power Query из пользовательского интерфейса всего за несколько шагов:

  • Разделить столбец B разделителем space.
  • Выберите столбец A, а затем выберите unpivot other columns
  • Удалите лишний столбец Attribute, который появляется при отключении.

Это код M для этой операции

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", type text}}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Column2", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column2.1", "Column2.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column2.1", type text}, {"Column2.2", type text}}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type1", {"Column1"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"})
in
    #"Removed Columns"

И результаты:

enter image description here

0 голосов
/ 06 мая 2019

Ответ Рона Розенфельда выводит данные в виде ОП, указанного в требуемом результате.

Если вам нужно создать все комбинации данных из двух столбцов (а не отключать их), нормализуйте данные, поместив каждый набор значений в отдельный столбец. В этом примере столбец B содержит две записи данных на ячейку, которые можно разделить с помощью Data > Text to Columns. Чтобы работать с уникальными записями, используйте стандартный инструмент Excel Data > Remove Duplicates или в редакторе запросов Power Excel, щелкните правой кнопкой мыши заголовок столбца данных и выберите Remove Duplicates.

Создание отдельных запросов для каждого столбца, который будет включен в комбинации. Добавив пользовательский столбец с формулой, относящейся к первому запросу данных, Power Query выполнит полное внешнее объединение для двух столбцов, что приведет ко всем комбинациям.

Результат финального стола

Final data table


Шаг 1: Данные> Текст в столбцы

(a) Выберите столбец B. На ленте выберите «Данные»> «Текст в столбцы».

Excel data table

image Text to Columns">


(b) Разделить данные по соответствующему разделителю (пробел, табуляция и т. Д.).

Select delimiter


Шаг 2. Объединение данных и удаление дубликатов

(a) Вырезать данные из столбца C и вставить в столбец B

Three columns of data

(b) Вставить данные столбца C в столбец B.

Combined column data

(c) Выберите столбец B, а затем нажмите «Данные»> «Удалить дубликаты»

Remove duplicates

(d) Если появится предупреждение о данных, найденных рядом с выбором, нажмите «Продолжить с текущим выбором»

Remove duplicates warning

(e) Установите флажок для столбца B и нажмите OK.

Select columns to remove duplicates

Шаг 3. Создание запроса данных для столбца A

(a) Выберите столбец A и щелкните Данные> Из таблицы / диапазона

Data - From Table/Range

(b) Настройки запроса> СВОЙСТВА> Имя и введите имя «Столбец А»

(c) Home> Закрыть и загрузить> Закрыть и загрузить в ...

(d) Выберите: только создать соединение

Query Settings - enter name

Шаг 4. Создание запроса данных для столбца B

(a) Выберите столбец B

(b) Данные> Из таблицы / диапазона

Column B data query

(c) Настройки запроса> СВОЙСТВА> Имя и введите имя «Колонка B»

(d) Добавить столбец> Пользовательский столбец

image Custom Column">

(e) Новое имя столбца: Комбинации

(f) Пользовательская формула столбца: = СтолбецA

Custom column formula

(g) Развернуть новый столбец «Комбинации» (значок со стрелками влево / вправо)

Expand new Combinations column

(h) Перетащите столбец «Комбинации» влево

(i) Home> Закрыть и загрузить

Шаг 5. Сортировка таблицы выходных данных

Sort data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...