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

Создаем реестр договоров

Редакция БК
Статья

Создаем реестр договоров

 

img 1

Работа с документами отнимает у бухгалтера львиную долю полезного времени. Акты, сметы, договоры, служебные записки — количество их постоянно растет. А единственным инструментом для наведения порядка в этом хозяйстве обычно остаются… папки на диске. Такой подход, безусловно, имеет право на жизнь. Вот только в большинстве случаев он малоэффективный. Особенно когда речь идет о групповой обработке документов. В такой ситуации без ведения реестра уже не обойтись. И здесь самое время вспомнить о возможностях пакета MS Office, который предлагает все необходимые инструменты для решения этой задачи. О том, как ими воспользоваться применительно к MS Office 2010, какие преимущества получит бухгалтер от ведения реестра документов, мы поговорим в этой статье.

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

 

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

Теперь относительно вопроса — почему MS Office? Сегодня на рынке Украины представлены десятки программ для автоматизации документооборота: от самых простых и до изысканно сложных. Здесь, на мой взгляд, проблему нужно разделить на две части. Когда речь идет о комплексной автоматизации документооборота крупного предприятия, без специальных программ зачастую не обойтись. И это понятно. Но когда требуется автоматизировать какую-то часть своей персональной работы или решить конкретную локальную задачу, я бы отдал предпочтение офисным приложениям. И вот почему. Для начала, это дешевле, дополнительных затрат в данном случае никаких. Вам не понадобятся сторонние разработчики. Проделав всю работу самостоятельно, вы будете досконально владеть вопросом и в любой момент перестроите свою систему под изменившиеся условия или новые задачи. И наконец, самое главное: инструменты для ведения реестра документов в MS Office настолько просты, что пользоваться ими сможет любой бухгалтер с базовыми навыками работы на компьютере. Теперь собственно о самой задаче.

 

Что мы хотим получить

Итак, есть бланк документа. В качестве примера я выбрал стандартный договор купли-продажи. Этот документ изначально представлен в формате MS Word. Кроме бланка, у нас есть список контрагентов (покупателей), для которых мы будем оформлять договоры купли-продажи. Список организован как база данных MS Excel, которая периодически будет пополняться. Мы хотим иметь возможность быстро формировать и распечатывать договор купли-продажи для любого контрагента из нашего списка. Кроме того, нам может понадобиться формировать и печатать договоры для целой группы контрагентов из базы данных.

 

Что мы будем использовать

Для решения задачи мы применим стандартные функции работы с текстом программы Excel 2010, а также средства организации рассылок Word 2010. О возможностях этих инструментов мы уже писали на страницах «Б & К» (например, в «Б & К», 2009, № 6; № 23; 2011, № 3). Поэтому все, что нам сейчас предстоит сделать, — это освежить наши знания и комплексно применить их для решения поставленной задачи в новой редакции MS Office. Приступим.

 

Формируем базу данных

Работу начинаем с бланка договора купли-продажи, фрагмент которого показан на рис. 1. Первое, что нужно сделать, — это выделить в бланке все изменяющиеся части договора. Сейчас наша цель — выяснить, какие атрибуты договора будут меняться для разных контрагентов, а какие будут оставаться неизменными. Это можно сделать прямо на экране, подсветив изменяющиеся части ярким фоном (как показано на рис. 1), или проделать все непосредственно на бумаге. Разницы нет никакой. Повторяю, нас пока интересует только состав переменной информации.

img 2

Закончив с этим делом, каждому атрибуту переменной части договора присвоим короткое, но понятное имя. Эти имена и будут заголовками базы данных в программе Excel, где мы сформируем реестр. Исходя из состава документа «Договор купли-продажи» наш реестр будет состоять из 23 полей, которые перечислены в табл. 1.

Теперь, зная состав полей реестра, формируем в Excel базу данных, фрагмент которой показан на рис. 2. Эти данные в нашем примере я расположил на листе с именем «Реестр».

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

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

 

Таблица 1. Поля реестра документов

Наименование поля

Адрес ячейки

Назначение

1

2

3

Пр

A1

Рабочая колонка, с документом она никак не связана

№ п/п

B1

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

№ дог.

С1

Номер договора

Дата

D1

Дата договора

Предприятие

E1

Название контрагента (покупателя)

Адрес

F1

