Как удалить дубликаты в Power BI

Вы попали на это руководство, потому что нужно удалить дубликаты в Power BI. Здесь вы найдёте всё, что нужно: от быстрых кликов в интерфейсе до формул DAX и советов, когда методы не срабатывают.
Дубликаты нарушают целостность данных и приводят к неверным отчётам и KPI. Power BI предлагает несколько способов обнаружения и удаления повторяющихся строк — в интерфейсе Power Query, при загрузке в модель и средствами DAX.
Основные понятия
- Дубликат: строка, у которой совпадают значения в наборе контрольных колонок.
- Уникальность: однозначность значения в пределах столбца или комбинации столбцов.
- Power Query: среда подготовки данных в Power BI, где выполняются трансформации до загрузки в модель.
- DAX: язык выражений, используемый для вычислений и создания новых таблиц/мерриксов в модели данных.
Удаляет ли Power BI дубликаты автоматически?
Да и нет — всё зависит от шага обработки.
- При импорте Power BI может устранить очевидные дубликаты строк в модели, если вы используете конкретные операции Power Query перед загрузкой. Однако Power BI не «угадывает» бизнес-правила уникальности — вы должны явно указать, по каким колонкам сравнивать строки.
- Power BI автоматически не удалит дубликаты, которые зависят от логики (например, оставить последнюю по дате). Такие правила нужно задавать вручную.
Преимущества использования Power BI для удаления дубликатов:
- Автоматизация: трансформации выполняются по заданной последовательности шагов (Applied Steps). После настройки — повторяемо и быстро.
- Настраиваемость: можно выбрать одну или несколько колонок для сравнения, задавать операции (макс/мин, первая/последняя) при группировке.
- Интеграция: Power Query работает с множеством источников, трансформации применимы перед загрузкой.
Важно: автоматизация не отменяет проверки. Всегда визуально и по выборочным записям верифицируйте результаты.
Как удалить дубликаты в Power BI — три основных подхода
1. Удаление дубликатов через группировку (оставить последнюю запись)
Этот метод подходит, когда нужно оставить одну строку из группы дубликатов по ключу и выбрать, какую именно — например, с максимальной датой.
Шаги:
- В Power Query в меню выберите Home (Главная) → Group By.

- В диалоге выберите колонку(ы), по которым группировать, и для Operation укажите Max (или Min / Last / First в зависимости от требуемой логики). Это сохранит строку с максимальным значением в выбранной колонке.

- Нажмите OK — Power Query создаст новую таблицу, где каждая группа представлена одной записью.
Когда использовать:
- Нужно оставить последнюю/последнюю по дате запись.
- Важна одна агрегированная точка данных на ключ.
Ограничения:
- При агрегации другие невыбранные поля теряют детализацию — их нужно агрегационно обработать (например, сохранить MAX/Min или объединить текст).
2. Удаление дубликатов с помощью функции Remove Duplicates (Power Query)
Этот способ прост и чаще всего используется для быстрого удаления полных дубликатов или дубликатов по отдельной колонке.
2.1 Удаление по одной колонке
- В Power Query выберите таблицу с дубликатами.
- Кликните по заголовку столбца, по которому хотите убрать повторения.

- На вкладке Home (Главная) разверните Remove rows (Удалить строки) и выберите Remove duplicates (Удалить дубликаты).

Power Query применит шаг Table.Distinct к выбранному столбцу — это удалит повторяющиеся значения в этой колонке, оставив первую встречающуюся запись и удаляя повторные строки по этому столбцу.
Просмотрите формулу в строке формул: она покажет, что операция затронула только выбранный столбец.

Когда использовать:
- Нужны уникальные значения в одном столбце, остальные колонки можно игнорировать или они одинаковы.
Ограничения:
- Оставляется первая найденная запись. Если важна другая (например, последняя по дате), сначала отсортируйте таблицу по нужному столбцу, затем примените Remove duplicates.
2.2 Удаление по нескольким колонкам (вся таблица)
- Выберите таблицу в Power Query.
- Выделите верхнюю левую клетку перед заголовками столбцов (что означает выбор всей таблицы) или выделите несколько столбцов, которые образуют ключ.

- Нажмите Remove duplicates — это удалит строки, у которых полностью совпадает значение во всех выбранных столбцах.

