Число прописью в Excel (динамический вариант)
history 3 апреля 2013 г.
- Группы статей
- Имена
- Преобразование в ТЕКСТ
- Приложения
Запишем число прописью в Excel без использования VBA . Вспомогательные диапазоны разместим в личной книге макросов. Кроме того, добавим руб./коп. для записи денежных сумм, например: четыреста сорок четыре руб. 00 коп.
Иногда требуется записать число прописью: 256 записать как двести пятьдесят шесть . Набирать этот текст безумно скучно, кроме того легко ошибиться, поэтому давно написаны макросы на VBA, которые легко справляются с этой задачей.
В статье Число прописью (статичный вариант) приведено решение этой задачи позволяющей перевести число в текстовую форму по следующему алгоритму:
- вводим число в определенную ячейку;
- с помощью формул, вспомогательных диапазонов с текстом и имен получаем число прописью;
- копируем результат вычисления формулы (число прописью) в Буфер обмена ;
- вставляем текст в любую открытую книгу «Как значение» ( Главная/ Буфер обмена/ Вставить/ Вставить как значение ).
Это не всегда удобно. Хочется по аналогии с функциями на VBA написать что то вроде =ЧислоПрописью(А1) и получить результат. Все промежуточные вычисления должны быть «за кадром». Но, создание пользовательских функций это прерогатива VBA.
Тем не менее, можно предложить следующее решение с помощью обычных формул:
- разместить в Личной книге макросов (PERSONAL.XLSB) вспомогательные диапазоны, содержащие некоторые числа прописью (от 0 до 999);
- создать формулу, переводящую в текст любое число от 0 до 1 млрд. с помощью вспомогательных диапазонов и имен ;
- в любой книге, где требуется записать число прописью создать Именованную формулуЧислоПрописью с относительной ссылкой на исходное число (относительную ссылку можно создать так, чтобы она позволяла выводить число прописью, например, в соседней ячейке слева от исходного числа).
В результате вышеуказанных манипуляций можно будет, например, записав в ячейке G 6 исходное число, а в ячейке G7 формулу =ЧислоПрописью , и получить нужный результат.
Все это реализовано в файле примера .
Как и в примере статьи Число прописью (статичный вариант) на листе Служ размещены вспомогательные диапазоны, содержащие некоторые числа прописью в Excel.
Теперь эти диапазоны длиннее (числа от 1 до 999) и содержат слова тысяча и миллион с учетом склонения. Также создан диапазон для отображения слова Рублей с учетом склонения.
Теперь все готово для записи формулы переводящей исходное число (ячейка B 6 ) в текст: =СЖПРОБЕЛЫ( ИНДЕКС(Миллионы;ОСТАТ(ОТБР(B6/1000000);1000000)+1)&" "& ИНДЕКС(Тысячи;ОСТАТ(ОТБР(B6/1000);1000)+1)&" "& ИНДЕКС(Единицы;ОСТАТ(B6;1000)+1))
Задача в принципе решена, осталось только разместить вспомогательные диапазоны в Личную книгу макросов PERSONAL.XLSB, для того чтобы формула, переводящая число в текст была доступна в любой книге.
В Windows XP эта книга находится в папке C:\Documents and Settings\имя_пользователя\Application Data\Microsoft\Excel\XLStart, откуда она будет автоматически загружается при каждом запуске приложения Excel. В Windows Vista эта книга хранится в папке C:\Users\имя_пользователя\Application Data\Microsoft\Excel\XLStart.
Если Личная книга макросов еще не была создана, то скопируйте лист Служ из файла примера в новую книгу, и сохраните ее в директорию C:\Documents and Settings\имя_пользователя\Application Data\Microsoft\Excel\XLStart (для XP) под именем PERSONAL.XLSB.
Если Личная книга макросов уже была ранее создана, то через меню Вид/ Окно/ Отобразить отобразите ее, скопируйте в нее лист Служ, сохраните Личную книгу макросов (можно ее потом скрыть Вид/ Окно/ Скрыть ).
Теперь откройте книгу, в которой нужно записать число прописью . Исходное число разместите, например, в ячейке А1 . Введите в нужную ячейку формулу: =ЕСЛИ(A1;СЖПРОБЕЛЫ( ИНДЕКС(PERSONAL.XLSB!Миллионы;ОКРУГЛВНИЗ(A1;-6)/1000000+1)&" "& ИНДЕКС(PERSONAL.XLSB!тысячи;ОСТАТ(ОТБР(A1/1000);1000)+1)&" "& ИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&" руб. "&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;"00")&" коп.");"ноль руб. 00 коп.")
Формула отобразит число прописью. Ячейки, содержащие исходное число и формулу, можно перенести в любое место в книге или даже в другую книгу.
Чтобы еще больше приблизиться к идеалу создадим именованную формулу ЧислоПрописью . Для этого:
- выделите ячейку B1 ;
- через меню Формулы/ Определенные имена/ Присвоить имя создайте именованную формулу ЧислоПрописью;
- в поле Диапазон введите формулу указанную выше:
- нажмите ОК;
- в ячейке В1 введите формулу =ЧислоПрописью
- ячейка В1 будет содержать число прописью.
Теперь ячейки А1 и В1 можно скопировать и перенести в любое место в книге, но они должны быть всегда на одной строке и в соседних столбцах, т.к. именованной формуле использована относительная ссылка .
При пересылке файла, например, по электронной почте, формула будет продолжать работать, не смотря на то, что Личная книга макросов не пересылалась, т.е. Ваши коллеги получившие файл, смогут с ним работать как Вы.
Указание суммы прописью в Excel
При работе с финансовыми документам часто требуется указывать сумму не только в виде числа, но и прописью. Безусловно, такое занятие способно отнять немало времени, особенно, когда речь идет не об одном документе. К тому же, при написании сумм прописью не исключены грамматические ошибки, на поиск и устранение которых также потребуются дополнительные трудозатраты. К счастью, в Эксель можно автоматизировать данный процесс и ниже мы рассмотрим, как именно это сделать.
Специальная надстройка NUM2TEXT
В программе Excel не предусмотрен какой-либо специальный инструмент, позволяющий выполнить автоматический перевод цифр в соответствующие текстовые значения. Однако в этом деле может помочь специальная надстройка NUM2TEXT, которая работает через функцию.
Алгоритм действий следующий:
- В верхней строке окна программы кликаем по меню “Файл”.
- В перечне слева выбираем пункт “Параметры”.
- В открывшихся параметрах программы кликаем по разделу “Надстройки”. В нижней части окна щелкаем по кнопке “Перейти” рядом с пунктом “Управление”, значение которого должно быть установлено как “Надстройки Excel”.
На экране отобразится окно надстроек, в котором нажимаем кнопку “Обзор”.







Ручной ввод формулы функции
Опытные пользователи довольно часто предпочитают вместо использования вставки функции и последующего заполнения ее аргументов в отдельных окнах сразу писать конечную формулу в ячейке.
В данном случае, формула выглядит следующим образом:
=Сумма_прописью(Сумма)
В качестве аргумента “Сумма”, как мы ранее уже отметили, может быть указано как конкретное число, так и ссылка на ячейку.
Например, вот как выглядит финальная формула с числом 21: =Сумма_прописью(21) .
После того, как она набрана в нужной ячейке, нам остается только нажать Enter, чтобы получить результат.
Или же мы можем вместо числа указать адрес ячейки: =Сумма_прописью(B3) .
После нажатия клавиши Enter мы также получаем результат в виде суммы прописью в ячейке с формулой.
Заключение
Несмотря на то, что в Эксель по умолчанию не предусмотрена функция, позволяющая перевести числовое значение в сумму прописью, тем не менее, выполнить данную задачу в программе можно, установив специальную надстройку. Данный процесс не займет много времени и не требует особых пользовательских навыков.