Юридический адрес покупателя

Тел.

G1

Контактный телефон покупателя

eMail

H1

Адрес электронной почты покупателя

Р/С

I1

Номер расчетного счета покупателя

Банк

J1

Название банка, где зарегистрирован счет покупателя

МФО

K1

МФО банка покупателя

ЕДРПОУ

L1

Код ЕДРПОУ покупателя

Должность_1

M1

Должность первого лица на предприятии покупателя в родительном падеже

Должность_2

N1

То же самое, но в именительном падеже

ФИО_1

O1

Фамилия, имя и отчество первого лица от покупателя в родительном падеже

ФИО_2

P1

То же самое, но в именительном падеже

Основание

Q1

Название документа, на основании которого покупатель подписал договор

Товар, услуга

R1

Наименование товара в договоре купли-продажи

ЕдИзм

S1

Единица измерения товара

Цена

T1

Цена за единицу товара

Кол.

U1

Количество товара, передаваемого по договору

Сумма

V1

Сумма договора

НДС

W1

Сумма НДС

 

Создав базу данных, заполняем реестр сведениями о контрагентах (например, как показано на рис. 2). Исходная информация для нашего примера готова. Можно начинать работу над текстом договора.

img 3

В настоящий момент текст документа представлен в формате программы Word. Этот документ нам еще пригодится — мы воспользуемся им для организации рассылки. А пока наша задача скромнее. Я хочу из имеющейся базы данных распечатать один конкретный договор. Выглядеть это будет так. В рабочей колонке «Пр» я поставлю символ «*» — признак печати договора для соответствующего контрагента. После этого на отдельном листе я хочу получить текст договора, куда Excel автоматически подставит все атрибуты контрагента из соответствующей строки. Чтобы реализовать такой алгоритм на практике, мы вначале должны перенести на отдельный лист Excel текст документа. А затем сделать подстановку значений из базы функциями «ВПР()». Посмотрим, как это реализовать в Excel 2010.

 

Формируем Бланк договора в MS Excel

Вначале перенесем данные из программы Word на лист MS Excel. Для этого делаем так:

1. Открываем документ с реестром, добавляем новый рабочий лист.

2. Дважды щелкаем левой кнопкой мышки на ярлыке нового листа, чтобы войти в режим переименования.

3. Вводим название листа (например, «Дог»).

4. Вызываем «Файл печать», откроется окно предварительного просмотра.

5. Нажимаем «Esc» — закрываем окно предварительного просмотра. Это действие мы сделали только для того, чтобы на листе появилась пунктирная линия для обозначения правой границы печатного листа.

6. Через буфер обмена переносим текст из программы «Word» в ячейки Excel. Данные нужно переносить построчно, причем вставлять текст я предлагаю исключительно в ячейки колонки «А». При этом нужно следить за тем, чтобы строки документа не выходили за правую границу печатного листа (находились в пределах области печати).

7. Текст с подписями в конце документа сразу размещаем в отдельных колонках. Слово «Директор» (подпись от продавца) ставим в ячейку «A24». Ячейку «B24» оставляем пустой — это место для самой подписи. Фамилию директора от предприятия-продавца (В. М. Петров) пишем в ячейку «C24».

8. Аналогичным образом оформляем область с подписями от покупателя. В нашем примере текст «от Покупателя» записан в ячейку «E23». Слово «Ген. директор» находится в ячейке «E24», а фамилия «В.И. Авилов» занимает ячейку «G24».

9. Подбираем ширину колонок, ориентируясь на значения в области подписей завершающей части договора. То есть ширина колонки «А» должна быть такой, чтобы в ней поместилось слово «Директор». Ширина колонок «B» и «F» должна быть достаточной для физических подписей сторон и т. д.

10. В последнюю очередь ставим в текст документа данные о наименовании товара, объеме продаж, единице измерения, цене и сумме договора. В примере на рис. 3 я разместил эти значения в ячейках начиная с «D7» и до «D12». Такой выбор был сделан исключительно исходя из сложившейся ширины колонок на рабочем листе. Ведь пока эти данные нам нужны только для того, чтобы оценить реальный размер документа и заранее подогнать его под ширину страницы.

11. Через окно форматирования включаем для ячеек «B24» и «F24» нижнюю границу.

