В каком порядке удаляются дубликаты в Power Query? - PullRequest
1 голос
/ 10 января 2020

При запуске команды «Удалить дубликаты» в Power Query, остается ли 1-й экземпляр один, а затем удаляются все последующие дубликаты? Например, если бы в строках 10,11 и 12 были дубликаты, удалились бы строки 10 и 11? Где-нибудь есть документация?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 января 2020

Насколько мне известно, удаление дубликатов приведет к удалению элементов в порядке, в котором данные были изначально загружены в Power Query. Любая сортировка или другие операции, выполненные после загрузки данных, не будут учитываться при этом. Таким образом, дубликаты элементов в строках 11 и 12 будут удалены в вашем примере, даже если вы отсортировали данные таким образом, чтобы элементы в строках 11 и 12 были теперь над элементом в строке 10.

Можно сделать удаление дубликаты следуют текущему порядку сортировки, если вы используете функцию Table.Buffer () для данных перед использованием функции удаления дубликатов в PQ (фактическая функция, которую она выполняет, Table.Distinct (). Это потому, что Table.Buffer () загружает table в текущем состоянии вызывается в память, и это сбрасывает порядок «загрузки», который используется для удаления дубликатов с помощью Table.Distinct.

На практике самый простой способ сделать это выглядит как изменение функции по умолчанию когда вы используете Удалить Дубликаты из этого

= Table.Distinct(#"Sorted Rows", {"DuplicateColumn"})

к этому

= Table.Distinct(Table.Buffer(#"Sorted Rows"), {"DuplicateColumn"})
0 голосов
/ 10 января 2020

Не уверен насчет документации, но по опыту: да, первый элемент сохранен, все последующие дубликаты будут удалены.

С этими знаниями вы можете использовать столбцы индекса для управления порядком ввода если порядок по умолчанию не дает желаемого результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...