Темы статей
Выбрать темы

Заполнение реестра с помощью функции «ВПР»

Редакция БК
Ответы на вопросы

Заполнение реестра с помощью функции «ВПР»

 

Уважаемая редакция! Часто приходится формировать различные реестры в Excel. Когда значения в данных отличаются, срабатывает автозаполнение по первой букве. Но в моем случае данные похожи (номера счетов, первые символы в названии предприятий и т. п.). В такой ситуации автозаполнение Excel не помогает. Подскажите, как решить проблему? Спасибо.

А. Васильев, г. Харьков

Отвечает Николай КАРПЕНКО, канд. техн. наук, доцент кафедры прикладной математики и информационных технологий Харьковской национальной академии городского хозяйства

 

Насколько понятно из вопроса, речь идет о заполнении базы данных. Действительно, Excel предлагает несколько способов, которые хорошо себя зарекомендовали при наличии четко выраженного

отличительного признака в разных элементах данных. Когда такого признака нет, придется его внедрить и сделать автозаполнение на основе формул. Я покажу это на примере из своей практики.

Мне понадобилось создать реестр договоров с контрагентами, изображенный на рис. 1. База данных была большая, но вся информация касалась двух десятков контрагентов. Печатать все данные, конечно, не хотелось. Я воспользовался справочником и для этого создал лист. В примере на рис. 1 он называется «

Спр». На нем подготовил данные, как показано на рис. 2.

img 1

img 2

Важно!

Справочник «Спр» должен быть отсортирован по возрастанию поля «№».

Внешне эти две таблицы очень похожи, но между ними есть принципиальное отличие — это база данных. В ней много строк, каждая из них описывает данные конкретного договора. В разных договорах с одним предприятием информация о контрагенте повторяется, а вот сумма договора и его номер (колонка «№ дог») уникальны. На листе «Спр» записан справочник с данными о контрагентах. Никаких повторений здесь нет: одна строка — один контрагент. Поля «№ дог», «Дата» и «Сумма договора» в справочнике отсутствуют.

Для связи между таблицами я ввел рабочее поле «№». Оно указывает номер контрагента на листе «Спр». Осталось сделать автоматическое заполнение полей в «База» для контрагента с номером в поле «№». Для этого воспользуемся функцией «ВПР()». Описывать работу функции подробно не буду, поэтому сразу дам формулы. Они показаны в таблице.

 

Адрес ячейки

Формула

Что означает

D2

=ЕСЛИ($A2=";";ВПР($A2;Спр!$A:$K;2))

Подставляет из справочника наименование предприятия

Е2

=ЕСЛИ($A2=";";ВПР($A2;Спр!$A:$K;3))

Подставляет адрес предприятия

F2

=ЕСЛИ($A2=";";ВПР($A2;Спр!$A:$K;4))

Подставляет из справочника ОКПО

G2

=ЕСЛИ($A2=";";ВПР($A2;Спр!$A:$K;5))

Подставляет номер расчетного счета

H2