12. Выделяем ячейки «A1:G1», форматируем заголовок (строка «ДОГОВОР…») по центру выделения.

13. Последовательно выделяем все названия пунктов первого уровня и форматируем их по центру выделения относительно колонок «A:G».

14. Выделяем заголовки третьего уровня (п.п. 1.1.1, 1.1.2 и т. д.).

15. Вызываем окно «Формат ячеек», на закладке «Выравнивание» выбираем формат «по левому краю (отступ)» и вводим значение отступа «2».

16. Выделяем полужирным шрифтом ключевые элементы нашего договора. Внешний вид документа в первом приближении показан на рис. 3.

img 4

Сейчас мы создали на рабочем листе «Дог» только шаблон — заготовку в виде текста договора купли-продажи. Теперь наша задача дополнить его формулами, чтобы подставить в документ данные по конкретному контрагенту. Напомню, что строку с параметрами контрагента, для которого формируется документ, мы обозначим в колонке «Пр» листа «Реестр» символом «*».

Для решения задачи мы воспользуемся функцией «ВПР()». Как работает эта функция, мы посмотрим на примере третей строки документа с номером договора «6а-09/11» (ячейка «С4»). Сейчас в заголовке документа (рис. 1) находится текст «ДОГОВОР № 1 от 9/1/2011». Вместо номера «1» мы должны подставить значение из базы данных (лист «Реестр») из колонки «D». При этом номер строки мы определим из условия, что в колонке «A» она отмечена символом «*». На рис. 2 этот символ находится в ячейке «A4». Формула для подстановки номера договора будет выглядеть так: «=ВПР("*";Реестр!A:X;3)». В формуле три параметра. Вначале идет искомый текст (в данном случае — это символ «*»). Затем блок, из которого «ВПР()» сделает подстановку. В нашем случае функция будет просматривать первую слева колонку блока, т. е. колонку «А». Как только в одной из ячеек этой колонки она обнаружит символ «*», функция вернет в качестве результата значение по той же строке, но со смещением на 3 колонки вправо. Для примера на рис. 2 (символ «*» находится в ячейке «A4») результатом работы формулы будет значение «6а-09/11».

В принципе формулу можно оставить как есть. Но если в колонке «A» базы данных не будет ни одного символа «*», функция «ВПР()» отработает с ошибкой: результатом ее работы будет значение «Н/А». На рабочем листе смотрится оно, прямо скажем, нелепо. Чтобы усовершенствовать формулу, мы можем проанализировать ошибку, воспользовавшись функциями «ЕОШИБКА()» и «ЕСЛИ()». С их помощью мы проверим результат поиска символа «*» функцией «ВПР». Если поиск не успешен, в качестве результата мы вернем в ячейку слово «нет». В противном случае в ячейку запишем результат поиска. Тогда выражение для подстановки номера договора в документ будет выглядеть так: «="ДОГОВОР № " & ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;3));" Нет ";ВПР("*";Реестр!A:X;3))». Посмотрим на работу этой формулы подробнее. Функция «ВПР("*";Реестр!A:X;3)» находит в базе значение номера договора для контрагента, отмеченного символом «*» в колонке «А». Функция «ЕОШИБКА()» анализирует результат поиска. Если поиск успешен, функция вернет значение «ЛОЖЬ» (нет ошибки). В противном случае она вернет значение «ИСТИНА». Этот результат проверяется функцией «ЕСЛИ()». Когда поиск успешен и результат «ЕОШИБКА (ВПР("*";Реестр!A:X;3))» равен «ЛОЖЬ», функция «ЕСЛИ()» возвращает в ячейку значение «ВПР("*";Реестр!A:X;3))». Иначе в ячейку будет записано слово «нет».

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

 

Таблица 2. Формулы для подстановки значений в текст договора

Адрес ячейки

Формула

Назначение

1

2

3

A1

="ДОГОВОР № "&ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;3));" нет ";ВПР("*";Реестр!A:X;3))

Заголовок с номером договора

G2

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;4)); "нет"; ТЕКСТ(ВПР("*";Реестр!A:X;4); "ДД/ ММ /ГГ"))

Дата договора

A3

=" ООО "Стрим" в дальнейшем "ПРОДАВЕЦ" в лице директора Петрова Р.М., с одной стороны, и "&"ООО "Техресурсы" "&" в дальнейшем "ПОКУПАТЕЛЬ" в лице "&ВПР("*";Реестр!A:X;13)&" "&ВПР("*";Реестр!A:X;15)&", действующего на основании Устава, с другой стороны, заключили Договор о нижеследующем:"

