Подобная функция широко востребована работниками экономических и бухгалтерских областей, да и, наверное, всех, кто так или иначе связан с учетом денежных средств и составлением всевозможных бланков в Excel с использованием бланков. Данная функция выводит в пропись указанное число. Т.е. из числа 123 будет получено сто двадцать три. Возможно выводить рубли и копейки (сто двадцать три рубля двенадцать копеек), целые и сотые (сто двадцать три целых двенадцать сотых) и любые произвольные единицы измерений, а так же указать язык вывода текста и количество знаков после запятой для перевода в пропись. На данный момент в единицах по умолчанию доступно три языка: Русский, Английский и Украинский.

Вызов команды через стандартный диалог:
Мастер функций -Категория "MulTEx" -ПрописьСумма
Вызов с панели MulTEx:
Сумма/Поиск/Функции -Текстовые -ПрописьСумма
Синтаксис:
=ПрописьСумма(I9)
=ПрописьСумма(I9;2;2;"RUS")
=ПрописьСумма(I9;2;1;"RUS";"целая,целых,целых,сотая,сотых,сотых"; ИСТИНА)
=ПрописьСумма(I9;2;1;"RUS";"целая,целых,целых,сотая,сотых,сотых"; 1; 3)
=ПрописьСумма(I9;2;1;"UA";"целая,целых,целых,сотая,сотых,сотых"; 1; 3)
=ПрописьСумма(I9;2;1;"UKR";"целая,целых,целых,сотая,сотых,сотых"; 1; 3)
=ПрописьСумма(I9;2;1;"RUS";"целая,целых,целых,сотая,сотых,сотых"; 1; 3; ИСТИНА)


Число(I9) - указывается число, либо ссылка на ячейку с числом, которое необходимо преобразовать. Вместо ссылки на ячейку(I9) можно напрямую указать число
=ПрописьСумма(145;1;1)
константа

Рубли(2) - необязательный аргумент. Позволяет вывести прописью целую часть числа.
Если присвоено значение 1 - после целой части числа добавляется подпись Рублей. Само число, обозначающее рубли, при этом не преобразуется(1 рубль, 7 рублей).
Если присвоено значение 2 - после целой части числа добавляется подпись Рублей. Само число, обозначающее рубли, при этом преобразуется в текстовое представление(Один рубль, Семь рублей).
Если не указан, либо присвоено значение 0 - только пропись числа(Один), без указания единиц(рубли).

Копейки(1) - необязательный аргумент. Позволяет вывести прописью дробную часть числа.
Если указан, либо присвоено значение 1 - после дробной части числа добавляется подпись Копеек. Само число, обозначающее копейки, при этом не преобразуется(Два рубля 1 копейка, Два рубля 4 копейки).
Если указан, либо присвоено значение 2 - после дробной части числа добавляется подпись Копеек. Само число, обозначающее копейки, при этом преобразуется в текстовое представление этого числа(Два рубля одна копейка, Два рубля четыре копейки).
Если аргумент Копейки не указан, либо ему присвоено значение 0 или ЛОЖЬ(FALSE) - то будет выведена пропись только целого числа, без учета знаков после запятой(Два). Т.е. копейки в данном случае в пропись не выводятся.
Аргументы Рубли и Копейки можно изменять независимо друг от друга. Например, если для числа 23,78 указать Рубли - 1, а Копейки - 0, то в пропись будет выведено: 23 рубля. Если указать Рубли - 2, а Копейки - 1, то в пропись будет выведено: двадцать три рубля 78 копеек

Язык("RUS") - необязательный аргумент. Определяет язык для вывода прописи чисел. Не чувствителен к регистру. Доступны варианты языков:

  • "RUS" или не указан: текст будет выведен на русском языке. 23,78 будет записано как "двадцать три рубля семьдесят восемь копеек"
  • "EN"("en","En"): текст будет выведен на английском языке. 23,78 будет записано как "Twenty three dollars seventy eight cents"
  • "UKR" или "UA": текст выводится на украинском языке: 23,78 будет записано как "двадцять три гривні сімдесят вісім копійок".

