Дубли продаж в Excel: как отличить повторную выгрузку от новой операции

Две строки продаж совпадают по дате, товару и сумме. Это может быть повтор одной выгрузки, а может — два покупателя, купивших одинаковый товар. Удаление дублей по видимым столбцам исправит первый случай и испортит второй. Начните с определения операции и её устойчивого ключа.

Найдите идентификатор события

Проверьте, есть ли в источнике ID продажи или сочетание ID документа и номера строки. Одна накладная может содержать несколько товаров, поэтому номера документа недостаточно. Дата, SKU и сумма обычно описывают признаки операции, но не гарантируют её уникальность.

Если ID отсутствует, договоритесь с владельцем системы о ключе или получите более подробную выгрузку. Для временного правила перечислите ограничения: какие операции оно может ошибочно объединить. Нельзя назвать найденные одинаковые строки дублями до выяснения их происхождения.

Разделите точный повтор и конфликт версий

Для одного operation_id могут повторно прийти совершенно одинаковые значения — например, при повторной загрузке файла. Другой случай: тот же ID пришёл с исправленной суммой. Тогда нужно правило выбора версии, а не простое удаление строк. Сохраните updated_at или номер версии из системы-источника.

В Power Query сначала сгруппируйте данные по бизнес-ключу и посмотрите число строк и варианты значимых полей. Table.Distinct удаляет повторы по выбранным столбцам, но при различных остальных значениях нельзя полагаться на произвольный выбор сохраняемой строки.

// Только для повторов, одинаковых по всем значимым полям:
Table.Distinct(Source, {"Branch", "OperationID", "SKU", "Amount"})

Проверьте правило на двух похожих случаях

В примере есть две самостоятельные продажи с разными ID и один повтор первой продажи. Удаление по ID и всем значимым полям оставит две операции на общую сумму 200. Если удалить по SKU и сумме, останется одна продажа и выручка уменьшится вдвое.

Для конфликтных значений одного ID сделайте отдельный запрос исключений. Когда источник предоставляет версии, выберите последнюю по явному правилу и сохраните возможность открыть историю. Не складывайте версии одной операции как независимые продажи.

Сверьте результат с источником

После очистки сравните число уникальных операций и сумму с контрольной выгрузкой. Посмотрите удалённые строки: откуда они пришли, повторяют ли один и тот же файл, нет ли совпадений между разными подразделениями. Иногда ID уникален только внутри филиала, и ключ должен включать филиал.

Для регулярной загрузки сохраняйте имя исходного файла. Оно помогает обнаружить повторную поставку одного периода, но само не заменяет бизнес-ключ: один файл может содержать операции за несколько дат, а разные файлы — пересекающиеся периоды.

В следующем месяце проверьте и повторную загрузку того же файла, и поступление корректировки. Хороший процесс повторяет приёмку, сохраняет отдельные реальные продажи и применяет исправления по понятной версии. Итоговый отчёт должен объяснять, почему изменились выручка и число операций.

Запишите правило дедупликации рядом с описанием данных. Коллеге потребуется знать, почему две визуально одинаковые строки остались в отчёте и в каких случаях один ID считается конфликтом. Это полезнее автоматической команды очистки без сохранённого основания.

Соберите обновляемый отчёт на практике

В программе есть урок «Повторная строка или отдельная продажа» и работа с объединением нескольких выгрузок. В платном курсе вы отработаете подготовку данных и проверку контрольных итогов при обновлении отчёта. Это помогает выбирать ключ по смыслу операции и видеть последствия очистки для выручки.

Откройте программу курса «Продвинутый Excel: Power Query, Power Pivot и автоматизация отчётов».

Начните с пробного урока о рабочей книге и первом запросе Power Query.

Для следующего этапа: объединение файлов из папки и обновление отчёта.

Продолжить на практике