Сумма прописью в экселе

Функция сумма прописью на русском языке

После установки надстройки VBA-Excel добавится функционал для вставки суммы прописью. Он содержит удобную форму для ввода (см. рисунок справа), а также функцию СУММАПРОПИСЬЮ, которой можно пользоваться так же как и любой встроенной в Excel.

Вы сможете указать число прописью в любом падеже, а также выбрать формат вывода, который необходим в конкретном случае.

Вы можете указать сумму прописью в договоре в рублях (как с копейками так и без), в долларах США или евро (с центами или без). Помимо суммы договора можно прописывать прописью и срок в календарных или рабочих днях. Можно указывать количество товара прописью в штуках.

Функционал достаточно гибкий и позволяет настраивать отображение скобок, формат дробной части, указывать сумму с заглавной или прописной буквы и многое другое.

Вставка суммы прописью через пользовательскую форму

Наиболее простой способ вставить сумму прописью – это заполнить специальную форму.

  1. Выберите ячейку, в которую необходимо вставить число прописью.
  2. На вкладке VBA-Excel нажмите команду Сумма прописью и выберите язык Русский.
  3. Появится диалоговое окно для выбора параметров функции. Заполните ее так как необходимо Вам. Настройки автоматически сохраняются, чтобы не пришлось повторять действия в следующий раз.
  4. Нажмите Вставить текстом, тогда сумма прописью будет вставлена в ячейку как текст. Нажмите Вставить формулой в случае если в ячейку должна быть вставлена формула, в этом случае сумма прописью будет автоматически изменяться при редактировании числа.

Второй способ вставить сумму прописью – это ввести формулу в ячейку: =СУММАПРОПИСЬЮ(A1), где A1 – ссылка на ячейку с формулой.

Далее рассмотрим подробнее синтаксис функции.

Подробный синтаксис функции

Для использования функции не обязательно постоянно вызывать форму с параметрами. Функцию можно использовать также как и прочие функции Excel. Функция имеет следующие переменные:

=СУММАПРОПИСЬЮ(Число; ; ; ; ; ; )

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

  • Число – ссылка на ячейку или число (не обязательно в числовом формате), которое необходимо написать прописью.
  • число от 1 до 6, определяющее падеж
  1. Именительный (по умолчанию если параметр не указан)
  2. Родительный
  3. Дательный
  4. Винительный
  5. Творительный
  6. Предложный

– число от 0 до 8 для добавления после суммы прописью в нужном падеже тип данных

  1. Ничего (по умолчанию если параметр не указан)
  2. Рубли
  3. Доллары США
  4. Евро
  5. Календарные дни
  6. Рабочие дни
  7. Дни
  8. Штуки
  9. Целое + дробная часть

– значение 0 или 1, которое указывает на необходимость записи дробной части числа прописью

  1. Не выводить прописью дробную часть числа (по умолчанию)
  2. Указать прописью также и дробную часть числа

– значение 0 или 1, которое указывает на необходимость дублирования числа перед суммой прописью

  1. Скрыть число перед суммой прописью
  2. Продублировать числовое значение суммы прописью (по умолчанию)

– значение 0 или 1, которое указывает на необходимость записывать сумму прописью в скобках

  1. Убрать скобки из суммы прописью
  2. Поместить сумму прописью в скобки (по умолчанию)

– значение 0 или 1, которое указывает на необходимость делать первую букву суммы прописью заглавной

  1. Все буквы суммы прописью строчные
  2. Сделать первую букву заглавной (по умолчанию)

Разберем синтаксис функции на примерах:

Склонение числительных по падежам.

Добавление типа данных после указания суммы прописью

Обратите внимание, что если вторая переменная (падеж) не задана, то указывается по умолчанию в именительном падеже

Как прописать дробную часть числа с помощью функции.

Различные форматы вывода суммы прописью.

Через функцию

Среди тех решений, что я нашел, мне понравилась вот эта надстройка . Правда, там файл надо скачивать через пару лишних этапов, поэтому можете его скачать здесь .