Следует учитывать, что если аргумент Единицы указан как сочетание собственных единиц, то язык прописи единиц может отличаться от указанного в параметре Язык. Например, если для числа 23,78 указать Единицы "целая,целых,целых,сотая,сотых,сотых" и установить язык "en", то результат будет некорректный: Twenty three целых seventy eight сотых. Чтобы правильно отобразить на английском языке целые и сотые, аргумент Единицы необходимо записать так: "point,points,points,hundredths,hundredths,hundredths".

Единицы("целая,целых,целых,сотая,сотых,сотых") - необязательный аргумент. Данный аргумент отвечает за проставление обозначений единиц измерения численных показателей. В аргументе необходимо через запятую(без пробелов!) указать единицы измерений для числа.
Как это работает на примере "рубль,рубля,рублей,копейка,копейки,копеек": первые три слова (рубль,рубля,рублей) отвечают за обозначение единиц для целой части числа:

  1. рубль - указывается склонение единицы для числа 1
  2. рубля - указывается склонение единицы для чисел 2,3,4
  3. рублей - указывается склонение единицы для числа 5 и выше

последние три слова (копейка,копейки,копеек) отвечают за обозначение единиц для дробной части числа:

  1. копейка - указывается склонение единицы для числа 1
  2. копейки - указывается склонение единицы для чисел 2,3,4
  3. копеек - указывается склонение единицы для числа 5 и выше

По умолчанию (если аргумент Единицы не указывать) применяется "рубль,рубля,рублей,копейка,копейки,копеек" для русского языка("RUS") и "dollar,dollars,dollars,cent,cents,cents" для английского языка("EN").
Если указать "целая,целых,целых,сотая,сотых,сотых", то для числа 23,78 в пропись будет выведено:

  • Двадцать три целых семьдесят восемь сотых - при указании аргументов Рубли и Копейки равными 2
  • 23 целых 78 сотых - при указании аргументов Рубли и Копейки равными 1

Если аргументом Единицы указать пустую строку - "", то пропись единиц просто не будет произведена и для числа 24,78 будет выведено: двадцать четыре семьдесят восемь.

Таким образом можно указать практически любую валюту и любые единицы измерений: от вагонов до миллилитров. Это делает функцию ПрописьСумма очень гибкой и более универсальной, применимой практически в любом документе, где необходимо вывести в пропись те или иные данные. При этом единицы можно записывать на любом языке.

ПропНач(ИСТИНА) - Необязательный аргумент. Указывается логическое значение ИСТИНА(TRUE) или ЛОЖЬ(FALSE) или выражение, возвращающее логическое значение. Если указано ИСТИНА или 1, то первая буква результирующего текста будет преобразована в заглавную: Два рубля одна копейка. Если не указан, указано ЛОЖЬ или 0, то весь текст будет записан строчными буквами: два рубля одна копейка.

ЧислЗнаков(3) - Необязательный аргумент. Указывается целое число, означающее количество знаков после запятой, которое будет выводиться в пропись. По умолчанию, если не указано, принимает значение 2. Необходим для вывода в пропись единиц, измеряемых числами с тремя и более знаками после запятой, например тонны и килограммы, где килограммы всегда должны обозначаться именно тремя знаками: 3,472. После преобразования получится "три тонны четыреста семьдесят два килограмма". Если число содержит большее число знаков после запятой, чем указано аргументом ЧислЗнаков, такое число будет округлено до указанного количества знаков после запятой.
Допускается указание до 5 знаков после запятой. Если будет указано число больше 5, то функция все равно примет во внимание только 5 знаков.

ВСкобках(ИСТИНА) - Необязательный аргумент. Указывается логическое значение ИСТИНА(TRUE) или ЛОЖЬ(FALSE) или выражение, возвращающее логическое значение. Если указано ИСТИНА или 1, то в результате будет выведено сначала само число, а потом его пропись в скобках: 2 302 (две тысячи триста два) рубля 01 копейка. Если не указан, указано ЛОЖЬ или 0, то пропись выводится в соответствии с остальными параметрами. Если параметр ВСкобках указан как 1 или ИСТИНА, а параметр Рубли как 0, то он будет проигнорирован и текст в скобках все равно будет записан прописью.

