Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_4 .doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
578.56 Кб
Скачать

Написание даты прописью

Для написания прописью номера дня и года можно применить таблицу, показанную на рис. 7.4. Отличие текста написания номера дня от номера года зависит только в склонении, например, номер дня 11 пишется одиннадцатое, а такой же год - одиннадцатого.

В таблице ячейка С5 является входом, в которую вводится число (или ссылка на ячейку, содержащую это число), а ячейка D5 выходом, в которой это число уже пишется прописью.

В области ячеек С6:D7 выделяются отдельно десятки и единицы этого числа. Формулы в ячейках С8:С10 предназначены для написания прописью количества десятков, а в ячейках D8:D16 для написания прописью единиц. Таблица пишет прописью числа от единицы до тридцати девяти.

Рис. 7.4. Таблица написания прописью номера дня в месяце

После создания таблицы и тестирования, ее размеры минимизируются путем вложения формул. На рис. 7.5. приведена минимизированная таблица (модуль) написания номера года. Модуль расположен в ячейках С6:F6, в которой ячейка С6 является входом, а ячейка F6 выходом. Номер года пишется от 2001 до 2039, причем прописью определяется только число от 1 до 39, а текст две тысячи дополняется.

Рис. 7.5. Модуль написания прописью номера года

Если соединить все три модуля написания текста числа, месяца и года в единое целое, то получится один модуль написания даты прописью. Как пример, такой модуль показан на рис. 7.6.

Рис. 7.6. Полученный модуль написания даты прописью

Расчет полного количества лет, дней и месяцев в интервале указанных дат

На практике довольно часто приходится определять количество дней, месяцев и лет между двумя датами. При классическом использовании Excel возможны два метода их определения, которые показаны на рис. 7.7.

Метод 1 (строки 4:6). Вычтя одну дату из другой и применив функции ГОД, МЕСЯЦ и ДЕНЬ, можно определить эти данные, но Excel анализирует дату, полученную в результате вычитания, и поэтому полученный результат не будет достоверным.

Метод 2 (строки 8:10). Состоит в том, чтобы определить год, месяц и день отдельно в двух датах, а затем произвести операцию вычитания этих составляющих. Но при вычитании отдельно лет, месяцев и дней результат может носить отрицательный характер, а такого быть не может.

Рис. 7.7. Примеры определения количества дней, месяцев и лет в интервале между двумя датами

На основании второго метода попытаемся проанализировать и использовать полученные результаты. На рис. 7.8. приведен пример модуля определения количества лет, месяцев и дней. Модуль занимает диапазон ячеек В4:D6. В ячейки В4 и В5, являющимися входом модуля, вводятся даты. Выходы модуля:

  • ячейка D4 - для вывода количества лет;

  • ячейка D5 - для вывода количества месяцев;

  • ячейка D6 - для вывода количества дней.

Рис. 7.8. Модуль расчета количества лет, месяцев и дней в интервале между датами

Формула в ячейке D4 работает по следующему алгоритму:

  • Если результат вычитания месяцев получен отрицательный, то количество полученных в результате вычитания лет, нужно уменьшить на один год. А этот год, как компенсацию за вычитание, в виде числа 12 месяцев, следует добавить к количеству полученных в результате вычитания месяцев в ячейке D5.Если номер вычитаемого месяца меньше, то тогда года вычитаются без корректировки.

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

Похожий алгоритм заложен и в формулах для определения количества месяцев и дней в ячейках D5 и D6.

Формулы в ячейках С4 и С5 проводят дополнительный анализ количества календарных дней в месяце, находящемся в большей дате (ячейка В4):

Если месяц, даты введенной в ячейку В4, имеет значение 3, то необходимо дополнительно проверить, високосный это год или нет. Для анализа високосного года в дате, введенной в ячейку В4, в формуле в ячейке В5 применяется функция Excel ОСТАТ (рис. 7.9.). Если год високосный, то результат деления этого года на 4 будет равен нулю.

Если в результате деления получена дробная часть (т.е. год не високосный), то количество дней в месяце, предшествующем 3-му месяцу, будет равно 28. Если год високосный, то функция ОСТАТ выдаст значение 0. Тогда вторая функция ЕСЛИ при выполнении условия сравнения со значением 0 перейдет к своему второму аргументу, где указано значение 29 (дней в феврале).

Рис. 7.9. Панель функции ОСТАТ

Для того чтобы написать прописью определенные количество месяцев, дней и лет, необходимо соединить в единое целое (рис. 7.10.):

  • модуль определения этих параметров - область ячеек В4:D6;

  • модуль написания текста этих вычисленных параметров - область ячеек В9:D14.

Входами модуля написания текста являются ячейки В9; С9 и D9, в которые введены ссылки на соответствующие ячейки выхода модуля определения параметров.

Рис. 7.10. Модули написания прописью количества лет, месяцев и дней между двумя датами

Структура создаваемого приложения

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

Рис. 7.11. Структура потоков информации и содержания рабочих листов создаваемого приложения

Лист Реквизиты

На рабочем листе Реквизиты (рис. 7.12.) расположена база данных о клиентах и информация об автомобиле, которая необходима для автоматизированного создания доверенности. Только табличной базой данных ее можно назвать условно, потому что нарушены некоторые принципы формирования списка Excel.

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

На листе Реквизиты, для удобства группировки данных, заголовок содержит три строки (область А1:АF3). Данные первой строки проводят группировку по месту и дате заключения доверенности, данным по каждому клиенту и автомобилю. Во второй строке данные группируются более детализировано. Например, данные по клиенту - кто, удостоверяющий его документ и место проживания. По автомобилю - данные свидетельства о регистрации и данные об автомобиле. Из-за удобства этих группировок, отдельные ячейки всех трех строк заголовка объединены.

В четверной строке введены порядковые номера столбцов от 0 до 31.

Из-за того, что заголовок состоит из трех строк невозможно установить Автофильтр и применить диалоговое окно Форма. Это будет затруднять поиск необходимой информации и ввод данных.

Рис. 7.12. Рабочий лист Реквизиты с информацией о клиентах и автомобилях

Удобный просмотр данных можно осуществлять при помощи фильтрации. Это будет возможно при удалении трех верхних строк 1:3. Но удалять эти строки на созданном рабочем листе Реквизиты не совсем корректно. Для этого желательно создать точную копию листа, а после просмотра данных этот лист удалить. Но проведение этой операции вручную трудоемко. Для ускорения процесса последовательно запишем три макроса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]