Первый параграф с данными руководителей и наименованиями предприятий

D7

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;18)); "нет" ; ВПР("*";Реестр!A:X;18))

Название товара

D8

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;19)); "нет" ; ВПР("*";Реестр!A:X;19))

Единица измерения

D9

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;20)); "нет" ; ВПР("*";Реестр!A:X;20))

Цена за единицу

D10

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;21)); "нет" ; ВПР("*";Реестр!A:X;21))

Количество

D11

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;22)); "нет" ; ВПР("*";Реестр!A:X;22))

Стоимость партии

D12

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;23)); "нет" ; ВПР("*";Реестр!A:X;23))

Сумма НДС

A19

="6.2.2. ПОКУПАТЕЛЬ: "&ВПР("*";Реестр!A:X;5)&" , "&ВПР("*";Реестр!A:X;6)&" ,"&ВПР("*";Реестр!A:X;7)&", e-mail: "&ВПР("*";Реестр!A:X;7)&" , р/с "&ВПР("*";Реестр!A:X;9)&" в "&ВПР("*";Реестр!A:X;10)&", "&ВПР("*";Реестр!A:X;11)&", код ЕГРПОУ: "& ВПР("*";Реестр!A:X;12)& "."

Юридический адрес, телефон, платежные реквизиты контрагента

E24

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;14)); "нет" ; ВПР("*";Реестр!A:X;14))

Должность подписавшего договор

G24

=ЕСЛИ(ЕОШИБКА(ВПР("*";Реестр!A:X;16)); "нет" ; ВПР("*";Реестр!A:X;16))

Ф. И. О. подписавшего договор

 

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

 

СУММА ПРОПИСЬЮ В ДОКУМЕНТЕ Excel

Алгоритм записи числа прописью мы реализуем при помощи встроенных функций MS Excel. Все расчеты оформим на отдельном листе (например, «Проп»). Дальше делаем так:

1. Переходим на лист «Проп».

2. В ячейку «A1» печатаем слово «Сумма». В ячейку «D1» вводим выражение «=ВПР("*"; Реестр!$A:$X;22)». Эта формула вставляет на рабочий лист сумму договора, который отмечен символом «*» в базе на листе «Реестр». Ссылку на сумму договора мы поставили, теперь разберемся с алгоритмом.

Чтобы написать число прописью, нам нужно каждую цифру этого числа разнести по отдельным ячейкам. Для этого мы будем последовательно делить исходное число на «10» и каждый раз отбрасывать дробную часть при помощи функции «ОТБР()». В результате мы сможем определить количество единиц, десятков, сотен, тысяч и т. п. в исходном числе. Завершив такую обработку числа, мы проанализируем его поразрядно и напишем результат в виде прописи. Посмотрим, как это выглядит на практике. Начнем с завершающей части таблицы:

1. Оставаясь на листе «Проп», заполняем блок «A32:G41» значениями, как на рис. 4. Это будут текстовые заготовки для представления прописью.

img 5

2. В ячейку «B11» вводим формулу: «=ОТБР(D1)». Результат ее работы — целая часть числа из ячейки «D1», т. е. целая часть от суммы по договору.

3. Начиная с «A12» заполняем лист формулами в соответствии с табл. 3 (см. с. 30).

В результате работы этих формул в ячейках «B12:B27» мы получим исходное число, разделенное на разряды, а в блоке «E12:E27» — текстовое название каждого разряда нашей суммы.

 

Таблица 3. Формулы для обработки целой части суммы договора

Адрес ячейки

Формула

1

2

A12

=ОТБР(A13/10)

A13

=ОТБР(A14/10)

B13

=ОТБР(ПРАВСИМВ(A13))

C13

=B13

E13

=ЕСЛИ(B13=1;E41;ЕСЛИ(B13=2;G33;ЕСЛИ(B13=3;G34;ЕСЛИ(B13=4;G35;ЕСЛИ(B13=5;G36;

ЕСЛИ(B13=6;G37;ЕСЛИ(B13=7;G38; ЕСЛИ(B13=8;G39;G40))))))))

A14

