ПРОСМОТРX нашёл цену, но не ту: как проверить неоднозначный ключ

ПРОСМОТРX вернул цену без ошибки, но менеджер увидел тариф другого региона. В справочнике один товар встречается несколько раз, а поиск выполнен только по артикулу. Совпадение найдено технически, но условие выбора цены описано неполно. Сначала надо проверить ключ, затем выбирать значение.

Выясните, от чего зависит цена

Цена может зависеть от товара, региона, канала и периода действия. Запишите эти признаки отдельно. Если в справочнике две строки одного SKU для разных регионов, это допустимая структура, а не дубликат. Поиск по одному полю не умеет понять, какой регион нужен пользователю.

ПРОСМОТРX по умолчанию ищет точное совпадение, но наличие первого подходящего значения не доказывает уникальность. Изменение направления поиска может выбрать последнюю строку и случайно скрыть неоднозначность. Такое исправление годится только при заранее определённом правиле порядка.

Проверьте число совпадений

Для простого справочника с одной ценой на SKU добавьте СЧЁТЕСЛИ. Если совпадение одно, выполняйте поиск; если ноль — сообщайте об отсутствии; если больше одного — выводите конфликт. В примере код товара стоит в A2, таблица названа Тарифы. Формула показывает разные состояния, не подменяя их ценой 0.

Если реальная цена зависит от региона, считайте совпадения по двум условиям и ищите по тому же полному ключу. Проверка и поиск должны задавать одинаковое условие: иначе первая подтвердит уникальность одного набора строк, а второй выберет другой.

=ЕСЛИ(СЧЁТЕСЛИ(Тарифы[SKU];A2)=0;"Нет товара";ЕСЛИ(СЧЁТЕСЛИ(Тарифы[SKU];A2)=1;ПРОСМОТРX(A2;Тарифы[SKU];Тарифы[Цена]);"Неоднозначный ключ"))

Посмотрите строки конфликта

Для повторяющегося ключа выведите все строки через ФИЛЬТР или отдельный запрос. Сравните регион, дату действия и валюту. Это помогает решить, надо ли расширить ключ, исправить справочник или выбрать действующую запись на дату.

Пустая цена в найденной строке — ещё одно отдельное состояние. Поиск нашёл объект, но значение не заполнено. Отсутствующий товар и незаполненная цена требуют разных действий владельца данных. Сохраните это различие в отчёте исключений.

Проверьте следующую выгрузку

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

Для регулярного отчёта вынесите проверку уникальности в отдельный контрольный столбец или запрос. Пользователю удобнее получить список проблемных товаров, чем искать текстовые сообщения внутри итоговой суммы. Расчёт выручки и маржи выполняйте только по согласованным значениям.

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

После передачи отчёта коллеге попросите его добавить повторный ключ в учебную копию. Понятное сообщение о конфликте подтвердит, что проверка работает, а результат не зависит от случайного порядка строк.

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

На курсе вы разберёте ПРОСМОТРX и неоднозначные ключи, затем поиск по нескольким условиям. В практикуме по продажам потребуется присоединять себестоимость и проверять появление нового товара. Это помогает связать удобную формулу с правилом выбора именно той строки, которая нужна расчёту.

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

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

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

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