=ЕСЛИ($A2=";";ВПР($A2;Спр!$A:$K;6)

Подставляет наименование банка

I2

=ЕСЛИ($A2=";";ВПР($A2;Спр!$A:$K;7)

Подставляет МФО

J2

=ЕСЛИ($A2=";";ВПР($A2;Спр!$A:$K;8)

Подставляет Ф. И. О. руководителя

L2

=ЕСЛИ($A2=";";ВПР($A2;Спр!$A:$K;9)

Подставляет налоговый номер плательщика НДС

M2

=ЕСЛИ($A2=" ";"";ВПР($A2;Спр!$A:$K;10)

Подставляет номер свидетельства плательщика НДС

 

Поясню работу формул на примере ячейки «

D2». Мне нужно заполнить строку для контрагента «ЧП Омега». В справочнике «Спр» его номер «1». Печатаю в ячейку «A2» единицу. Смотрим, что сделает формула в «D2». Функция «Если()» проверяет условие «$A2=""».

Важно!

Между кавычками в выражении «$A2=""» пробела нет. Абсолютный адрес для колонки нужен: мы будем копировать формулу вправо, но идентификатор столбца должен быть неизменным.

Если в «

A2» записана пустая строка (нет номера контрагента), формула вернет пустое значение («""»), иначе начнет работать «ВПР ($A2;Спр!$A:$K;2)». Первый параметр функции — это искомое значение, т. е. номер контрагента в справочнике. Для «D2» он равен «1». Адрес справочника в «ВПР» указан вторым параметром. Это блок колонок «$A:$K» на листе «Спр».

Важно!

Абсолютная адресация колонок обязательна, так как мы будем копировать формулу вправо.

Для функции «

ВПР» все колонки справочника пронумерованы слева направо начиная со значения «1». Функция просматривает первую колонку, находит в ней номер контрагента (значение «1»). Результат поиска находится в «A2». В качестве результата функция возвращает значение из ячейки в той же строке со смещением «2», т. е. «B2». Там находится наименование предприятия. Остальные формулы работают по тому же принципу, отличается только величина смещения.

Теперь о том, как пользоваться таблицей. Я поступил старым дедовским методом. Напечатал справочник. Скотчем прикрепил внизу к корпусу экрана монитора, чтобы он всегда был перед глазами. Теперь, заполняя базу, мне достаточно ввести номер контрагента, дату, сумму и номер договора. Остальные поля Excel заполнит автоматически.

Формулы в таблице можно усовершенствовать. Например, если в колонку «

№» напечатать «пробел», то функция поиска выдаст ошибку: она не сможет отыскать такого значения в первой колонке справочника. Решить проблему просто: нужно воспользоваться функцией «Епусто()» в сочетании с логический проверкой «ИЛИ». Формула будет выглядеть так: «=ЕСЛИ(ИЛИ(ЕПУСТО($A2);$A2=" ");"";ВПР($A2;Спр!$A:$K;2))». В ней выражение «ЕПУСТО($A2)» проверяет, чтобы в «A2» стояло не пустое значение, иначе функция вернет «Ложь». Выражение «$A2=" "» проверяет «A2» на пробел. Функция «ИЛИ()» объединяет оба результата. Если хотя бы один из них сработает, значение функции будет положительным, а результат проверки в «Если» вернет в ячейку пустую строку. Вариантов проверок можно придумать много. Вопрос в том, стоит ли это делать. Осталось сделать пару замечаний по работе с таблицей.

Дополняя справочник новыми данными, следите, чтобы он оставался упорядоченным по колонке «

№». Если нужно, воспользуйтесь меню «Данные  → Сортировка» и восстановите порядок.

Когда база готова, формулы вам станут не нужны. Сохраните их в примечаниях, а базу превратите в значения. Для этого сделайте так:

— станьте на первое значение с формулой (в примере это ячейка «

D2» на листе «База»);

— нажмите «

F2», чтобы перейти в режим редактирования формул;

— в строке формул выделите в блок текст функции, скопируйте его в буфер обмена по «

Ctrl+C». (Копирование делайте в строке формул, а не на рабочем листе!);

— нажмите «

Esc», чтобы вернуться на рабочий лист;

— щелкните на «

D2» правой кнопкой и из контекстного меню выберите «Добавить примечание»;

— в окне примечания вставьте содержимое буфера по «

Ctrl+V»;

— выделите всю таблицу и скопируйте ее в буфер («

Ctrl+C»).

Не снимая выделения, войдите в меню «

Правка  → Специальная вставка». В предложенном окне установите переключатель в положение «Значения» и нажмите «ОК». Теперь формулы пропали, остались только значения. Но в комментарии к «D2» все сохранилось. В любой момент вы щелкните на «D2» правой кнопкой, укажете в меню «Изменить примечание», скопируете из примечания текст формулы, вставите в ячейку рабочего листа и скопируете на всю таблицу. Останется только поправить смещения — и все заработает. Надеюсь, что предложенный пример поможет справиться с проблемой. Успешной работы!

 

Жду ваших писем, предложений и замечаний на

bk@id.factor.ua, nictomkar@rambler.ru или на форуме редакции www.bk.factor.ua/forum .
App
Скачайте наше мобильное приложение Factor

© Factor.Media, 1995 -
Все права защищены

Использование материалов без согласования с редакцией запрещено

Ознакомиться с договором-офертой

Присоединяйтесь
Адрес
г. Харьков, 61002, ул. Сумская, 106а
Мы принимаем
ic-privat ic-visa ic-visa

Мы используем cookie-файлы, чтобы сделать сайт максимально удобным для вас и анализировать использование наших продуктов и услуг, чтобы увеличить качество рекламных и маркетинговых активностей. Узнать больше о том, как мы используем эти файлы можно здесь.

Спасибо, что читаете нас Войдите и читайте дальше