=ОТБР(A15/10)

B14

=ОТБР(ПРАВСИМВ(A14))

C14

=ЕСЛИ(B14=1;"";B14)

E14

=ЕСЛИ(ИЛИ(C14=0;B14=1);"";ЕСЛИ(B14=2;E33;ЕСЛИ(B14=3;E34;ЕСЛИ(B14=4;E35;

ЕСЛИ(B14=5;E36;ЕСЛИ(B14=6;E37; ЕСЛИ(B14=7;E38;ЕСЛИ(B14=8;E39;E40))))))))

A15

=ОТБР(A17/10)

B15

=ОТБР(ПРАВСИМВ(A15))

C15

=ЕСЛИ(B14=1;B15+10;ЕСЛИ(B15=0;0;B15))

D15

=ЕСЛИ(И(C15>9;C15<16);ЕСЛИ(C15=10;D32;ЕСЛИ(C15=11;D33;ЕСЛИ(C15=12;D34;

ЕСЛИ(C15=13;D35;ЕСЛИ(C15=14;D36; ЕСЛИ(C15=15;D37;))))));"")

E15

=ЕСЛИ(B15=1;A32;ЕСЛИ(B15=2;A33;ЕСЛИ(B15=3;A34;ЕСЛИ(B15=4;A35;ЕСЛИ(B15=5;A36;

ЕСЛИ(B15=6;A37;ЕСЛИ(B15=7;A38; ЕСЛИ(B15=8;A39;A40))))))))

E16

=B15+B14*10+B13*100

A17

=ОТБР(A18/10)

B17

=ОТБР(ПРАВСИМВ(A17))

C17

=B17

E17

=ЕСЛИ(B17=1;E41;ЕСЛИ(B17=2;G33;ЕСЛИ(B17=3;G34;ЕСЛИ(B17=4;G35;ЕСЛИ(B17=5;G36;

ЕСЛИ(B17=6;G37;ЕСЛИ(B17=7;G38; ЕСЛИ(B17=8;G39;G40))))))))

A18

=ОТБР(A19/10)

B18

=ОТБР(ПРАВСИМВ(A18))

C18

=ЕСЛИ(B18=1;"";B18)

E18

=ЕСЛИ(ИЛИ(C18=0;B18=1);"";ЕСЛИ(B18=2;E33;ЕСЛИ(B18=3; 34; ЕСЛИ(B18=4;E35;

ЕСЛИ(B18=5;E36; ЕСЛИ(B18=6;E37; ЕСЛИ(B18=7;E38;ЕСЛИ(B18=8;E39;E40))))))))

A19

=ОТБР(A21/10)

B19

=ОТБР(ПРАВСИМВ(A19))

C19

=ЕСЛИ(B18=1;B19+10;ЕСЛИ(B19=0;0;B19))

D19

=ЕСЛИ(И(C19>9;C19<16);ЕСЛИ(C19=10;D32;ЕСЛИ(C19=11;D33;ЕСЛИ(C19=12;D34;ЕСЛИ(C19=13; D35;ЕСЛИ(C19=14;D36; ЕСЛИ(C19=15;D37;))))));"")

E19

=ЕСЛИ(B19=1;A32;ЕСЛИ(B19=2;A33;ЕСЛИ(B19=3;A34;ЕСЛИ(B19=4;A35;

ЕСЛИ(B19=5;A36;ЕСЛИ(B19=6;A37;ЕСЛИ(B19=7;A38; ЕСЛИ(B19=8;A39;A40))))))))

E20

=B19+B18*10+B17*100

A21

=ОТБР(A22/10)

B21

=ОТБР(ПРАВСИМВ(A21))

C21

=B21

E21

=ЕСЛИ(B21=1;E41;ЕСЛИ(B21=2;G33;ЕСЛИ(B21=3;G34;ЕСЛИ(B21=4;G35;ЕСЛИ(B21=5;G36;

ЕСЛИ(B21=6;G37;ЕСЛИ(B21=7;G38; ЕСЛИ(B21=8;G39;G40))))))))

A22

=ОТБР(A23/10)

B22

=ОТБР(ПРАВСИМВ(A22))

C22

=ЕСЛИ(B22=1;"";B22)

E22

