#excel #merge #powerquery
Вопрос:
Я пытаюсь понять, как объединить две таблицы и чтобы совпадающие строки в первой таблице появлялись только один раз с уникальным значением из второй таблицы.
У меня есть два столика. Ради этого вопроса я собрал здесь все в одну картину. У меня есть таблица заказов, которая окрашена в зеленый цвет. У меня есть несколько номеров заказов на конкретные детали для каждого заказа. Каждый заказ сортируется по приоритету для заказа; 1 является наивысшим приоритетом, который необходимо выполнить в первую очередь.
Синим цветом обозначена моя таблица запасов. Это то, что в настоящее время хранится на складе. Каждая деталь имеет серийный номер, а некоторые детали расположены на разных полках.
Неокрашенная таблица-это то, что я хочу, чтобы мой конечный результат был с помощью Power Query. Заказы с наивысшим приоритетом заполняются первым серийным номером, доступным в инвентаре. Затем следующий заказ заполняется следующим серийным номером и так далее, пока не останется запасов; в этом случае запрос будет просто пустым.
Ради вопроса, вот как выглядели таблицы до моих попыток слияния.
Я пробовал все типы слияний и комбинаций сортировки, но независимо от того, что я делаю, я получаю дубликаты, удаленные заказы на всю строку или неправильное выполнение приоритетов. У меня есть рабочая формула, которую я использую в Excel; формула массива, которую я могу опубликовать, если это поможет, но поскольку мы движемся к Power Query, я действительно хочу узнать, как это сделать, если это возможно. Я уверен, что в этой задаче есть что-то легко логичное, что я упускаю из виду, поэтому любая помощь поможет. Спасибо.
Ответ №1:
Если вы создадите сгруппированный столбец индекса, вы можете затем объединить его.
Как для таблицы заказов, так и для таблицы запасов выполните операцию Группирования по столбцу ДЕТАЛЬ#.
Новое Имя Столбца = Все, Операция = Все Строки
Если столбец Все еще сгруппирован, добавьте новый пользовательский столбец с именем GROUP_INDEX. Используйте этот код:
Table.AddIndexColumn([All],"Index",1)
Теперь вы можете удалить столбец Все. Разверните столбец GROUP_INDEX, чтобы развернуть другие столбцы (за исключением ЧАСТИ#).
Теперь вы можете объединить обе таблицы. Убедитесь, что ваша таблица заказов находится в левой (верхней) таблице. Объедините столбцы НОМЕР ДЕТАЛИ И индекс. Выберите Левое внешнее соединение.
Выход: