Страницы: 1
RSS
Power Query - сравнение таблиц выдает много дублей ненужных
 
Здравствуйте, прикладываю файл для примера.

Учусь потихоньку Power Query.

2 таблицы. В одной 188 строк, во второй 201. Нужно перетащить один столбик из второй таблицы в первую. За сравнение брал как один, так и несколько одновременно столбцов.

Выбираю левое внешнее соединение (да и все остальные тоже попробовал уже), потом разворачиваю столбик нужный, и бац, в таблице становится 225 строк вместо желаемых 188. Вручную, конечно, можно запариться удалять лишние, но у меня 36 столбцов, замучаешься искать какие строки неправильные. Плюс хотелось бы научиться все-таки на будущее в том числе.

В целях обезличивания данных, придумал очень простой и маленький пример в прикрепленном файле (на деле все страшнее, но суть здесь точно такая же)

Может быть вообще нельзя сделать так, как я хочу, имея такие ограниченные и повторяющиеся данные? Может, надо вручную вписать какой-то столбец чтоб по ним можно было удачный результат получить?

Изменено: dimwits - 22.04.2025 17:12:39
 
Извиняюсь, не тот файл прикрепил, какой-то битый вышел, сейчас запощу новый…
 
Господи, ну что за напасть, какие-то глюки и с файлом, и с рабочим компом, ничего не понимаю. Модератор, удали, пожалуйста, эту тему, потом запощу нормально. Извините(
 
dimwits,это абсолютно стандартный для любого ЯП результат работы Join - все совпадения генерируют новую строку. ВПР в Excel, который берет первую попавшуюся строку, это как раз фишка только Excel.
Придумайте сочетание полей в качестве на 100% уникального идентификатора, либо удалите дубликаты в "правой" таблице - зачем тогда вам другие дублирующиеся данные, если вам нужна 1 строка?
Есть способы, чтобы и Join выдавал только первое совпадение, но не помню решение, либо по форму ищите, либо кто-то подскажет, наверно.
Но 100% способом и, в принципе, логичным, является удаление дубликатов в правой таблице.
Изменено: voler83 - 22.04.2025 18:44:29
 
voler83, спасибо за ответ, ну а если придумывать уникальный какой-то идентификатор, то это надо его во всех таблицы запихать одинаково, ведь объектов сотни, как я это сделаю вручную? У меня разное количество строк, разный порядок нумерации и тд в таблицах.

вот, наконец, могу нужный файл для примера загрузить:
 
dimwits, пример без разницы, вопрос ясен.
Уникальный идентификатор = значение столбца 1 & значение столбца2 & значение столбца N (="все значения из всех столбцов в одной строке в один текст") и в левой и в правой таблице - будет ли это уникальным идентификатором, или и в таком случае будут дубликаты - только вы знаете.

Почему не можете удалить дубликаты в правой таблице? Если вам нужны все дублирующие строки в правой таблице, то нет никакой логики пытаться избежать дублирования строк в левой таблице - в этом и есть смысл работы join, как он работает. Правая таблица должна быть справочником с уникальными значениями в нужном вам случае.
Изменено: voler83 - 22.04.2025 20:15:52
 
Здравствуйте
Посмотрите, может так подойдет (объединенную таблицу вывожу в ячейку I4):
 
dimwits, я удосужился посмотреть пример: при чем тут join,  PQ или ВПР? вы руками можете проставить в своем примере из второй таблицы соотвествующие данные?- нет не сможете, потому, что вы в принципе не понимаете, что у вас по партиям срок хранения разный, и не можете сформулировать задачу. У вас идентификатором будет код+ кол-во штук в партии, которые надо сгруппировать предварительно, либо код+год, либо код+год+кол-во штук в партии - что?
+ о каком-то "подразделении" неведомом еще речь идет.....
Изменено: voler83 - 22.04.2025 23:36:03
 
Aлeкceй, спасибо большое, понял логику)
Страницы: 1
Читают тему
Наверх