Как пользоваться надстройкой:

  1. Открываете Excel. Параметры Excel/Надстройки/Кнопка “Перейти”.
  2. В открывшемся окне нажимаете “Обзор. ”
  3. Выбираете ту папку, куда вы скачали файл sumprop.xla и нажимаете “Ок”.
  4. Нажимаете на нужную вам ячейку и выбираете функции. Там будут новые для вас функции. Что хорошо в этой настройке – можно выбрать денежную валюту, а можно просто число. Причем в денежной валюте прописаны сразу и копейки (центы). Я не говорю, что это самая лучшая надстройка, их много. Я просто описываю первую устроившую меня.

Как сумму перевести в текст в Excel2007

​. Сюда можно записать​​ в 2003.​Юрий М​​ тысяча рублей 00​ «А» в ячейке​ после запятой.​ rrr: ‘формируем итоговую​​:​Wasp49​ десятки vl =​ txt = txt​ = «миллиона «:​ = 0, «два​ «ж»: Двадцатка =​​ ИмяРазряда(strМиллионы, Mid(strЧисло, Поз​ИНДЕКС(PERSONAL.XLSB!Единицы;ОСТАТ(A1;1000)+1)&» руб. «&ТЕКСТ((A1-ЦЕЛОЕ(A1))*100;»00»)&»​

​ прерогатива VBA.​​ обычное число. Оно​Я сделал так:​: А что -​

​ копеек.​​ А56 работает нормально.​4. Делает первую​ строку СУММАПРОПИСЬЮ =​Аля, был человек, который​: «Спасибо большое, кажется​​ Mid(SumInt, shag, 1)​

​ & Desyatki(vl) ‘​​ mlrd(2) = «миллиарда​ евро», IIf(Valuta =​

​ «одна » Case​​ + 1, 2),​​ коп.»);»ноль руб. 00​

​Тем не менее, можно​​ в выделенной ячейке​ распаковал post-106917 и​​ нашу «Копилку» обворовали?​Guest​EvgeniyaD​ букву прописной, остальные​ decmil_txt & mil_txt​

​ сам с собой​​ нашла!!! А без​​ If vl =​ — если конец​ » Desyatki(3) =​​ 1, «два рубля»,​ «с»: Двадцатка =​

​ «миллион «, «миллиона​​ коп.»)​ предложить следующее решение​ отобразиться в формате​

​ скопировал файл в​​ Там нет Суммы​: Стандартной функции нет.​

​: MCH, ясно. Отображается​​ строчные.​​ & sottys_txt &​

​ говорил, но по​​ макросов, с помощью​ «1» And Mid(SumInt,​ триады от 11​​ «тридцать «: Sotni(3)​​ «два доллара»)) Edinicy(3)​ «одно » End​ «, «миллионов «)​

​Формула отобразит число прописью.​​ с помощью обычных​ записанной прописью денежной​ C-DocumSet-User-ApplicData-Microsoft-AddIns. Затем в​ прописью?​Есть только пользовательские.​

​ у нас по-разному.​​5. Если число​ dectys_txt & tys_txt​ делу -​ какой-нибудь формулы этого​ shag + 1,​

​ до 19 то​​ = «триста «:​ = «три «:​ Select Case «2»:​​ ‘Тысячи’ Поз =​​ Ячейки, содержащие исходное​ формул:​ суммы в рублях​​ рабочет документе (счете,​Guest​

​Поищите на форуме​​ Alex_ST, «гарантированный» просто​ целое, например 121,​ & sot_txt &​Guest​

​ сделать нельзя?»​​ 1) <> 0​

​ перескакиваем на единицы,​​ tys(3) = «тысячи​

​ EdinicyPoslednie(3) = IIf(Valuta​​ Select Case Sex​​ 7 strТысячи =​

​ число и формулу,​​разместить в Личной книге​ и копейках.​ накладной) в любой​: не такая​

​ самостоятельно — примеры​​ забыла удалить. Я​ то результат будет​ dec_txt & ed_txt​​: работает и с​Попробую найти у​ Then GoTo 10​​ иначе — формируем​ «: mln(3) =​ = 0, «три​

​ Case «м»: Двадцатка​​ Сотни(Mid(strЧисло, Поз, 1))​

​ можно перенести в​​ макросов (PERSONAL.XLSB) вспомогательные​Можно в поле занести​ нужной ячейке пишу​Юрий М​

​ выкладывались неоднократно.​​ имела ввиду именно​ «Сто двадцать один»,​ End Function ‘вспомогательная​ офисом 2к10​ себя в файлах​ Else txt =​ десятки Case 7​ «миллиона «: mlrd(3)​ евро», IIf(Valuta =​ = «два «​ strТысячи = strТысячи​ любое место в​ диапазоны, содержащие некоторые​ адрес любой ячейки.​ =СуммаПрописью(), где в​: Что не такая?​ytk5kyky​

​ ячейку а56. Но,​​ если дробное -​ функция для выделения​MCH​ пропись на русском​ txt & Desyatki(vl)​ ‘ — единицы​ = «миллиарда «​ 1, «три рубля»,​​ Case «ж»: Двадцатка​ & Десятки(Mid(strЧисло, Поз​ книге или даже​ числа прописью (от​ Это делается либо​ скобках указываю сумму​dude​: Я уж было​ видимо, зависит от​ 121,22, то результат​​ из числа разрядов​: Функция кривая, на​ языке без маросов.​

​ ‘ — если​​ миллионов vl =​

​ Desyatki(4) = «сорок​​ «три доллара»)) Edinicy(4)​ = «две «​ + 1, 2),​ в другую книгу.​ 0 до 999);​ путем ручной записи​ или даю ссылку​

​: сумма прописью​​ подумал, что никто​ программы.​​ получится «Сто двадцать​

​ Private Function Class(M,​​ числах 0, 1000000,​ есть на английском​ конец триады от​​ Mid(SumInt, shag, 1)​ «: Sotni(4) =​ = «четыре «:​ Case «с»: Двадцатка​ «ж») strТысячи =​Чтобы еще больше приблизиться​​создать формулу, переводящую в​ координат этой ячейки,​ на ячейку. Все​(без арабской вязи)​

