© Сорокин Б.Б. 2016 г.

Поиск новых значений

Используя сводную таблицу в сочетании с функцией ВПР() можно производить поиск новых значений в базе данных относительно предыдущей версии.

Постараюсь объяснить этот вопрос подробнее.

Допустим имеем жестко заданную форму по которой надо периодически, каждые десять дней проводить отчетность.

Заданная форма отчетности

В эту таблицу данные по количеству МНН и сумме попадают после обработки базы и выбираются с помощью функции ВПР() по номеру Г/К (госконтракта). Номера Г/К в таблицу вносятся руками (так просто удобнее). Соответственно если в таблице присутствуют не все Г/К, которые есть в базе то и данные по этим Г/К в таблицу не попадут. Таким образом возникает ошибка.

Конечно, можно первый раз сгруппировать все Г/К, аккуратно внести их в эту таблицу, но через 10 дней в базе появятся новые Г/К и их надо будет искать "руками" сравнивая эту таблицу с базой. Это неудобно, приводит к ошибкам, а при больших объемах практически невозможно.

Чтобы решить проблему создадим сводную таблицу которая будет выбирать и группировать существующие номера Г/К из базы каждый раз после ее обновления.

Сводная таблица

На рисунке в столбце "А" сгруппированы все имеющиеся в базе наименования Г/К. В столбце "С" введена функция ВПР() смысл которой состоит в следующем. Функция берет наименование Г/К из столбца "А" и ищет его в области "Таблица!$J$6:$J$132". Это и есть столбец "№ г/к" в выходной таблице (см. предыдущий рисунок). Если функция находит искомый номер Г/К она его возвращает (см. ячейку С6). Если функция ВПР искомый номер Г/К в выходной таблице не находит она возвращает "#Н/Д" (см. ячейку С7) и это говорит о том что искомого номера Г/К в выходной таблице нет и данные по нему туда не попадают. В приведенном рисунке это касается Г/К "110/1-6.14/12Л/57/1А".

Таким образом после обновления базы мы сразу можем увидеть какие появились новые Г/К и вставить их в выходную таблицу.

После появления нового Г/К в выходной таблице "#Н/Д" заменяется на номер Г/К "110/1-6.14/12Л/57/1А" (см. рисунок ниже).

Обновление таблицы

Построенная по такому принципу проверка наличия новых данных относительно предыдущих достаточно проста и удобна.