Сумма прописью в экселе
Содержание:
- Функция сумма прописью на русском языке
- Через функцию
- Как сумму перевести в текст в Excel2007
- Надстройка: цена прописью в Excel
- Преобразование с помощью макросов Excel
- СУММА ПРОПИСЬЮ в Excel 2007, 2010 Макрос для бухгалтеров на русском
- Числа прописью с копейками заглавными или строчными буквами в Excel
- С помощью VBA
- С помощью пользовательской функции
- Создание сумм прописью с помощью формул
- Через формулу
Функция сумма прописью на русском языке
После установки надстройки VBA-Excel добавится функционал для вставки суммы прописью. Он содержит удобную форму для ввода (см. рисунок справа), а также функцию СУММАПРОПИСЬЮ, которой можно пользоваться так же как и любой встроенной в Excel.
Вы сможете указать число прописью в любом падеже, а также выбрать формат вывода, который необходим в конкретном случае.
Вы можете указать сумму прописью в договоре в рублях (как с копейками так и без), в долларах США или евро (с центами или без). Помимо суммы договора можно прописывать прописью и срок в календарных или рабочих днях. Можно указывать количество товара прописью в штуках.
Функционал достаточно гибкий и позволяет настраивать отображение скобок, формат дробной части, указывать сумму с заглавной или прописной буквы и многое другое.
Вставка суммы прописью через пользовательскую форму
Наиболее простой способ вставить сумму прописью – это заполнить специальную форму.
- Выберите ячейку, в которую необходимо вставить число прописью.
- На вкладке VBA-Excel нажмите команду Сумма прописью и выберите язык Русский.
- Появится диалоговое окно для выбора параметров функции. Заполните ее так как необходимо Вам. Настройки автоматически сохраняются, чтобы не пришлось повторять действия в следующий раз.
- Нажмите Вставить текстом, тогда сумма прописью будет вставлена в ячейку как текст. Нажмите Вставить формулой в случае если в ячейку должна быть вставлена формула, в этом случае сумма прописью будет автоматически изменяться при редактировании числа.
Второй способ вставить сумму прописью – это ввести формулу в ячейку: =СУММАПРОПИСЬЮ(A1), где A1 – ссылка на ячейку с формулой.
Далее рассмотрим подробнее синтаксис функции.
Подробный синтаксис функции
Для использования функции не обязательно постоянно вызывать форму с параметрами. Функцию можно использовать также как и прочие функции Excel. Функция имеет следующие переменные:
=СУММАПРОПИСЬЮ(Число; ; ; ; ; ; )
Квадратные скобки означают что переменная не обязательная, в этом случае используется значение по умолчанию.
- Число – ссылка на ячейку или число (не обязательно в числовом формате), которое необходимо написать прописью.
- – число от 1 до 6, определяющее падеж
- Именительный (по умолчанию если параметр не указан)
- Родительный
- Дательный
- Винительный
- Творительный
- Предложный
– число от 0 до 8 для добавления после суммы прописью в нужном падеже тип данных
- Ничего (по умолчанию если параметр не указан)
- Рубли
- Доллары США
- Евро
- Календарные дни
- Рабочие дни
- Дни
- Штуки
- Целое + дробная часть
– значение 0 или 1, которое указывает на необходимость записи дробной части числа прописью
- Не выводить прописью дробную часть числа (по умолчанию)
- Указать прописью также и дробную часть числа
– значение 0 или 1, которое указывает на необходимость дублирования числа перед суммой прописью
- Скрыть число перед суммой прописью
- Продублировать числовое значение суммы прописью (по умолчанию)
– значение 0 или 1, которое указывает на необходимость записывать сумму прописью в скобках
- Убрать скобки из суммы прописью
- Поместить сумму прописью в скобки (по умолчанию)
– значение 0 или 1, которое указывает на необходимость делать первую букву суммы прописью заглавной
- Все буквы суммы прописью строчные
- Сделать первую букву заглавной (по умолчанию)
Разберем синтаксис функции на примерах:
Склонение числительных по падежам.
Добавление типа данных после указания суммы прописью
Обратите внимание, что если вторая переменная (падеж) не задана, то указывается по умолчанию в именительном падеже
Как прописать дробную часть числа с помощью функции.
Различные форматы вывода суммы прописью.
Через функцию
Среди тех решений, что я нашел, мне понравилась вот эта надстройка . Правда, там файл надо скачивать через пару лишних этапов, поэтому можете его скачать здесь .
Как пользоваться надстройкой:
- Открываете Excel. Параметры Excel/Надстройки/Кнопка “Перейти”.
- В открывшемся окне нажимаете “Обзор. ”
- Выбираете ту папку, куда вы скачали файл sumprop.xla и нажимаете “Ок”.
- Нажимаете на нужную вам ячейку и выбираете функции. Там будут новые для вас функции. Что хорошо в этой настройке – можно выбрать денежную валюту, а можно просто число. Причем в денежной валюте прописаны сразу и копейки (центы). Я не говорю, что это самая лучшая надстройка, их много. Я просто описываю первую устроившую меня.
Как сумму перевести в текст в 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 и нашу «Копилку» обворовали?GuestEvgeniyaD букву прописной, остальные 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.
Проще всего для размещения скачанного файла в нужной папке нужно:
- Выбрать в Excel команду меню Сервис — Надстройки и в появившемся диалоге нажать кнопку Обзор. Будет открыт диалог выбора файла с надстройкой, причем текущей окажется нужная вам папка.
- Запустите проводник Windows и перейдите в нем к папке, в которой находится скачанный ранее из интернета файл. Перетащите с помощью мыши значок файла из окна проводника в открытый диалог. Теперь файл с нужной надстройкой находится в нужной папке.
- Щелкните на нем мышью и нажмите кнопку OK, чтобы закрыть диалог. В списке доступных надстроек должна появиться строка Сумма Прописью.
- Установите флажок рядом с этой строкой и нажмите кнопку OK,
- После чего вы сможете использовать функцию печати суммы прописью в 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-файле находится вместе два файла:
- sumprop.xla — файл надстройки
- 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 <= 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, поскольку самостоятельно формульным решением задачи я не занимался, но считаю нужным предоставить весь наработанный или собранный материал. Скачать пример можно по этой ссылке.
Через формулу
Теперь я бы хотел поговорить о сложности построения такой функции или формулы самому. Как бы я строил подобную функцию:
- Я бы определил разрядность числа.
- Потом я бы подобрал каждой цифре нужное слово, которое бы выбирал из группы названий.
- Определил бы падеж единицы.
Т.е., тут пришлось бы использовать как минимум 4 диапазона (например, один диапазон отвечает за сотни: сто, двести, триста и т.д.), кучу условий, функции деления на ноль, ну и само собой ряд функций, текстовых и массивных.
Я имею в виду, что вот так сразу задачу не взять, поэтому, как мне понимается, Excel и не включает в стандартные средства сумму прописью, ведь условия написания разные на каждом языке.
Мне понравились формулы получения суммы прописью вот по этому . Здесь я их разбирать не буду, т.к. это долгий процесс и немного ненужный, т.к. проще взять и пользоваться.
Удачи в использовании!
«Глаза боятся, а руки делают»
Навигация по записям ← Водяные знаки в Excel Заглавные и строчные буквы в Excel →
Добрый день уважаемый читатель!
Статья посвящена такому интересному вопросу: «Как создается сумма прописью в Excel?». Эта возможность позволяет нам всю массу информации и расчетов, которые сведены в один результат, оформить как финансовой документ, которые нельзя трактовать двузначно. Недаром же любые банковские, юридические и финансовые документы оформляются и цифрами и буквами. Окромя всего, такие суммы не позволяют ошибаться, где же должна стоять запятая и просто отлично выглядят в сравнении с рядом цифр. Подведя итог, скажу, что любой пользователь Excel, который работает с цифрами и временем, а также печатает документы с их использованием, очень нуждается в инструменте создающим сумму прописью.
Решить эту проблему можно несколькими способами:
- С помощью формул;
- С помощью пользовательской функции;
- С помощью VBA.