Запрос Мощности: Объединяйте Только Уникальные Значения Один Раз

#excel #merge #powerquery

Вопрос:

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

У меня есть два столика. Ради этого вопроса я собрал здесь все в одну картину. У меня есть таблица заказов, которая окрашена в зеленый цвет. У меня есть несколько номеров заказов на конкретные детали для каждого заказа. Каждый заказ сортируется по приоритету для заказа; 1 является наивысшим приоритетом, который необходимо выполнить в первую очередь.

Синим цветом обозначена моя таблица запасов. Это то, что в настоящее время хранится на складе. Каждая деталь имеет серийный номер, а некоторые детали расположены на разных полках.

Неокрашенная таблица-это то, что я хочу, чтобы мой конечный результат был с помощью Power Query. Заказы с наивысшим приоритетом заполняются первым серийным номером, доступным в инвентаре. Затем следующий заказ заполняется следующим серийным номером и так далее, пока не останется запасов; в этом случае запрос будет просто пустым.

Пример Таблиц

Ради вопроса, вот как выглядели таблицы до моих попыток слияния.

Таблица Заказов

Таблица Запасов

Я пробовал все типы слияний и комбинаций сортировки, но независимо от того, что я делаю, я получаю дубликаты, удаленные заказы на всю строку или неправильное выполнение приоритетов. У меня есть рабочая формула, которую я использую в Excel; формула массива, которую я могу опубликовать, если это поможет, но поскольку мы движемся к Power Query, я действительно хочу узнать, как это сделать, если это возможно. Я уверен, что в этой задаче есть что-то легко логичное, что я упускаю из виду, поэтому любая помощь поможет. Спасибо.

Ответ №1:

Если вы создадите сгруппированный столбец индекса, вы можете затем объединить его.

Как для таблицы заказов, так и для таблицы запасов выполните операцию Группирования по столбцу ДЕТАЛЬ#.

Новое Имя Столбца = Все, Операция = Все Строки

Если столбец Все еще сгруппирован, добавьте новый пользовательский столбец с именем GROUP_INDEX. Используйте этот код:

 Table.AddIndexColumn([All],"Index",1)
 

Теперь вы можете удалить столбец Все. Разверните столбец GROUP_INDEX, чтобы развернуть другие столбцы (за исключением ЧАСТИ#).

Теперь вы можете объединить обе таблицы. Убедитесь, что ваша таблица заказов находится в левой (верхней) таблице. Объедините столбцы НОМЕР ДЕТАЛИ И индекс. Выберите Левое внешнее соединение.

Выход:

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