=ЕСЛИ(ИЛИ(C22=0;B22=1);"";ЕСЛИ(B22=2;E33;ЕСЛИ(B22=3;E34;ЕСЛИ(B22=4;E35;

ЕСЛИ(B22=5;E36;ЕСЛИ(B22=6;E37; ЕСЛИ(B22=7;E38;ЕСЛИ(B22=8;E39;E40))))))))

A23

=ОТБР(A25/10)

B23

=ОТБР(ПРАВСИМВ(A23))

C23

=ЕСЛИ(B22=1;B23+10;ЕСЛИ(B23=0;0;B23))

D23

=ЕСЛИ(И(C23>9;C23<16);ЕСЛИ(C23=10;D32;ЕСЛИ(C23=11;D33;ЕСЛИ(C23=12;D34;

ЕСЛИ(C23=13;D35;ЕСЛИ(C23=14;D36; ЕСЛИ(C23=15;D37;))))));"")

E23

=ЕСЛИ(B23=1;B32;ЕСЛИ(B23=2;B33;ЕСЛИ(B23=3;A34;ЕСЛИ(B23=4;A35;

ЕСЛИ(B23=5;A36;ЕСЛИ(B23=6;A37;ЕСЛИ(B23=7;A38; ЕСЛИ(B23=8;A39;A40))))))))

E24

=B21*100+B22*10+B23

A25

=ОТБР(A26/10)

B25

=ОТБР(ПРАВСИМВ(A25))

C25

=B25

E25

=ЕСЛИ(B25=1;E41;ЕСЛИ(B25=2;G33;ЕСЛИ(B25=3;G34;ЕСЛИ(B25=4;G35;ЕСЛИ(B25=5;G36; ЕСЛИ(B25=6;G37;ЕСЛИ(B25=7;G38;ЕСЛИ(B25=8;G39;G40))))))))

A26

=ОТБР(A27/10)

B26

=ОТБР(ПРАВСИМВ(A26))

C26

=ЕСЛИ(B26=1;"";B26)

E26

=ЕСЛИ(ИЛИ(C26=0;B26=1);"";ЕСЛИ(C26=2;E33;ЕСЛИ(C26=3;E34;ЕСЛИ(C26=4;E35;

ЕСЛИ(C26=5;E36;ЕСЛИ(C26=6;E37;ЕСЛИ(C26=7;E38;ЕСЛИ(C26=8;E39;E40))))))))

A27

=B11

B27

=ОТБР(ПРАВСИМВ(A27))

C27

=ЕСЛИ(B26=1;B27+10;ЕСЛИ(B27=0;0;B27))

D27

=ЕСЛИ(И(C27>9;C27<16);ЕСЛИ(C27=10;D32;ЕСЛИ(C27=11;D33;ЕСЛИ(C27=12;D34;

ЕСЛИ(C27=13;D35;ЕСЛИ(C27=14;D36; ЕСЛИ(C27=15;D37;))))));"")

E27

=ЕСЛИ(B27=1;A32;ЕСЛИ(B27=2;A33;ЕСЛИ(B27=3;A34;ЕСЛИ(B27=4;A35;ЕСЛИ(B27=5;A36;

ЕСЛИ(B27=6;A37;ЕСЛИ(B27=7;A38;ЕСЛИ(B27=8;A39;A40))))))))

E28

=B25*100+B26*10+B27

 

До настоящего момента речь шла только о целой части числа, т. е. о гривнях. Переходим к копейкам. Для этого в ячейку «A29» вводим формулу: «=ОКРУГЛ(100*(D1-B11);0)». Переводить в текстовое представление мы ее не будем. При формировании прописи к этому значению мы просто добавим текст «коп.».

Итак, все данные для формирования числа прописью у нас есть. Остается объединить информацию и получить окончательный результат. Делаем так:

1. Становимся на ячейку «A10» (рис. 4), вводим формулу «=СЦЕПИТЬ(ЕСЛИ(A29=0;"00";A29);" коп.")». Это количество копеек в сумме по договору.

2. В ячейку «A9» вводим формулу «=СЦЕПИТЬ(ЕСЛИ(B25=0;"";E25); ЕСЛИ(B26=0;"";ЕСЛИ(C27<20; ЕСЛИ(C27<16;ЕСЛИ(C27<10;E26;D27);F27);E26));ЕСЛИ(B27=0;"";ЕСЛИ(НЕ(B26=1);E27;""));F28)». Это количество гривень прописью.

