Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Не удаляются дубликаты в Power Query, -
 
Коллеги, доброго дня!

Столкнулся с такой проблемой. Пытаюсь построить модель данных в PowerPivot. Для связи двух таблиц по типу many-to-many создал "мост" который в Power Query соединяет общее поле из двух таблиц и удаляет из них дубликаты (сначала я делаю trim, потом clean, удаляю ошибки и пустые поля, затем удаляю непосредственно дубликаты). Функция distinctcount в PowerPivot показывает что дублей нет (столбец distinctcount сохранил в примере). Но если в экселе проверить по формуле счётесли то встречаются дубли. Моя логика убита.
Прошу подсказать в чем тут дело? Есть какие-то скрытые символы которые PowerQuery не удаляет в ходе trim & clean?

Файл около 2мб, даю ссылку на яндекс диск.

Заранее спасибо!
 
Доброе время суток.
Цитата
brotheralex написал:
Функция distinctcount в PowerPivot показывает что дублей не
Distinct Count показывает количество уникальных, то есть если в столбце 5 Петровых и 6 Ивановых, то функция вернёт, что у вас есть всего две фамилии. Если у вас таблица, загружаемая из Power Query в Power Pivot с одним столбцом, просто добавьте Table.Distinct над выходной таблицей, чтобы были только уникальные названия.
Успехов.
 
Андрей, спасибо.
PowerQuery показывает что после Table.Distinct остаётся 46701 строк.
DistinctCount в PowerPivot посчитал 46570 значений.
Проблема не решена, к сожалению.
 
brotheralex, ну вот зачем опять цитируете, да ещё целиком всё сообщение? Кнопка цитирования не для ответа!
 
Цитата
brotheralex написал:
PowerQuery показывает что после Table.Distinct остаётся 46701 строк.
DistinctCount в PowerPivot посчитал 46570 значений.
Какие ваши доказательства? У меня по вашему файлу результат и в том и другом случае равный 46570.
 
Цитата
Андрей VG написал: Какие ваши доказательства?
У меня вот такой получается код:
Код
 Source = Table.Combine({#"Contract№_VendorID_VDB", #"Contract№_VendorID_PO"}),
   #"Removed Blank Rows" = Table.SelectRows(Source, each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
   #"Trimmed Text" = Table.TransformColumns(#"Removed Blank Rows",{},Text.Trim),
   #"Cleaned Text" = Table.TransformColumns(#"Trimmed Text",{},Text.Clean),
   #"Removed Duplicates" = Table.Distinct(Source[[#"Column1"]]),
   #"Renamed Columns" = Table.RenameColumns(#"Removed Duplicates",{{"Column1", "Contract№_VendorID"}})
Число строк всё равно 46 701. Не понимаю.
Снимок.PNG (2.17 КБ)
Изменено: brotheralex - 30 Июл 2017 11:21:10
 
brotheralex, вы хотите сказать, что подавая на вход Power Pivot PQ запрос, содержащий конечным  #"Renamed Columns" из приведённого куска кода, а затем строя меру с DistinctCount, вы получаете разное количество уникальных Contract№_VendorID? Честно говоря, не верю. Источник данных и организацию подключения в Power Pivot вы, увы, не предоставили.
 
Кажется понял в чём проблема. Power Pivot и Power Query по разному трактуют равенство строк по умолчанию. В Power Pivot без учёта регистра, в Power Query - с учётом регистра. Тогда для Table.Distinct нужно явно указывать сравнение без учёта регистра.
Успехов.
 
Вот, не успел написать :) Регистр-регистр
F1 творит чудеса
 
Offtop:
Цитата
Максим Зеленский написал:
Вот, не успел написать
Не мудрено, с прошедшим Днём Рожденья!
 
Спасибо, Андрей!
F1 творит чудеса
 
Цитата
Андрей VG написал:
Тогда для Table.Distinct нужно явно указывать сравнение без учёта регистра.
Андрей, спасибо большое. Дело было в регистре.
Страницы: 1
Читают тему (гостей: 1)
Наверх