Когда использовать:
- Нужна строгая уникальность по набору колонок (натуральный ключ).
- Данные небольшие или вы точно знаете, какие поля образуют уникальность.
Ограничения:
- Операция чувствительна к пробелам и регистру: ‘Москва’ ≠ ‘москва’. При необходимости примените Trim и Lowercase перед удалением.
3. Удаление дубликатов средствами DAX
DAX полезен, когда требуется создать таблицу уникальных значений для аналитики или вычислить число уникальных элементов.
Примеры:
Создать таблицу уникальных категорий (таблица Table1, столбец Category):
UNIQUE_Categories = DISTINCT(Table1[Category])Посчитать количество уникальных категорий:
UniqueCategoryCount = COUNTX(DISTINCT(Table1[Category]), Table1[Category])Альтернатива: используйте функцию DISTINCTCOUNT для прямого подсчёта уникальных значений в столбце:
UniqueCategoryCount2 = DISTINCTCOUNT(Table1[Category])Когда использовать DAX:
- Нужна таблица справочных значений (lookup) или вычисляемая метрика по уникальным элементам.
- Когда данные уже загружены в модель и вы не хотите менять шаги Power Query.
Ограничения:
- DAX не изменяет исходные строки в источнике; он создаёт вычисляемые таблицы или меры. Для постоянного удаления лучше применить трансформации в Power Query.
Практические советы и отладка
- Всегда создавайте копию шага перед удалением дубликатов — это позволит откатить изменения.
- Для сохранения последней записи по дате: отсортируйте таблицу по дате в порядке убывания, затем примените Remove duplicates для ключевых колонок — так Power Query сохранит первую (т.е. последнюю по дате) запись.
- Устранение пробелов и разного регистра: применяйте Trim и Text.Lower/Upper перед удалениями.
- Для больших таблиц проверьте производительность: операции Distinct/Group By могут быть ресурсоёмкими.
Важно: проверьте исходные типы данных — сравнения работают корректно только если типы согласованы (даты с датами, числа с числами).
Когда методы не сработают — примеры и обходные пути
- Повторяющиеся строки отличаются неочевидными символами (невидимые пробелы, неразрывные пробелы). Решение: использовать Text.Trim, заменить неразрывные пробелы.
- Дубликаты определяются по сложной логике (например, похожие имена — «Иванов» и «Иванов П.»). Решение: применить fuzzy matching (нечёткое сопоставление) или регулярные выражения перед агрегацией.
- Требуется удалить дубликаты в потоковой вставке (DirectQuery). В DirectQuery меньше трансформаций в Power Query; лучше решить на стороне источника или в SQL-запросе.
Чеклист ролей — кто что должен проверять
- Аналитик:
- Проверить логику уникальности — какие колонки образуют ключ.
- Запустить выборочные проверки до/после удаления.
- BI-разработчик:
- Автоматизировать шаги в Power Query и документировать их.
- Оптимизировать порядок шагов для производительности.
- Владелец данных:
- Утвердить бизнес-правило о том, какую запись сохранять (первая, последняя, агрегированная).
Критерии приёмки
- Количество строк уменьшилось ожидаемо (сравнить счётчики до/после).
- На выборочной подвыборке нет потерянных нужных записей.
- Отчёты на основе очищенных данных дают ожидаемые KPI.
Быстрая шпаргалка (cheat sheet)
- Удалить дубликаты по столбцу: Выделите столбец → Home → Remove rows → Remove duplicates.
- Удалить дубликаты по нескольким столбцам: выделите соответствующие столбцы → Remove duplicates.
- Сохранить последнюю запись по дате: отсортировать по дате (убывание) → Remove duplicates по ключу.
- Создать таблицу уникальных значений (DAX): DISTINCT(Table[Column]).
Принятие решений — простая диаграмма
flowchart TD
A[Есть дубликаты?] -->|Нет| B[Ничего не делать]
A -->|Да| C{Нужно сохранить определённую запись?}
C -->|Да| D[Сортировать по ключу и Remove duplicates]
C -->|Нет| E{Уникальность по одной колонке?}
E -->|Да| F[Remove duplicates на колонке]
E -->|Нет| G[Remove duplicates по набору колонок]
D --> H[Проверить результат и сохранить]
F --> H
G --> HГлоссарий (одной строкой)
- Power Query — среда подготовки данных перед загрузкой в модель Power BI.
- DAX — язык выражений для вычислений в модели Power BI.
- Distinct — операция выбора уникальных значений.
- Group By — операция группировки с агрегацией значений.
Короткий план действия (SOP)
- Определите ключи уникальности и требуемую бизнес-логику (первая/последняя по дате).
- Подготовьте данные: Trim, Lowercase, привод к правильным типам.
- Для сохранения последней записи: отсортируйте → Remove duplicates.
- Для агрегированной записи: Group By с нужной агрегацией.
- Проверка: сравните счётчики до/после и выполните выборочную ручную проверку.
- Документируйте шаги и опубликуйте отчёты.
Заключение
Удаление дубликатов в Power BI — рутинная, но критически важная часть подготовки данных. Выберите инструмент в зависимости от задачи: Power Query для постоянного удаления и трансформаций перед загрузкой, DAX для вычислений и аналитики внутри модели. Всегда проверяйте результат и документируйте бизнес-правила, чтобы повторяемость и прозрачность процессов были на высоком уровне.
Примечание: расскажите в комментариях, какой метод оказался удобнее в вашем рабочем процессе — Power Query или DAX.
Похожие материалы
Linux Terminal на Pixel — включение и возможности
Исправить ошибку wow-64.exe в World of Warcraft
Добавить и редактировать текст в Paint 3D
Ошибка 509: как исправить Bandwidth Limit Exceeded
Удалить скрытую персональную информацию в Office