3. Формулы в ячейках «A6», «A7», «A8» по сути такие же, но только обрабатывают они разряды сотен, тысяч и миллионов гривень в исходном числе. А сами выражения в этих ячейках выглядят, как в табл. 4 (см. с. 32).

 

Таблица 4. Формулы для формирования суммы прописью

Адрес ячейки

Формула

A6

=СЦЕПИТЬ(ЕСЛИ(B13=0;"";E13);ЕСЛИ(B14=0;""; ЕСЛИ(C15<20;ЕСЛИ(C15<16;

ЕСЛИ(C15<10;E14;D15);F15);E14)); ЕСЛИ(B15=0;"";ЕСЛИ(НЕ(B14=1);E15;""));F16)

A7

=СЦЕПИТЬ(ЕСЛИ(B17=0;"";E17);ЕСЛИ(B18=0;"";ЕСЛИ(C19<20; ЕСЛИ(C19<16;

ЕСЛИ(C19<10;E18;D19);F19);E18)); ЕСЛИ(B19=0;"";ЕСЛИ(НЕ(B18=1);E19;""));F20)

A8

=СЦЕПИТЬ(ЕСЛИ(B21=0;"";E21);ЕСЛИ(B22=0;"";ЕСЛИ(C23<20; ЕСЛИ(C23<16;

ЕСЛИ(C23<10;E22;D23);F23);E22)); ЕСЛИ(B23=0;"";ЕСЛИ(НЕ(B22=1);E23;""));F24)

 

4. В ячейку «A4» вводим: «=СЦЕПИТЬ(A6;A7;A8;A9;A10)». Это сумма прописью с маленькой буквы.

5. В «A3» вводим выражение «=ПОДСТАВИТЬ (A4;СИМВОЛ(КОДСИМВ(A4));ПРОПНАЧ(СИМВОЛ (КОДСИМВ (A4)));1)». Это сумма числа прописью с заглавной буквы.

Результат из ячейки «A3» мы и вернем в бланк договора. Для этого делаем так:

1. Переходим на лист «Дог».

2. Становимся на ячейку «E11».

3. Вводим формулу: «=ЕСЛИ(ЕОШИБКА(Проп!A3);" нет ";"("&Проп!A3&").")». Бланк договора готов.

 

Что у нас получилось

Чтобы воспользоваться плодами нашего труда, делаем так:

1. Переходим на лист «Реестр», находим в списке нужного контрагента.

2. В соответствующей строке в колонке «А» ставим символ «*».

3. Переходим на лист «Дог» — на нем видим экземпляр договора с параметрами выбранного контрагента.

4. Печатаем полученный документ стандартными средствами Excel 2010.

Нам остается обработать ситуацию, когда в реестре отмечено несколько контрагентов. Делаем так:

1. Становимся на ячейку «А1» листа «Реестр». Вызываем меню «Главная».

2. В группе «Стили» щелкаем на иконке «Условное форматирование». Из открывшегося меню выбираем «Создать правило…». Появится окно «Создание правила форматирования».

3. В этом окне выбираем вариант «Использовать формулу для определения форматируемых ячеек».

4. В окне настройки параметров правила вводим формулу «=СЧЁТЗ(A2:A65000)>1».

5. Щелкаем на кнопке «Формат» и выбираем желтый фон оформления и красные буквы.

6. В окне «Создание правила форматирования» нажимаем «ОК».

7. Становимся на ячейку «A2».

8. Вызываем меню «Вид», в группе «Окно» щелкаем на иконке «Закрепить области».

9. Из появившегося списка выбираем вариант «Закрепить области».

Теперь верхняя строка будет всегда перед глазами. Как только в колонке «A» листа «Реестр» будет отмечено два контрагента, ячейка «А1» окрасится желтым цветом. Это будет сигналом о возможной проблеме.

С первым этапом задачи мы справились. Однако нам предстоит решить еще одну (и очень важную!) проблему — подключить к реестру бланк договора и обработать сразу нескольких контрагентов. Как раз этим мы и займемся в нашей следующей статье.

 

Жду ваших писем, вопросов и предложений на bk@id.factor.ua или nictomkar@rambler.ru. Успешной работы!

App
Скачайте наше мобильное приложение Factor

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

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

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

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

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

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