Несколько практических примеров указания аргументов для вывода прописи:

  • Дата:
    Число = 1,07
    Рубли - 1
    Копейки - 1
    Единицы - "год,года,лет,месяц,месяца,месяцев"
    Результат - 1 год 07 месяцев
    Если для Единиц указать "месяц,месяца,месяцев,день,дня,дней" - то получим - 1 месяц 07 дней
  • Единицы измерений:
    Число = 1,07
    Рубли - 1
    Копейки - 1
    Единицы - "ящик,ящика,ящиков,коробка,коробки,коробок"
    ПропНач - 0 (или ЛОЖЬ)
    ЧислЗнаков - не указан
    Результат - 1 ящик 07 коробок

    Число = 68,39
    Рубли - 2
    Копейки - 2
    Единицы - "целая,целых,целых,сотая,сотых,сотых"
    ПропНач - 0 (или ЛОЖЬ)
    ЧислЗнаков - не указан
    Результат - шестьдесят восемь целых тридцать девять сотых

    Число = 68,396
    Рубли - 2
    Копейки - 2
    Язык - "RUS"
    Единицы - "целая,целых,целых,тысячная,тысячных,тысячных"
    ПропНач - 1 (или ИСТИНА)
    ЧислЗнаков - 3
    Результат - Шестьдесят восемь целых триста девяносто шесть тысячных

    Число = 68,39
    Рубли - 2
    Копейки - 2
    Язык - "EN"
    Единицы - "point,points,points,hundredths,hundredths,hundredths"
    ПропНач - 1 (или ИСТИНА)
    ЧислЗнаков - 2
    Результат - Sixty eight points thirty nine hundredths

  • Валюта:
    Число = 5,44
    Рубли - 2
    Копейки - 2
    Язык - не указан(или "ru")
    Единицы - не указан
    ПропНач - 0 (ЛОЖЬ) или не указан
    ЧислЗнаков - не указан
    Результат - пять рублей сорок четыре копейки

    Число = 25,44
    Рубли - 2
    Копейки - 2
    Язык - "En"
    Единицы - не указан
    ПропНач - не указан
    ЧислЗнаков - не указан
    Результат - twenty five dollars and forty four cents

    Число = 25,44
    Рубли - 2
    Копейки - 2
    Язык - "UA"
    Единицы - не указан
    ПропНач - не указан
    ЧислЗнаков - не указан
    Результат - двадцять п'ять гривень сорок чотири копійки

    Число = 2302
    Рубли - 0
    Копейки - 0
    Язык - "RUS"
    Единицы - ""
    ПропНач - 1
    ЧислЗнаков - 2
    Результат - 2302(две тысячи триста два)

  • Расстояния:
    Число = 14021,22
    Рубли - 2
    Копейки - 2
    Единицы - "миля,мили,миль,ярд,ярда,ярдов"
    ПропНач - не указан
    ЧислЗнаков - не указан
    Результат - четырнадцать тысяч двадцать одна миля двадцать два ярда
  • Вес:
    Число = 3,472
    Рубли - 2
    Копейки - 2
    Язык - "rus"
    Единицы - "тонна,тонны,тонн,килограмм,килограмма,килограмм"
    ПропНач - 1
    ЧислЗнаков - 3
    Результат - Три тонны четыреста семьдесят два килограмма

Примечание: данная функция обрабатывает числовые значения максимальной величины Сотни триллионов. Число более 999 999 999 999 999,99999 будет преобразовано некорректно, т.к. сам Excel с числами, превышающими сотни триллионов, корректно работать не умеет(последние цифры будут заменены нулями).

Loading

26 комментариев

  1. Добрый день. Скачала Вашу программу и попыталась написать вес прописью. Неправильно пишет "один" и "два" на украинском языке. Получается "один тонна", "два тонни". Возможно, я что-то не так сделала, но попробовав вывести сумму прописью в гривнах получилось то же самое.

  2. Добрый вечер. Почему-то при написании веса на украинскои языке неправильно склоняются "один" и "два". Получается "один тонна", "два тонна" а в килограммах наоборот, не "два", а "дві"

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.