​ этот вопрос не​​Alex_ST​ одна целая двадцать​ I) Class =​​ 1000000000 и др.​ (но там все​

​ 11 до 19​​ If shag >​ «четыреста «: tys(4)​ EdinicyPoslednie(4) = IIf(Valuta​ = «Два «​ strТысячи & ИмяРазряда(strТысячи,​ к идеалу создадим​ текст любое число​ либо простым кликом​ работает!​​Владимир​ задаст. Большой был​: Да похоже, что​ две сотых».​ Int(Int(M — (10​ дает не правильное​ проще — нет​ то перескакиваем на​ 2 Then If​ = «тысячи «:​ = 0, «четыре​ End Select Case​

planetaexcel.ru>

​ Mid(strЧисло, Поз +​

  • В excel преобразовать число в время в
  • Excel 2016 сумма прописью
  • Excel преобразовать в число
  • Преобразовать дату в число в excel
  • В excel перевод числа в текст
  • Excel число преобразовать в строку
  • Excel как число преобразовать в текст
  • Excel преобразовать дату в текст
  • Как в excel выделить число из текста
  • Как преобразовать текст в число эксель
  • Как в excel число сделать прописью
  • Функция в excel преобразовать в число

Надстройка: цена прописью в Excel

В большинстве случаев ее использование в качестве надстройки наиболее удобно, хотя иногда возникают проблемы подключения надстройки.

Нужно поместить полученный файл sumprop.xla в папку, в которой хранятся дополнительные надстройки. Конкретный путь к этой папке зависит от версии Excel, но скорее всего, в Windows 7, он будет похожим на этот:

C:\Documents and Settings\User\Application Data\Microsoft\AddIns

где: вместо User следует подставить имя пользователя Windows.

Дополнительное неудобство вызывается тем, что папка Application Data может быть скрыта, то есть не видна при просмотре в проводнике Windows.

Проще всего для размещения скачанного файла в нужной папке нужно:

  1. Выбрать в Excel команду меню Сервис — Надстройки и в появившемся диалоге нажать кнопку Обзор. Будет открыт диалог выбора файла с надстройкой, причем текущей окажется нужная вам папка.
  2. Запустите проводник Windows и перейдите в нем к папке, в которой находится скачанный ранее из интернета файл. Перетащите с помощью мыши значок файла из окна проводника в открытый диалог. Теперь файл с нужной надстройкой находится в нужной папке.
  3. Щелкните на нем мышью и нажмите кнопку OK, чтобы закрыть диалог. В списке доступных надстроек должна появиться строка Сумма Прописью.
  4. Установите флажок рядом с этой строкой и нажмите кнопку OK,
  5. После чего вы сможете использовать функцию печати суммы прописью в Excel.

Как использовать мастер функций, для работы с функциями вывода суммы прописью и числа прописью

Для этого вначале щелкните мышью на ячейке, в которую вы хотите вставить функцию, после чего откройте список доступных функций. В нем следует выбрать вариант Другие функции. Кроме того, для вызова функций можно нажать кнопку fx, расположенную в левой части строки формул. В ранних версиях программы аналогичная кнопка расположена на панели инструментов. Каким бы способом не вызван был мастер функций, в появившемся диалоге необходимо выбрать категорию Определенные пользователем. В списке функций данной категории должны находиться СуммаПрописью и ЧислоПрописью. Выбрав нужную функцию, нажмите кнопку OK, чтобы перейти к следующему диалогу мастера функций. В нем задаются аргументы, то есть вы должны ввести число, которое будет преобразовано в слова. Можно ввести непосредственно значение или сослаться на ячейку, в которой это значение расположено. Нажав кнопку OK, вы закроете диалог и вставите результат в текущую ячейку.

Преобразование с помощью макросов Excel

Можно написать собственную функцию, которая произведет конвертацию суммы прописью. Нажмите сочетание ALT+F11 и в открывшемся разработчике Excel VBA вставьте новый модуль. В него добавьте следующий код.

Function SUMMPROPIS(n As Double) As String
 Dim Chis1, Chis2, Chis3, Chis4, Chis5 As Variant
 Chis1 = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 Chis2 = Array("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят", "девяносто ")
 Chis3 = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
 Chis4 = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 Chis5 = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")
 If n <= 0 Then
 SUMMPROPIS = "ноль"
 Exit Function
End If
 cifr = Retclass(n, 1)
 des = Retclass(n, 2)
 hund = Retclass(n, 3)
 thous = Retclass(n, 4)
 desthous = Retclass(n, 5)
 hundthous = Retclass(n, 6)
 mil = Retclass(n, 7)
 desmil = Retclass(n, 8)Select Case desmil
 Case 1
 mil_txt = Chis5(mil) & "миллионов "
 GoTo www
 Case 2 To 9
 desmil_txt = Chis2(desmil)
 End Select
 Select Case mil
 Case 1
 mil_txt = Chis1(mil) & "миллион "
 Case 2, 3, 4
 mil_txt = Chis1(mil) & "миллиона "
 Case 5 To 20
 mil_txt = Chis1(mil) & "миллионов "
 End Select
www:
 hundthous_txt = Chis3(hundthous)
 Select Case desthous
 Case 1
 thous_txt = Chis5(thous) & "тысяч "
 GoTo eee
 Case 2 To 9
 desthous_txt = Chis2(desthous)
 End Select
 Select Case thous
 Case 0
 If desthous > 0 Then thous_txt = Chis4(thous) & "тысяч "
 Case 1
 thous_txt = Chis4(thous) & "тысяча "
 Case 2, 3, 4
 thous_txt = Chis4(thous) & "тысячи "
 Case 5 To 9
 thous_txt = Chis4(thous) & "тысяч "
 End Select
 If desthous = 0 And thous = 0 And hundthous <> 0 Then hundthous_txt = hundthous_txt & " тысяч "
eee:
 hund_txt = Chis3(hund)
 Select Case des
 Case 1
 cifr_txt = Chis5(cifr)
 GoTo rrr
 Case 2 To 9
 des_txt = Chis2(des)
 End Select 
 cifr_txt = Chis1(cifr)
rrr:
 SUMMPROPIS = desmil_txt & mil_txt & hundthous_txt & desthous_txt & thous_txt & hund_txt & des_txt & cifr_txt
End Function
Private Function Retclass(M, I)
 Retclass = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1))
End Function

Теперь эту функцию можно вызвать обычным путем и получить сумму прописью. Она находится в разделе функций Excel «Определенные пользователем». В качестве аргумента укажите адрес с числом. Перевод в сумму прописью осуществляется только для целых чисел. Дробное число требует дополнительной формулы:

 =SUMMPROPIS(A7)&" руб. "&ТЕКСТ((A7-ЦЕЛОЕ(A7))*100;"00")&" коп."

Вместо ячейки A7 подставляйте свой адрес. Копейки в таком исполнении будут выводиться в виде числа. Мы рассмотрели все способы представления суммы прописью в Excel. Выбирайте для себя самый удобный и пользуйтесь с удовольствием!

СУММА ПРОПИСЬЮ в Excel 2007, 2010 Макрос для бухгалтеров на русском

Бухгалтеру при работе в Эксел при печати платежек, приходников, счетов-фактур, необходимо заполнять поля суммы прописью. Корпорация Майкрософт об этом не подумала, а Андрей Коцюбинский подумал. Он писал книги по компьютерной тематике, и среди них значительной популярностью пользовалась книга «Excel для бухгалтера в примерах». С этой книгой распространялся макрос для Excel, автоматизирующий печать суммы прописью в электронных таблицах: sumprop и sumprop.xla

Вот с сайта его веб-студии е-КАО мы и взяли этот доработанный макрос.

В большинстве случаев в бухучете наиболее удобно использовать надстройку, с которой распространяется макрос, но иногда возникают проблемы с подключением надстройки.

Поэтому в приложенном для скачивания zip-файле находится вместе два файла:

  1. sumprop.xla — файл надстройки
  2. sumprop.xls — файл макроса

Макрос: сумма прописью в Excel 2007, 2010

Можно использовать его как обычный макрос, размещенный в обычной рабочей книге Excel (sumprop.xls). Я тоже так делаю, потому что для подстраховки безопасности не использую чужих, непроверенных макросов. После того, как вы скачаете файл с макросом Сумма Прописью, необходимо подключить данный макрос. Но для этого сначала необходимо разрешить выполнение макросов в MS Excel.

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

Для включения макросов при работе с версией Excel 2002, входящей в состав Microsoft Office XP, или с версией Microsoft Office Excel 2003, нужно выбрать команду меню Сервис — Параметры. Будет открыт диалог настройки, имеющий несколько вкладок. Необходимо открыть вкладку Безопасность, на которой следует нажать кнопку Безопасность макросов. На экране появится диалог настройки безопасности Эксел. С помощью переключателя, расположенного в диалоге, установите низкий уровень безопасности, чтобы выполнялись все макросы. Далее необходимо закрыть оба диалога, для чего следует нажать кнопки OK в них.

В Excel 2000 для вызова аналогичного диалога необходимо выбрать команду меню Сервис — Макрос — Безопасность.

Если же используется версия Эксел 97, нужно выбрать команду меню Сервис — Параметры. В диалоге настройки следует выбрать вкладку Общие и снять флажок Защита от макровирусов. Следует заметить, что если вы не снимите защиту от макровирусов в Excel 97 или установите средний уровень безопасности в других версиях программы, при запуске Excel будет задан вопрос, хотите ли вы выполнять макросы, на который следует ответить утвердительно.

Числа прописью с копейками заглавными или строчными буквами в Excel

Вот код VBA для пользовательской функции. Отображение суммы прописью с копейками и выбором первой заглавной или строчной буквы

Function РубПропись(Сумма As Double, Optional Без_копеек As Boolean = False, _
 Optional КопПрописью As Boolean = False, Optional начинитьПрописной As Boolean = True) As String
'Функция для написания суммы прописью
 Dim ed, des, sot, ten, razr, dec
 Dim i As Integer, str As String, s As String
 Dim intPart As String, frPart As String
 Dim mlnEnd, tscEnd, razrEnd, rub, cop
 
 dec = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 ed = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 ten = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")
 des = Array("", "", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто ")
 sot = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
 razr = Array("", "тысяч", "миллион", "миллиард")
 mlnEnd = Array("ов ", " ", "а ", "а ", "а ", "ов ", "ов ", "ов ", "ов ", "ов ")
 tscEnd = Array(" ", "а ", "и ", "и ", "и ", " ", " ", " ", " ", " ")
 razrEnd = Array(mlnEnd, mlnEnd, tscEnd, "")
 rub = Array("рублей", "рубль", "рубля", "рубля", "рубля", "рублей", "рублей", "рублей", "рублей", "рублей")
 cop = Array("копеек", "копейка", "копейки", "копейки", "копейки", "копеек", "копеек", "копеек", "копеек", "копеек")
 If Сумма >= 1000000000000# Or Сумма < 0 Then РубПропись = CVErr(xlErrValue): Exit Function
 '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 If Round(Сумма, 2) >= 1 Then
 intPart = Left$(Format(Сумма, "000000000000.00"), 12)
 For i = 0 To 3
 s = Mid$(intPart, i * 3 + 1, 3)
 If s <> "000" Then
 str = str & sot(CInt(Left$(s, 1)))
 If Mid$(s, 2, 1) = "1" Then
 str = str & ten(CInt(Right$(s, 1)))
 Else
 str = str & des(CInt(Mid$(s, 2, 1))) & IIf(i = 2, dec(CInt(Right$(s, 1))), ed(CInt(Right$(s, 1))))
 End If
 On Error Resume Next
 str = str & IIf(Mid$(s, 2, 1) = "1", razr(3 - i) & razrEnd(i)(0), _
 razr(3 - i) & razrEnd(i)(CInt(Right$(s, 1))))
 On Error GoTo 0
 End If
 Next i
 str = str & IIf(Mid$(s, 2, 1) = "1", rub(0), rub(CInt(Right$(s, 1))))
 End If
 РубПропись = str
 ''''''''''''''''''
 If Без_копеек = False Then
 frPart = Right$(Format(Сумма, "0.00"), 2)
 If frPart = "00" Then
 frPart = ""
 Else
 If КопПрописью Then
 frPart = IIf(Left$(frPart, 1) = "1", ten(CInt(Right$(frPart, 1))) & cop(0), _
 des(CInt(Left$(frPart, 1))) & dec(CInt(Right$(frPart, 1))) & cop(CInt(Right$(frPart, 1))))
 Else
 frPart = IIf(Left$(frPart, 1) = "1", frPart & " " & cop(0), frPart & " " & cop(CInt(Right$(frPart, 1))))
 End If
 End If
 РубПропись = str & " " & frPart
 End If
 ''''''''''''''''''
' РубПропись = str & frPart
 If начинитьПрописной Then Mid$(РубПропись, 1, 1) = UCase(Mid$(РубПропись, 1, 1))
' If начинитьПрописной Then РубПропись = UCase(Left(РубПропись, 1)) & Mid(РубПропись, 2)
End Function
  • Без копеек (1), с копейками (0)
  • Копейки прописью (1), числом (0)
  • Начинать прописью (0), заглавной (1)

Вот как используется функция

Примечание

  • Данная функция будет работать с числами от 0 до 99 999 999
  • Перед копирование кода переключите раскладку клавиатуры на русский язык (для корректного копирования русского текста)
  • Код VBA необходимо вставлять во все файлы (Книги Excel), где вы хотите, чтобы она работала
  • После вставки код, необходимо сохранить файл с поддержкой макросов xlsm (в Excel, начиная с 2007 версии)
  • Функцию можно либо набирать в ручную, либо, если вы забыли как она пишется, через мастер функций (кнопка fx в строке формул, категория Определенные пользователем)

С помощью VBA

     Вот еще один способ на любителя. Конечно создать сумму прописью в Excel с помощью макроса не самый распространённый способ, но им достаточно часто пользовались и пользуются до сих пор. Большой сложности он не представляет, вам нужно:

  • Комбинацией горячих клавиш ALT+F11 вызвать редактор Visual Basic;
  • С помощью меню «Insert» — «Module», создать пустой новый модуль;
  • Скопировать предоставленный код макроса в тело модуля.

      Получается готовая пользовательская функция VBA, которая умеет превращать любую сумму от 0 до 9 999 999 в ее текстовое воплощение, создается сумма прописью.

      Код нужного макроса выглядит так:

Function СУММАПРОПИСЬЮ(n As Double) As String

   Dim Nums1, Nums2, Nums3, Nums4 As Variant

      Nums1 = Array(«», «один «, «два «, «три «, «четыре «, «пять «, «шесть «, «семь «, «восемь «, «девять «)

      Nums2 = Array(«», «десять «, «двадцать «, «тридцать «, «сорок «, «пятьдесят «, «шестьдесят «, «семьдесят «, _

              «восемьдесят «, «девяносто «)

      Nums3 = Array(«», «сто «, «двести «, «триста «, «четыреста «, «пятьсот «, «шестьсот «, «семьсот «, _

             «восемьсот «, «девятьсот «)

      Nums4 = Array(«», «одна «, «две «, «три «, «четыре «, «пять «, «шесть «, «семь «, «восемь «, «девять «)

      Nums5 = Array(«десять «, «одиннадцать «, «двенадцать «, «тринадцать «, «четырнадцать «,

             «пятнадцать «, «шестнадцать «, «семнадцать «, «восемнадцать «, «девятнадцать «)

    If n &lt;= 0 Then

        СУММАПРОПИСЬЮ = «ноль»

Exit Function

End If

 ‘разделяем число на разряды, используя вспомогательную функцию Class

   ed = Class(n, 1)

   dec = Class(n, 2)

   sot = Class(n, 3)

   tys = Class(n, 4)

   dectys = Class(n, 5)

   sottys = Class(n, 6)

   mil = Class(n, 7)

   decmil = Class(n, 8)

‘проверяем миллионы

Select Case decmil

   Case 1

     mil_txt = Nums5(mil) & «миллионов «

     GoTo www

   Case 2 To 9

     decmil_txt = Nums2(decmil)

End Select

Select Case mil

   Case 1

     mil_txt = Nums1(mil) & «миллион «

   Case 2, 3, 4

     mil_txt = Nums1(mil) & «миллиона «

   Case 5 To 20

     mil_txt = Nums1(mil) & «миллионов «

End Select

www:

sottys_txt = Nums3(sottys)

‘проверяем тысячи

Select Case dectys

   Case 1

     tys_txt = Nums5(tys) & «тысяч «

     GoTo eee

   Case 2 To 9

     dectys_txt = Nums2(dectys)

End Select

Select Case tys

   Case 0

     If dectys > 0 Then tys_txt = Nums4(tys) & «тысяч «

   Case 1

     tys_txt = Nums4(tys) & «тысяча «

   Case 2, 3, 4

     tys_txt = Nums4(tys) & «тысячи «

   Case 5 To 9

     tys_txt = Nums4(tys) & «тысяч «

End Select

If dectys = 0 And tys = 0 And sottys 0 Then sottys_txt = sottys_txt & » тысяч «

eee:

sot_txt = Nums3(sot)

‘проверяем десятки

Select Case dec

   Case 1

     ed_txt = Nums5(ed)

     GoTo rrr

   Case 2 To 9

     dec_txt = Nums2(dec)

End Select

ed_txt = Nums1(ed)

rrr:

‘формируем итоговую строку

СУММАПРОПИСЬЮ = decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt

End Function

‘вспомогательная функция для выделения из числа разрядов

Private Function Class(M, I)

  Class = Int(Int(M — (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I — 1))

End Function

      Сохраняете внесенные изменения и теперь можно пользоваться новой функцией, как и прочими, она отображается в «Мастере функций» в категории «Определенные пользователем» или же просто вручную ввести ее в ячейке указав какую сумму необходимо сделать прописной.

      Но как видите, макрос пишет прописью суммы, только целые числа, а вот для получения еще и копеек, эту конструкцию нужно доработать использованием следующей функции:

      =СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.»

    Приставку «Module2» в моей формуле можете опустить, так как таким образом, программа разделяет 2 похожие формулы, одна от установленных надстроек, а вторая от макроса.

     А на этом у меня всё! Я очень надеюсь, что всё о том, как ваши цифры сделать прописными вам понятно. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!

     Не забудьте поблагодарить автора!

При заполнении различных финансовых документов часто требуется прописать сумму не только числом, но и прописью. Конечно, это занимает гораздо больше времени, чем обычное написание с помощью цифр. Если подобным образом нужно заполнить не одно, а много документов, то временные потери становятся огромными. Кроме того, именно в записи суммы прописью наиболее часто встречаются грамматические ошибки. Давайте выясним, как сделать так, чтобы числа прописью вносились автоматически.

С помощью пользовательской функции

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

Для этого вам необходимо выполнить некоторые действия. Сначала скачиваете файл надстройки здесь. После, переносите его в папку AddIns, которую можно найти по пути C:Documents and SettingsUserApplication DataMicrosoftAddIns, только вы вместо «User» подставляете имя вашего пользователя Windows. Еще может возникнуть проблема в отображении папки «Application Data», она может быть скрыта, тогда вам в настройках «Свойства папки» нужно активировать пункт «Показать скрытые файлы и папки». Теперь собственно и приступим к включении этой надстройки. В Excel выбираем «Файл» — «Параметры» — «Надстройки». В диалоговом окне «Настройки» ставим галочку напротив включаемой надстройки «Сумма Прописью» и нажимаем «ОК». Следующим шагом, ставим курсор на нужную ячейку и вызываем «Мастер функций». В разделе «Категория» выбираем пункт «Определенные пользователем» и теперь весть список встроенных функций по написанию сумм прописью нам доступен. Кстати как видите, доступен даже выбор функций в разрезе валют. Сразу замечу, что надстроек бывает много, есть и более расширенные, но эта меня полностью устраивает, вот я ее и описываю. В результате мы получаем возможность получить следующие данные:

Создание сумм прописью с помощью формул

Это вполне осуществимый вариант, но очень громоздкий. Формула, которая может самостоятельно преобразовывать числа в буковки и правильно орфографически написать сумму прописью получится очень большой. В случае, когда вы захотите упростить формулу, вам нужно будет отдельный блок формул, который буде и заниматься всеми преобразованиями. Единственное преимущество от использования формулы, это когда вы разберетесь с ней, то самостоятельно сможете ее изменять: разрядность, валюту, склонение и т.п.

Ради общего интереса я предоставлю вам пример файла с работающей формулой, которую я нашёл на excelworld.ru, поскольку самостоятельно формульным решением задачи я не занимался, но считаю нужным предоставить весь наработанный или собранный материал. Скачать пример можно по этой ссылке.

Через формулу

Теперь  я бы хотел поговорить о сложности построения такой функции или формулы самому. Как бы я строил подобную функцию:

  1. Я бы определил разрядность числа.
  2. Потом я бы подобрал каждой цифре нужное слово, которое бы выбирал из группы названий.
  3. Определил бы падеж единицы.

Т.е., тут пришлось бы использовать как минимум 4 диапазона (например, один диапазон отвечает за сотни: сто, двести, триста и т.д.), кучу условий, функции деления на ноль, ну и само собой ряд функций, текстовых и массивных.

Я имею в виду, что вот так сразу задачу не взять, поэтому, как мне понимается, Excel и не включает в стандартные средства сумму прописью, ведь условия написания разные на каждом языке.

Мне понравились формулы получения суммы прописью вот по этому . Здесь я их разбирать не буду, т.к. это долгий процесс и немного ненужный, т.к. проще взять и пользоваться.

Удачи в использовании!

«Глаза боятся, а руки делают»

Навигация по записям ← Водяные знаки в Excel Заглавные и строчные буквы в Excel →

       Добрый день уважаемый читатель!

     Статья посвящена такому интересному вопросу: «Как создается сумма прописью в Excel?». Эта возможность позволяет нам всю массу информации и расчетов, которые сведены в один результат, оформить как финансовой документ, которые нельзя трактовать двузначно. Недаром же любые банковские, юридические и финансовые документы оформляются и цифрами и буквами. Окромя всего, такие суммы не позволяют ошибаться, где же должна стоять запятая и просто отлично выглядят в сравнении с рядом цифр. Подведя итог, скажу, что любой пользователь Excel, который работает с цифрами и временем, а также печатает документы с их использованием, очень нуждается в инструменте создающим сумму прописью.

       Решить эту проблему можно несколькими способами:

  1. С помощью формул;
  2. С помощью пользовательской функции;
  3. С помощью VBA.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector