Соединение всех компонентов надписи и их текстовая обработка

В шестом блоке применяются текстовые функции, которые обрабатывают и соединяют результаты вычислений предыдущих блоков. Формулы блока (диапазон А15:А21) показаны на рис. 6.21, а алгоритм - на рис. 6.22.

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

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

Алгоритм завершающей обработки текста.

Рис. 6.22. Алгоритм завершающей обработки текста. В ячейке А15 находится следующая формула:

=СЦЕПИТЬ(А5;" ";А14;" ";В5;" ";С5;" ";D5;" "; D14;" ";Е5;" ";F5;" ";G5;" ";G14;" ";H3;H4;" коп")

Она объединяет в единое целое все компоненты, предназначенные для написания суммы прописью. В данной формуле содержатся ссылки на все ячейки, в которых находятся сформированные числительные и названия разрядов. Между ссылками на ячейки в функции СЦЕПИТЬ нужно обязательно поставить пробелы.

Например, при формировании прописью числа 1 111 111,11 аргументы функции будут иметь такие значения:

=СЦЕПИТЬ("один";" ";"миллион";" ";"сто";" "; "одиннадцать";" ";"тысяч";" "; ... и т.д.)

В ячейке А16 производится удаление из текста лишних пробелов:

=СЖПРОБЕЛЫ(А15)

Для этого применяется текстовая функция СЖПРОБЕЛЫ (рис. 6.23), которая оставляет в тексте только одиночные пробелы. Функцию СЖПРОБЕЛЫ можно применять для обработки текстов, полученных из других прикладных программ, если эти тексты содержат избыточные пробелы. Синтаксис функции имеет следующий вид:

СЖПРОБЕЛЫ(текст)

где текст - это текст, из которого удаляются пробелы.

Панель функции СЖПРОБЕЛЫ

Рис. 6.23. Панель функции СЖПРОБЕЛЫ

Однако зачем удалять пробелы, если между всеми ссылками на ячейки заданы одиночные пробелы? Это делается для того, чтобы при написании прописью небольшого числа, например "Три рубля 45 коп." перед словом "Три" не было лишних пробелов. Если пробелы не удалить, надпись будет выглядеть так: " Три рубля 45 коп.".

Теперь надо обеспечить правильное употребление строчных и прописных букв в надписи. Надпись будет начинаться с прописной буквы. Это делается при помощи формул, которые находятся в ячейках А17 и А18.

В ячейке А17 содержится следующая формула:

=ЛЕВСИМВ(A16;1)

Она выделяет самый левый (то есть первый) символ строки после того, как из нее удалены лишние пробелы.

Формула в ячейке А18 назначает для этого символа прописную букву:

=ПРОПИСH(А17)

Здесь использована функция ПРОПИСН (рис. 6.24), которая делает все буквы в тексте прописными. Синтаксис функции таков:

ПРОПИСН(текст)

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

Панель функции ПРОПИСН

Рис. 6.24. Панель функции ПРОПИСН

На данном этапе можно производить окончательное формирование надписи. Для этого надо соединить первую букву надписи (ячейка А18) с остальной ее частью.

Сначала определяем, сколько символов находится в строке после удаления лишних пробелов. Это делается в ячейке А19:

=ДЛСТР (А16)

После этого извлекаем из строки все символы, кроме первого. Предназначенная для этого формула находится в ячейке А20:

=ПРАВСИМВ(А16;А19-1)

Для того чтобы определить количество извлекаемых символов, необходимо из общего количества символов текстовой строки (содержится в ячейке А19) вычесть 1.

Теперь компоненты надписи можно объединить. Для этого запишите в ячейку А21 следующую формулу:

=СЦЕПИТЬ(А18;А20)