Написание числовых данных прописью

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

День недели прописью

Предположим, вам необходимо определить, какому дню недели соответствует дата, находящаяся в интервале от 1900 до 9999 года. Сделать это в Excel довольно просто, но в качестве ответа вы получите порядковый номер дня недели. К тому же в зависимости от установок номеру могут отвечать разные дни. Конечно, это не очень удобно. Поэтому давайте составим модуль, который будет определять по дате день недели и возвращать не его порядковый номер, а название.

День недели позволяет определить функция ДЕНЬНЕД, которую можно ввести, вызвав мастер функций и выделив в списке Категория элемент Дата и время (рис. 6.1). Синтаксис функции следующий:

ДЕНЬНЕД(дата_в_числовом_формате, тип)

Она возвращает день недели, соответствующий первому аргументу дата_в_чи-словом_формате. День недели будет представлен как целое число в интервале от 1 (воскресенье) до 7 (суббота).

Аргумент дата_в_числовом_формате - это код дата-время, который Excel применяет для операций в датами. Данный аргумент можно задавать и в текстовом виде, заключив строку в кавычки. Тип - это число, определяющее нумерацию дней недели. Аргумент Тип может принимать следующие значения:

Таким образом, в зависимости от типа, указанного в функции ДЕНЬНЕД, 5-й день недели может быть четвергом, пятницей или субботой. Чтобы не задавать второй аргумент, будем считать, что 5-й день недели - это четверг.

Мастер функций: категория Дата и время

Рис. 6.1. Мастер функций: категория Дата и время

Введите в ячейку А1 любую догу, например 6.01.2002 г. Для наглядности задайте для этой ячейки формат даты. Перейдите в ячейку А2 и вызовите панель функции ДЕНЬНЕД (рис. 6.2). В поле Дата_как_число введите адрес ячейки А1.

Панель функции ДЕНЬНЕД

Рис. 6.2. Панель функции ДЕНЬНЕД

После этих действий ячейка А2 будет содержать следующую формулу:

=ДЕНЬНЕД(А1)

Эта формула вернет результат, равный 1. Значит, интересующий нас день - воскресенье.

Теперь приступим к реализации алгоритма, позволяющего написать прописью название этого дня недели. Введите в ячейку A3 формулу, созданную на основе логической функции ЕСЛИ:

=ЕСЛИ(А2=1;"Воскресенье";А4)

Формула сравнивает номер дня недели со значением 1. Если результатом сравнения является ИСТИНА, то в ячейке A3 появится текст Воскресенье. В противном случае значение ячейки A3 будет определяться содержимым ячейки А4.

В ячейке А4 должна находиться аналогичная формула:

=ЕСЛИ(А2=2;"Понедельник";А5)

Если номер дня недели отвечает понедельнику (равен 2), то в этой ячейке появится текст Понедельник. Данное значение затем передается в ячейку A3.

Заполните аналогичными формулами для других дней недели ячейки А5:А7. А вот в ячейку А8 поместите следующую формулу:

=ЕСЛИ(А2=6;"Пятница";"Суббота")

Она не содержит ссылок на другие ячейки, поскольку мы уже перечислили все дни недели.

Алгоритм, реализованный при помощи этих формул, представлен на рис. 6.3.

Алгоритм работы таблицы, формирующей название дня недели

Рис. 6.3. Алгоритм работы таблицы, формирующей название дня недели

Разработанная нами таблица располагается в диапазоне ячеек А1:А8, ее входом является ячейка А1, выходом - ячейка A3. На рис. 6.4 показана таблица с формулами, а на рис. 6.5 - с числовыми значениями.

Воспользуемся методом вложения формул и минимизируем эту таблицу. На ее базе можно создать модуль, состоящий всего из двух ячеек. Ячейка А1 будет служить входом модуля, а ячейка А2, в которой производятся вычисления, - выходом. Ячейка А2 должна содержать следующую формулу:

=ЕСЛИ(ДЕНЬНЕД(А1)=1;"Воскресенье"; ЕСЛИ(ДЕНЬНЕД(А1)=2;"Понедельник"; ЕСЛИ(ДЕНЬНЕД(А1)=3;"Вторник"; ЕСЛИ(ДЕНЬНЕД(А1)=4;"Среда"; ЕСЛИ(ДЕНЬНЕД(А1)=5;"Четверг"; ЕСЛИ(ДЕНЬНЕД(А1)=6;"Пятница","Суббота"))))))

Таблица, формирующая название дня недели (с формулами)

Рис. 6.4. Таблица, формирующая название дня недели (с формулами)

Таблица, формирующая название дня недели (с числовыми значениями)

Рис. 6.5. Таблица, формирующая название дня недели (с числовыми значениями)

Данный модуль можно перемещать по рабочему листу и копировать в другие книги (файлы) и рабочие листы. Подкорректировав ссылку в формуле, вы можете изменить расположение ячеек входа и выхода: разместить их не в одной строке, а в одном столбце (рис. 6.6).

модули, формирующие название дня недели (с числовыми данными и формулами)

Рис. 6.6. модули, формирующие название дня недели (с числовыми данными и формулами)