Lost your password?


MulTEx »

ПрописьСумма

Данная функция является частью надстройки MulTEx

MulTEx

Подобная функция широко востребована работниками экономических и бухгалтерских областей, да и, наверное, всех, кто так или иначе связан с учетом денежных средств и составлением всевозможных бланков в 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 с числами, превышающими сотни триллионов, корректно работать не умеет(последние цифры будут заменены нулями).


Расскажи друзьям, если статья оказалась полезной:
  Плейлист   Видеоинструкции по использованию надстройки MulTEx
Обсуждение: 26 комментариев
  1. Как Вы записываете функцию?

  2. me-loca:

    пишу: =Propis_Summ_RUS(A1;1;0) и выводится: ... белорусских рублей ноль копеек.

  3. Нет идей. Я не могу повторить Вашу ситуацию, как ни пытаюсь. Если не затруднит, вышлите мне на почту файл с суммой и тем, как Вы записываете функцию.

  4. Рифкат:

    как дописать узбекский сум и тийины (это копейки)
    .

  5. Никак. Необходимо менять/дописывать код. Хотя если у наименование валюты не склоняется - то можно попробовать применить функцию ПСТР для разбиения текста и подстановки нужой валюты.

  6. Настя:

    @Рифкат
    есть похожая функция,где помимо 5 заложенных видов валюты (рубли,гривны,тенге, доллары и евро) можно настроить и любую другую денежную единицу(да и не денежную тоже).
    кроме того,там есть возможность склонять сумму в любом падеже,выводить без дробной части и еще некоторые полезные фишки.
    http://www.yelaburg.ru/products/summa_propisyu?s=ev1

  7. Евгения:

    А мне бы сокращенно-руб,коп, никак не сделать? у меня не вмещается

  8. Александр:

    число 140009
    пишет сто сорок тысяч девяносто девять рублей
    как исправить?

  9. Виталий:

    ПрописьСумма не работает при определенных обстоятельствах.
    За что вы хотите 2500руб.? Если продукт сырой и недоделанный...

    • При каких именно? Если уж сказали, что не работает - так пишите что именно. А так...Комментарий выше от Александра я уже учел, ошибка исправляется.
      Я же не вымогаю у Вас 2500р. Для того, чтобы понять много это для Вас или мало - я сделал пробный период месяц. Не устраивает - не приобретайте, никаких проблем. Я в свое время набирал тестеров на программу(раздавал её им бесплатно). Так людям достаточно было получить полную версию и пропасть. Вот и весь сказ. Готовы потестировать? Отдам бесплатно, если будете отлавливать косяки программы и описывать мне на почту действия, которые повлекли ошибки.

  10. Добрый вечер. Подскажите пожалуйста как сделать, чтоб начало предложения (сумма прописью) начиналось с заглавной (т.е. с большой буквы). Заранее благодарен

    • Такая формула должно помочь:
      =ПРОПИСН(ПСТР(ПрописьСумма(A1;2;2);1;1))&ПСТР(ПрописьСумма(A1;2;2);2;999)
      =UPPER(MID(ПрописьСумма(A1,2,2),1,1))&MID(ПрописьСумма(A1,2,2),2,999)

      в будущем планирую добавить эту возможность в качестве параметра самой функции.

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Тренинги

Заказать
Юридическая информация

Использование материалов сайта

Политика Конфиденциальности

ИП Щербаков Дмитрий Валентинович
ОГРНИП: 318502700083307
ИНН: 504013350772

Наши партнеры

Перейти

Счетчики

Рейтинг@Mail.ru Яндекс.Метрика
© 2024 Excel для всех   Войти