
Степан / Информатика / Лаб_практ / Excel / Лаб8
.doc
Microsoft
Excel (Лабораторный
практикум) –
Работа №8. Сумма прописью
Построить функцию преобразования суммы (до 99 999 руб.), представленной числом, в “сумму прописью”. Необходимость в ней возникает по формировании различных платежных документов. На рисунке ниже в клетке В1 представлено исходное число в цифровой форме, а в В2 – результат преобразования.
|
A |
B |
1 |
Всего: |
45 103,2 |
2 |
Прописью: |
сорок пять тыс. сто три руб. 20 коп. |
Для указанной цели в отдельный лист вносятся (рисунок ниже) две таблицы. Таблица, связывающая числа от 0 до 99 с соответствующими числительными (десятки и единицы), и аналогичная таблица чисел от 0 до 9 (для сотен). Все числительные в таблицах имеют по одному пробелу в конце текста. С целью сокращения формул введем для этих блоков имена: блоку А3:В102 присвоим имя ЕД (от слова единицы), блоку D3:E12 – СТ (от слова сотни). Использование имен позволяет также не указывать в формулах имена листов, где находятся поименованные блоки.
|
A |
B |
C |
D |
E |
1 |
ДЕСЯТКИ и ЕДИНИЦЫ |
|
СОТНИ |
||
2 |
число |
текст |
|
число |
текст |
|
0 |
|
|
0 |
|
4 |
1 |
один |
|
1 |
сто |
5 |
2 |
два |
|
2 |
двести |
6 |
3 |
три |
|
3 |
триста |
7 |
4 |
четыре |
|
4 |
четыреста |
8 |
5 |
пять |
|
5 |
пятьсот |
9 |
6 |
шесть |
|
6 |
шестьсот |
10 |
7 |
семь |
|
7 |
семьсот |
11 |
8 |
восемь |
|
8 |
восемьсот |
12 |
9 |
девять |
|
9 |
девятьсот |
|
|
. . . |
|
|
|
|
99 |
девяносто девять |
|
|
|
Используемая функция и связи ее компонент с преобразуемым числом приведены на следующем рисунке. Она состоит из 6-и текстовых составляющих, объединенных знаком сцепления символьных данных “&”. Первая строка преобразует два старших разряда (разряды десятков тысяч) исходного числа с помощью данных, содержащихся в блоке ЕД. Вторая – вставляет слово “тыс.” (если тысячи есть). Третья – один разряд сотен. Четвертая – два следующих разряда из блока ЕД. Пятая – включает слово ”руб.”. В каждой из строк, отвечающей за какие-либо цифры (кроме копеек, которые не нужно преобразовывать в текст), применяется функция ВПР(). Однако, чтобы воспользоваться ею необходимо выполнить действия по извлечению нужных компонент числа, используемых в качестве аргументов функции ВПР().
Рассмотрим только первую строку. Здесь исходное число, находящееся в ячейке В1, сначала преобразуется в текстовую форму выражением ТЕКСТ(B1;"00000,00"), чтобы затем выделить из числа отдельные разряды функцией ПСТР(…). В данном случае функция ПСТР(ТЕКСТ(B1;"00000,00");1;2) извлекает из него фрагмент, начиная с первой позиции длиной в два символа (т.е. две первые цифры числа). Далее это число из текстовой формы снова обращается в числовую функцией ЗНАЧЕН(…), с тем чтобы можно было подставить ее в функцию ВПР(…), разыскивающую цифру прописью в блоке ЕД. Таким образом, первые цифры числа 45 103,2 преобразуется в слово "сорок пять".
45
тыс.
1
03
руб.
20 коп.
=ВПР(ЗНАЧЕН(ПСТР(ТЕКСТ($B$1;"0000000,00");3;2));ед;2)
&ЕСЛИ(B1>999;"тыс.
";"")
&ВПР(ЗНАЧЕН(ПСТР(ТЕКСТ($B$1;"0000000,00");5;1));ст;2)
&ВПР(ЗНАЧЕН(ПСТР(ТЕКСТ($B$1;"0000000,00");6;2));ед;2)
&ЕСЛИ(B1>=1;"руб.";"")
&ЕСЛИ(B1>ЦЕЛОЕ(B1);ПРАВСИМВ(ТЕКСТ($B$1;"
#,00");2)&" коп.";"")
Замечание. Довольно скучно вводить числа прописью от 1 до 99 в блок ЕД. Это можно сделать довольно быстро, если воспользоваться средствами копирования и преобразования данных. Числительные от 1 до 19, конечно, придется ввести непосредственно. Далее следует ввести слово “двадцать ” и скопировать его в следующие девять строк. Затем “тридцать ” и сделать тоже самое и так до “девяносто ” включительно. Теперь нужно присоединить к этим словам числительные “один”, “два”, … “девять”. Это удобно сделать так:
-
Ввести в столбец С указанные числительные рядом с клетками, содержащими слово “двадцать ”, получив, например, такие строки смежных клеток двадцать один , двадцать два и т.п.).
-
Скопировать несколько раз весь блок числительных “один”, “два”, … “девять” вниз, чтобы они стали рядом со словами “тридцать ”, “сорок ” и т.д.
-
Соединить в столбце D оба слова так, что бы двадцать один превратилось в двадцать один . Для этого нужно воспользоваться формулой вида D24=B24&C24, скопировав ее затем вниз до конца таблицы.
-
Созданные таким образом данные переместить из столбца D на положенное место в столбец В, используя механизм переноса только значений (Правка+Специальная вставка+Вставить Значения).
Задание. Усложните функцию таким образом, чтобы было возможно выводить прописью шестизначные числа (до 999 999,99).