Соединение всех компонентов надписи и их текстовая обработка
В шестом блоке применяются текстовые функции, которые обрабатывают и соединяют результаты вычислений предыдущих блоков. Формулы блока (диапазон А15:А21) показаны на рис. 6.21, а алгоритм – на рис. 6.22.
Рис. 6.21. Рабочий лист с формулами, формирующими названия разрядов и единицы измерения
Рис. 6.22. Алгоритм завершающей обработки текста
В ячейке А15 находится следующая формула:
=
СЦЕПИТЬ(A5;
" "
; A14;
" "
; B5;
" "
; C5;
" "
; D5;
" "
; D14;
" "
; E5;
" "
; F5;
" "
; G5;
" "
; G14;
" "
; H3; H4;
" коп"
)
Она объединяет в единое целое все компоненты, предназначенные для написания суммы прописью. В данной формуле содержатся ссылки на все ячейки, в которых находятся сформированные числительные и названия разрядов. Между ссылками на ячейки в функции СЦЕПИТЬ нужно обязательно поставить пробелы.
Например, при формировании прописью числа 1 111 111.11 аргументы функции будут иметь такие значения:
=
СЦЕПИТЬ(
"один"
;
" "
;
"миллион"
;
" "
;
"сто"
;
" "
;
"одиннадцать"
;
" "
;
"тысяч"
;
" "
; ... и т.д.)
В ячейке А16 производится удаление из текста лишних пробелов:
=
СЖПРОБЕЛЫ(A15)
Для этого применяется текстовая функция СЖПРОБЕЛЫ (рис. 6.23), которая оставляет в тексте только одиночные пробелы. Функцию СЖПРОБЕЛЫ можно применять для обработки текстов, полученных из других прикладных программ, если эти тексты содержат избыточные пробелы. Синтаксис функции имеет следующий вид:
СЖПРОБЕЛЫ(текст)
Где текст – это текст, из которого удаляются пробелы.