Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
" ); wnd.document.close(); wnd.focus(); }
Страницы: 1
RSS
Power Query - Сравнение двух таблиц содержащие дубликаты
 
Добрый день. Необходимо с помощью Power Query сравнить две таблицы в которых содержаться дубликаты. Идеально подходило сделать Merge - Full Outer. позже оказалось, что в таблицах есть повторяющиеся строки и в результате полученная таблица оказалась не тем что ожидалось. Например, в Table1 есть 2 строки одинаковых позиций, а в Table2 - такая же позиция только запись содержиться в одной строке. Результат Merge: 2-2, а нужно 2-1.
Спасибо заранее!
Опыт и практика - великое дело! Век живи, Век учись!
 
Доброе время суток
Цитата
sanych09 написал:
Результат Merge: 2-2, а нужно 2-1.
А с какой из 2 должна соединиться 1? Какой в этом смысл? Если с любой, то делаете для двух таблиц локальное индексирование, то есть группировка Table.Grooup по Site ID, внутри группы к подтаблице добавляете индекс Table.AddIndexColumn, затем удаляете столбец группировки Table.RemoveColumns и разворачиваете столбец с подтаблицами Table.ExpandTableColumn. И делаете FullOuter по двум столбцам, Site ID и локального индекса.
 
Андрей, спасибо за ответ. До этого делал Group и индекс, до дальше не понимал как его связать. Сейчас попробую проделать что Вы мне посоветовали
Да с любой можно соединиться. Ну вот такая задача возникла. сидеть вилукапить и руками ковырятся просто не прилично :) как по мне. Смысл в том, что нужно найти что во второй таблице 2 не сходится с первой, по строчно (поэтому я Full Outer делал для Site ID-PO-Item). Дальше я уже добвлю столбец Conditional Column и пропишу, например, статутсы: такой-то айтем добавить в Табл2, такой-то изменить цену, такой-то удалить)
Опыт и практика - великое дело! Век живи, Век учись!
 
Тепер  стала понятна логига, которую Вы описали. Сделал для Table1 Group by (Site ID-PO-Item), добавил Index (чтобы видеть дублирующиеся строки). А как добавить столбец Индекса (скрин приложил), который дальше будет использоваться при Full Outer Join?
Capture.PNG (18.44 КБ)
Опыт и практика - великое дело! Век живи, Век учись!
 
вы просто не совсем туда добавили столбец с индексацией.
В ваш запрос Table1 вставьте вот такой код. Получите нужный вам результат. Если интересно, то вот здесь мне популярно разъясняли как можно делать всякое с таблицами при помощи функции Table.Group
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Grouped Rows" = Table.Group(Source, {"Site ID", "PO", "Item"}, {{"Index", each Table.AddIndexColumn(_, "Index", 1, 1), type table}}),
    #"Развернутый элемент Index" = Table.ExpandTableColumn(#"Grouped Rows", "Index", {"amount", "Index"}, {"amount", "Index.1"})
in
    #"Развернутый элемент Index"
Изменено: PooHkrd - 11 Апр 2018 09:18:08
 
Андрей VG, PooHkrd  - огромное спасибо! Век живи и учись!  
Опыт и практика - великое дело! Век живи, Век учись!
Страницы: 1
Читают тему (гостей: 1)
Наверх