Число прописью в excel макрос скачать

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

Ниже вы найдете готовую пользовательскую функцию на VBA, которая переводит любое число от 0 до 9 999 999 в его текстовое представление, т.е. в сумму прописью. Перед использованием, эту функцию необходимо добавить в вашу книгу. Для этого:

  1. нажмите сочетание клавиш ALT+F11, чтобы открыть редактор Visual Basic
  2. добавьте новый пустой модуль через меню Insert — Module
  3. скопируйте и вставьте туда текст этой функции:
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

Сохраните файл (если у вас Excel 2007 или 2010, то тип файла должен быть с поддержкой макросов, т.е. в формате xlsm!) и вернитесь в Excel. Теперь вы можете вставить созданную функцию в любую ячейку листа этой книги обычным способом — через мастер функций (кнопка fx в строке формул, категория Определенные пользователем) или просто набрав ее в ячейке вручную и указав в качестве аргумента ячейку с суммой:

propis1.gif

Если вам необходимо добавить к полученному тексту копейки, то можно воспользоваться чуть более сложной конструкцией:

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

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

Тогда, например, для числа 35,15 результат функции будет выглядеть как «тридцать пять руб. 15 коп.»

Ссылки по теме

  • Более мощный вариант функции с рублями и копейками на русском/английском из надстройки PLEX
  • Что такое макросы, куда вставлять код макроса, как их использовать

Часто нужно перевести число в текст в Excel так, чтобы оно отображалось прописью (словами) на русском или других языках. Так как по умолчанию нет готовой функции, создадим свою пользовательскую функцию с помощью макросов.

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

числа словами в Excel.

Для создания пользовательской функции, которая сможет перевести число в текст прописью , нам нужно выполнить 3 простых шага:

  1. Открыть редактор макросов ALT+F11.
  2. Создать новый модуль и в нем нужно написать функцию особенным способом: Function вместо Sub. Тогда наша функция «ЧислоПропись» будет отображаться в списке мастера функций (SHIFT+F3), в категории «Определенные пользователем».
  3. Module.

  4. Вставить в модуль следующий код и сохранить:



Function ЧислоПропись(Число As CurrencyAs String
‘до 999 999 999 999
On Error GoTo Число_Error
Dim strМиллиарды As String, strМиллионы As String, strТысячи As String, strЕдиницы As String, strСотые As String
Dim Поз As Integer

 
strЧисло = Format(Int(Число), 

«000000000000»)

‘Миллиарды’
Поз = 1
strМиллиарды = Сотни(Mid(strЧисло, Поз, 1))
strМиллиарды = strМиллиарды & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
strМиллиарды = strМиллиарды & ИмяРазряда(strМиллиарды, Mid(strЧисло, Поз + 1, 2), «миллиард ««миллиарда ««миллиардов «)

‘Миллионы’
Поз = 4
strМиллионы = Сотни(Mid(strЧисло, Поз, 1))
strМиллионы = strМиллионы & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
strМиллионы = strМиллионы & ИмяРазряда(strМиллионы, Mid(strЧисло, Поз + 1, 2), «миллион ««миллиона ««миллионов «)

‘Тысячи’
Поз = 7
strТысячи = Сотни(Mid(strЧисло, Поз, 1))
strТысячи = strТысячи & Десятки(Mid(strЧисло, Поз + 1, 2), «ж»)
strТысячи = strТысячи & ИмяРазряда(strТысячи, Mid(strЧисло, Поз + 1, 2), «тысяча ««тысячи ««тысяч «)

‘Единицы’
Поз = 10
strЕдиницы = Сотни(Mid(strЧисло, Поз, 1))
strЕдиницы = strЕдиницы & Десятки(Mid(strЧисло, Поз + 1, 2), «м»)
If strМиллиарды & strМиллионы & strТысячи & strЕдиницы = «» Then strЕдиницы = «ноль «
‘strЕдиницы = strЕдиницы & ИмяРазряда(» «, Mid(strЧисло, Поз + 1, 2), «рубль «, «рубля «, «рублей «)

‘Сотые’
‘strСотые = strКопейки & » » & ИмяРазряда(strКопейки, Right(strКопейки, 2), ‘»копейка», «копейки», «копеек»)

 
ЧислоПропись = strМиллиарды & strМиллионы & strТысячи & strЕдиницы
ЧислоПропись = UCase(Left(ЧислоПропись, 1)) & Right(ЧислоПропись, Len(ЧислоПропись) — 1)

Exit Function

 
Число_Error:
    MsgBox Err.Description

End Function

Function Сотни(n As StringAs String
Сотни = «»
Select Case n
    Case 0: Сотни = «»
    Case 1: Сотни = «сто «
    Case 2: Сотни = «двести «
    Case 3: Сотни = «триста «
    Case 4: Сотни = «четыреста «
    Case 5: Сотни = «пятьсот «
    Case 6: Сотни = «шестьсот «
    Case 7: Сотни = «семьсот «
    Case 8: Сотни = «восемьсот «
    Case 9: Сотни = «девятьсот «
End Select
End Function

Function Десятки(n As String, Sex As StringAs String
Десятки = «»
Select Case Left(n, 1)
    Case «0»: Десятки = «»: n = Right(n, 1)
    Case «1»: Десятки = «»
    Case «2»: Десятки = «двадцать «: n = Right(n, 1)
    Case «3»: Десятки = «тридцать «: n = Right(n, 1)
    Case «4»: Десятки = «сорок «: n = Right(n, 1)
    Case «5»: Десятки = «пятьдесят «: n = Right(n, 1)
    Case «6»: Десятки = «шестьдесят «: n = Right(n, 1)
    Case «7»: Десятки = «семьдесят «: n = Right(n, 1)
    Case «8»: Десятки = «восемьдесят «: n = Right(n, 1)
    Case «9»: Десятки = «девяносто «: n = Right(n, 1)
End Select

Dim Двадцатка As String
Двадцатка = «»
Select Case n
    Case «0»: Двадцатка = «»
    Case «1»
        Select Case Sex
            Case «м»: Двадцатка = «один «
            Case «ж»: Двадцатка = «одна «
            Case «с»: Двадцатка = «одно «
        End Select
    Case «2»:
        Select Case Sex
            Case «м»: Двадцатка = «два «
            Case «ж»: Двадцатка = «две «
            Case «с»: Двадцатка = «два «
        End Select
    Case «3»: Двадцатка = «три «
    Case «4»: Двадцатка = «четыре «
    Case «5»: Двадцатка = «пять «
    Case «6»: Двадцатка = «шесть «
    Case «7»: Двадцатка = «семь «
    Case «8»: Двадцатка = «восемь «
    Case «9»: Двадцатка = «девять «
    Case «10»: Двадцатка = «десять «
    Case «11»: Двадцатка = «одиннадцать «
    Case «12»: Двадцатка = «двенадцать «
    Case «13»: Двадцатка = «тринадцать «
    Case «14»: Двадцатка = «четырнадцать «
    Case «15»: Двадцатка = «пятнадцать «
    Case «16»: Двадцатка = «шестнадцать «
    Case «17»: Двадцатка = «семнадцать «
    Case «18»: Двадцатка = «восемнадцать «
    Case «19»: Двадцатка = «девятнадцать «
End Select

 
Десятки = Десятки & Двадцатка

End Function

Function ИмяРазряда(Строка As String, n As String, Имя1 As String, Имя24 As String, ИмяПроч As StringAs String

If Строка <> «» Then
    ИмяРазряда = «»
    Select Case Left(n, 1)
        Case «0»«2»«3»«4»«5»«6»«7»«8»«9»: n = Right(n, 1)
    End Select

Select Case n
        Case «1»: ИмяРазряда = Имя1
        Case «2»«3»«4»: ИмяРазряда = Имя24
        Case Else: ИмяРазряда = ИмяПроч
    End Select
End If

End Function

ЧислоПропись.

Можно написать алгоритм макро программы по-другому и еще сделать так, чтобы она дописывала валюту суммы прописью. Для этого создайте Module2 и введите в него следующий код:

Function ЧислоПрописьюВалюта(Число As DoubleOptional Валюта As Integer = 1, Optional Копейки As Integer = 1)
Attribute ЧислоПрописьюВалюта.VB_Description = «Функция преобразовывает число суммы текстовыми словами»
Attribute ЧислоПрописьюВалюта.VB_ProcData.VB_Invoke_Func = » n1″
Dim Edinicy(0 To 19) As StringDim EdinicyPoslednie(0 To 19) As String
Dim Desyatki(0 To 9) As StringDim Sotni(0 To 9) As StringDim mlrd(0 To 9) As String
Dim mln(0 To 9) As StringDim tys(0 To 9) As String
Dim SumInt, x, shag, vl As IntegerDim txt, Sclon_Tys As String
‘———————————————
Application.Volatile
‘———————————————
Edinicy(0) = «»: EdinicyPoslednie(0) = IIf(Валюта = 0, «евро», IIf(Валюта = 1, «рублей»«долларов»))
Edinicy(1) = «один «: EdinicyPoslednie(1) = IIf(Валюта = 0, «один евро», IIf(Валюта = 1, «один рубль»«один доллар»))
Edinicy(2) = «два «: EdinicyPoslednie(2) = IIf(Валюта = 0, «два евро», IIf(Валюта = 1, «два рубля»«два доллара»))
Edinicy(3) = «три «: EdinicyPoslednie(3) = IIf(Валюта = 0, «три евро», IIf(Валюта = 1, «три рубля»«три доллара»))
Edinicy(4) = «четыре «: EdinicyPoslednie(4) = IIf(Валюта = 0, «четыре евро», IIf(Валюта = 1, «четыре рубля»«четыре доллара»))
Edinicy(5) = «пять «: EdinicyPoslednie(5) = IIf(Валюта = 0, «пять евро», IIf(Валюта = 1, «пять рублей»«пять долларов»))
Edinicy(6) = «шесть «: EdinicyPoslednie(6) = IIf(Валюта = 0, «шесть евро», IIf(Валюта = 1, «шесть рублей»«шесть долларов»))
Edinicy(7) = «семь «: EdinicyPoslednie(7) = IIf(Валюта = 0, «семь евро», IIf(Валюта = 1, «семь рублей»«семь долларов»))
Edinicy(8) = «восемь «: EdinicyPoslednie(8) = IIf(Валюта = 0, «восемь евро», IIf(Валюта = 1, «восемь рублей»«восемь долларов»))
Edinicy(9) = «девять «: EdinicyPoslednie(9) = IIf(Валюта = 0, «девять евро», IIf(Валюта = 1, «девять рублей»«девять долларов»))
Edinicy(11) = «одиннадцать «: EdinicyPoslednie(11) = IIf(Валюта = 0, «одиннадцать евро», IIf(Валюта = 1, «одиннадцать рублей»«одиннадцать долларов»))
Edinicy(12) = «надцать «: EdinicyPoslednie(12) = IIf(Валюта = 0, «надцать евро», IIf(Валюта = 1, «надцать рублей»«надцать долларов»))
Edinicy(13) = «тринадцать «: EdinicyPoslednie(13) = IIf(Валюта = 0, «тринадцать евро», IIf(Валюта = 1, «тринадцать рублей»«тринадцать долларов»))
Edinicy(14) = «четырнадцать «: EdinicyPoslednie(14) = IIf(Валюта = 0, «четырнадцать евро», IIf(Валюта = 1, «четырнадцать рублей»«четырнадцать долларов»))
Edinicy(15) = «пятнадцать «: EdinicyPoslednie(15) = IIf(Валюта = 0, «пятнадцать евро», IIf(Валюта = 1, «пятнадцать рублей»«пятнадцать долларов»))
Edinicy(16) = «шестнадцать «: EdinicyPoslednie(16) = IIf(Валюта = 0, «шестнадцать евро», IIf(Валюта = 1, «шестнадцать рублей»«шестнадцать долларов»))
Edinicy(17) = «семнадцать «: EdinicyPoslednie(17) = IIf(Валюта = 0, «семнадцать евро», IIf(Валюта = 1, «семнадцать рублей»«семнадцать долларов»))
Edinicy(18) = «восемнадцать «: EdinicyPoslednie(18) = IIf(Валюта = 0, «восемнадцать евро», IIf(Валюта = 1, «восемнадцать рублей»«восемнадцать долларов»))
Edinicy(19) = «девятнадцать «: EdinicyPoslednie(19) = IIf(Валюта = 0, «девятнадцать евро», IIf(Валюта = 1, «девятнадцать рублей»«девятнадцать долларов»))
»———————————————
Desyatki(0) = «»: Sotni(0) = «»: tys(0) = «тисячь «: mln(0) = «миллионов «: mlrd(0) = «миллиардов «
Desyatki(1) = «десять «: Sotni(1) = «сто «: tys(1) = «тысяча «: mln(1) = «миллион «: mlrd(1) = «миллиарда «
Desyatki(2) = «двадцать «: Sotni(2) = «двести «: tys(2) = «тысячи «: mln(2) = «миллиона «: mlrd(2) = «миллиарда «
Desyatki(3) = «тридцать «: Sotni(3) = «триста «: tys(3) = «тысячи «: mln(3) = «миллиона «: mlrd(3) = «миллиарда «
Desyatki(4) = «сорок «: Sotni(4) = «четыреста «: tys(4) = «тысячи «: mln(4) = «миллиона «: mlrd(4) = «миллиарда «
Desyatki(5) = «пятьдесят «: Sotni(5) = «пятьсот «: tys(5) = «тысяч «: mln(5) = «миллионов «: mlrd(5) = «миллиардов «
Desyatki(6) = «шестьдесят «: Sotni(6) = «шестьсот «: tys(6) = «тысяч «: mln(6) = «миллионов «: mlrd(6) = «миллиардов «
Desyatki(7) = «семьдесят «: Sotni(7) = «семьсот «: tys(7) = «тысяч «: mln(7) = «миллионов «: mlrd(7) = «миллиардов «
Desyatki(8) = «восемьдесят «: Sotni(8) = «восемьсот «: tys(8) = «тысяч «: mln(8) = «миллионов «: mlrd(8) = «миллиардов «
Desyatki(9) = «девяносто «: Sotni(9) = «девятьсот «: tys(9) = «тысяч «: mln(9) = «миллионов «: mlrd(9) = «миллиардов «
‘———————————————

On Error Resume Next
SumInt = Int(Число)
For x = Len(SumInt) To 1 Step -1
    shag = shag + 1
    Select Case x
        Case 12 ‘ — сотни миллиардов
            vl = Mid(SumInt, shag, 1)
            txt = txt & Sotni(vl)
        Case 11 ‘ — десятки  миллиардов
            vl = Mid(SumInt, shag, 1)
            If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl)  ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
        Case 10 ‘ — единицы  миллиардов
            vl = Mid(SumInt, shag, 1)
            If shag > 1 Then
                If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & «миллиарда « Else txt = txt & Edinicy(vl) & mlrd(vl) ‘числа в диапозоне от 11 до 19 склоняются на «мільярдов» независимо от последнего числа триады
            Else
                txt = txt & Edinicy(vl) & mlrd(vl)
            End If

‘-КОНЕЦ БЛОКА_______________________

Case 9 ‘ — сотни миллионов
            vl = Mid(SumInt, shag, 1)
            txt = txt & Sotni(vl)
        Case 8 ‘ — десятки  миллионов
            vl = Mid(SumInt, shag, 1)
            If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl)  ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
        Case 7 ‘ — единицы  миллионов
            vl = Mid(SumInt, shag, 1)
            If shag > 2 Then
                If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = «0»Then GoTo 10
            End If
            If shag > 1 Then
                If Mid(SumInt, shag — 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag — 1, 2)) & «миллиона « Else: txt = txt & Edinicy(vl) & mln(vl)  ‘числа в диапозоне от 11 до 19 склоняются на «миллиардов» независимо от последнего числа триады
            Else
                txt = txt & Edinicy(vl) & mln(vl)
            End If
        ‘-КОНЕЦ БЛОКА_______________________

Case 6 ‘ — сотни тысяч
            vl = Mid(SumInt, shag, 1)
            txt = txt & Sotni(vl)
        Case 5 ‘ — десятки  тысяч
            vl = Mid(SumInt, shag, 1)
            If vl = 1 And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl)  ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
        Case 4 ‘ — единицы  тысяч
            vl = Mid(SumInt, shag, 1)
            If shag > 2 Then
                If (Mid(SumInt, shag — 2, 1) = 0 And Mid(SumInt, shag — 1, 1) = 0 And vl = «0»Then GoTo 10
            End If
            Sclon_Tys = Edinicy(vl) & tys(vl) ‘ — вводим переменную Sclon_Tys из-за иного склонения  тысяч в русском языке
            If vl = 1 Then Sclon_Tys = «одна « & tys(vl) ‘ — для тысяч склонение «один» и «два» неприменимо ( поэтому вводим переменную  Sclon_Tys )
            If vl = 2 Then Sclon_Tys = «две « & tys(vl) ‘ — для тысяч склонение «один» и «два» неприменимо ( поэтому вводим переменную  Sclon_Tys )
            If shag > 1 Then
                If Mid(SumInt, shag — 1, 1) = 1 Then Sclon_Tys = Edinicy(Mid(SumInt, shag — 1, 2)) & «тисяч «
            End If
            txt = txt & Sclon_Tys

‘-КОНЕЦ БЛОКА_______________________
        Case 3 ‘ — сотни
            vl = Mid(SumInt, shag, 1)
            txt = txt & Sotni(vl)
        Case 2 ‘ — десятки
            vl = Mid(SumInt, shag, 1)
            If vl = «1» And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl)  ‘ — если конец триады от 11 до 19 то перескакиваем на единицы, иначе — формируем десятки
        Case 1 ‘ — единицы
            If Mid(SumInt, shag — 1, 1) <> 1 Or Mid(SumInt, shag — 1, 2) = «10» Then vl = Mid(SumInt, shag, 1) Else vl = Mid(SumInt, shag — 1, 2)
                txt = txt & EdinicyPoslednie(vl)

‘-КОНЕЦ БЛОКА_______________________

End Select
10:    Next x
a = Число
b = Int(a)
c = (Round(a — b, 2)) * 100
If c < 10 And c >= 1 Then c = «0» + CStr(c)
If c = 0 Then c = CStr(c) + «0»
d = «»
If Валюта = 1 Then d = «коп.» Else d = «цен.»
If Валюта > 2 Or Валюта < 0 Then MsgBox «Укажите параметр 0-2»
If Валюта > 2 Or Валюта < 0 Then GoTo 11
If Копейки = 0 Then
d = «»
c = «»
End If
If Копейки = 2 Then d = «»
If Копейки > 2 Or Копейи < 0 Then MsgBox «Укажите параметр 0, 1 или 2»
If Копейки > 2 Or Копейки < 0 Then GoTo 11
ЧислоПрописьюВалюта = UCase(Left(txt, 1)) & LCase(Mid(txt, 2)) + » « + CStr(c) + d
11:
End Function

Sub DescribeFunction()
   Dim FuncName As String
   Dim FuncDesc As String
   Dim Category As String
   Dim ArgDesc(1 To 3) As String

 
   FuncName = 

«ЧислоПрописьюВалюта»
   FuncDesc = «Функция преобразовывает число суммы текстовыми словами»
   Category = 1 ‘Text category
   ArgDesc(1) = «Исходная сумма»
   ArgDesc(2) = «(необязательный) Тип отображаемой валюты 0-Евро, 1-Рубли, 2-Доллары.»
   ArgDesc(3) = «(необязательный) Нужны ли копейки: 0-нет, 1-отображать копейи стандартно, 2-отображать только дробную часть (без слов).»

 
   Application.MacroOptions _
      Macro:=FuncName, _
      Description:=FuncDesc, _
      Category:=Category, _
      ArgumentDescriptions:=ArgDesc

End Sub
 

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

Private Sub Workbook_Open()
DescribeFunction
End Sub
 

Кроме того благодаря данному макросу DescribeFunction функция будет доступна в группе: «ФОРМУЛЫ»-«Библиотека функций»-«Финансовые»-«ЧислоПрописьюВалюта»

ЧислоПрописьюВалюта.

Если мы указываем число (от 0 до 2)в параметре второй функции «ЧислоПрописьюВалюта» то функция автоматически подставит нужную валюту в сумме прописью:

  • 1-рубли;
  • 2-доллары;
  • 0-евро;

Как видите, этот VBA-код макроса преобразует числа в слова. После вставки данного кода в модуль редактора макросов, у нас работает новая функция, которую можно вызвать из мастера (кнопка fx возле строки формул).

Скачать число прописью в Excel руб RUB.

Украинская версия функции ЧислоСловоВалюта для перевода сумм в гривны находиться в следующем файле:

Скачать функцию ЧислоСловоВалюта ГРН UAH

ЧислоСловоВалюта гривня.

Теперь вы можете быстро перевести сумму в слова прописью. Чтобы воспользоваться готовым решением рекомендуем скачать пример числа прописью в Excel. Данный файл содержит уже готовую пользовательскую функцию и VBA-код макроса, который доступен в модуле из редактора.

  • Число прописью в Excel – формула
  • Сумма прописью с копейками в Excel
    • В русских рублях, все буквы строчные
    • В русских рублях, первая буква заглавная
    • В русских рублях с копейками прописью
    • В белорусских рублях
  • Сумма прописью — формула для Openoffice Calc
  • Сумма прописью в Google Spreadsheets
  • UDF-функции надстройки !SEMTools
  • Процедуры !SEMTools
  • Перевод чисел прописью в другие падежи

Число или сумма прописью — в ручном исполнении — непростая задача. А если его нужно печатать десятки раз на дню и с множеством документов, точно нужна автоматизация.

Идеальным решением была бы формула в Excel.

Есть ли такая формула? Да! А главное, что вам делать ничего не придется (только скопировать), потому что я уже сделал её за вас! Но обо всем по порядку.

Сопоставление чисел, сумм и их эквивалентов прописью

Если попытаться описать алгоритм, который будет учитывать все нюансы написания числа или суммы прописью, окажется, что все на так просто, как кажется:

  • в зависимости от того, на какую цифру заканчивается число, его падеж и число могут быть:
    • единственное, именительный (двадцать один рубль)
    • единственное, родительный (двадцать два/три/четыре рубля)
    • множественное, родительный (двадцать, двадцать пять/шесть/семь/восемь/девять рублей)
  • При этом даже из этого правила уже есть исключения – числа от 11 до 14 – множественного числа, хотя числа от 1 до 4 – единственного.
  • Ноль пишется цифрами, но не пишется прописью. Кроме случая с копейками – там он пишется в прописи, но цифрами.
  • При этом от нуля может зависеть то, как будет выглядеть число или сумма прописью.
  • Копейки женского рода, а рубли – мужского. Одна копейка, но один рубль.

И это далеко не все нюансы. Есть ли варианты, которые их все учитывают?

Большинство руководств в интернете предлагают надстройки. Также предлагаются формулы на основе именованных диапазонов.

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

В случае с именованными диапазонами – нужно будет создавать их заново (а их около десятка!).

Число прописью в Excel – примеры сопоставления

Возможна ли формула без применения VBA, макросов и надстроек?

Черт возьми, да! Я долго размышлял, прежде чем ее сделать, но мне это удалось.

Вот эта формула! Вставьте ее в любую ячейку, кроме A1, т.к. она преобразует значение этой самой ячейки:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ЦЕЛОЕ(A1))>6;РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);1;ДЛСТР(ЦЕЛОЕ(A1))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-2;3)+0);ЕСЛИ(ДЛСТР(ЦЕЛОЕ(A1))>3;РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);1;ДЛСТР(ЦЕЛОЕ(A1))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ЦЕЛОЕ(A1);ДЛСТР(ЦЕЛОЕ(A1))-2;3)+0);РИМСКОЕ(ЦЕЛОЕ(A1))));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")

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

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

на

Сумма прописью с копейками в Excel

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

  • Рубли пишутся словами, первая буква обычно заглавная;
  • Словоформа слова “рубль” должна соответствовать количеству;
  • Копейки пишутся цифрами, но падеж и число слова “копейка” тоже должны соответствовать числу.
Пример написания суммы прописью с копейками в Excel
Сумма прописью с копейками в Excel – пример таблицы соответствия суммы и текста

Трудно в это поверить, но и такая формула тоже существует. Аналогично, без применения VBA, макросов и надстроек.

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

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

В русских рублях, все буквы строчные

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

Тройной клик по формуле выделит её целиком

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек")

В русских рублях, первая буква заглавная

В Excel нет простой функции, которая бы позволила сделать только первую букву ячейки заглавной, поэтому в первой конфигурации формула была в 2 раза длиннее из-за использования ЛЕВСИМВ и ДЛСТР.

Но в комментариях было предложено отличное решение – функцией ПОДСТАВИТЬ заменить пробелы на букву, которой в числах нет (например, Ф или Z), что сделает все как бы одним словом, на результате использовать функцию ПРОПНАЧ, и после заменить букву обратно на пробелы. Сейчас используется этот вариант формулы, он короче.

Тройной клик по формуле выделит её целиком.

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРОПНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек");" ";"Z"));"z";" ");"Z";" ")

В русских рублях с копейками прописью

Если нужно, чтобы копейки тоже были написаны прописью, то формула будет чуть длиннее, такой:

=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРОПНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один рублей";"один рубль");"два рублей";"два рубля");"три рублей";"три рубля");"четыре рублей";"четыре рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов")&" "&ПОДСТАВИТЬ(" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2))="1";ИНДЕКС({"десять";"одиннадцать";"двенадцать";"тринадцать";"четырнадцать";"пятнадцать";"шестнадцать";"семнадцать";"восемнадцать";"девятнадцать"};ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)-9);ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2));"2";"двадцать");"3";"тридцать");"4";"сорок");"5";"пятьдесят");"6";"шестьдесят");"7";"семьдесят");"8";"восемьдесят");"9";"девяносто");"0";"")&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2));"1";"одна");"2";"две");"3";"три");"4";"четыре");"5";"пять");"6";"шесть");"7";"семь");"8";"восемь");"9";"девять");"0";""))&" копеек";"одна копеек";"одна копейка");"две копеек";"две копейки");"три копеек";"три копейки");"четыре копеек";"четыре копейки");"  копеек";"");" ";"Z"));"z";" ");"Z";" "))

В белорусских рублях

Тройной клик по формуле выделит ее целиком.

=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" белорусских рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один белорусских рублей";"один белорусский рубль");"два белорусских рублей";"два белорусских рубля");"три белорусских рублей";"три белорусских рубля");"четыре белорусских рублей";"четыре белорусских рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов");1))&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>6;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-6)+0)&" миллионов "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-5;3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(A1;0))>3;РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);1;ДЛСТР(ОКРУГЛВНИЗ(A1;0))-3)+0)&" тысяч "&РИМСКОЕ(ПСТР(ОКРУГЛВНИЗ(A1;0);ДЛСТР(ОКРУГЛВНИЗ(A1;0))-2;3)+0)&" белорусских рублей";РИМСКОЕ(ОКРУГЛВНИЗ(A1;0))&" белорусских рублей"));"DCCC";" восемьсот");"DCC";" семьсот");"DC";" шестьсот");"CD";" четыреста");"XC";" девяносто");"CCC";" триста");"CC";" двести");"D";" пятьсот");"CM";" девятьсот");"C";" сто");"XL";" сорок");"LXXX";" восемьдесят");"LXX";" семьдесят");"LX";" шестьдесят");"L";" пятьдесят");"XXX";" тридцать");"XX";" двадцать");"XIX";" девятнадцать");"XVIII";" восемнадцать");"XVII";" семнадцать");"XVI";" шестнадцать");"XV";" пятнадцать");"XIV";" четырнадцать");"XIII";" тринадцать");"XII";" двенадцать");"XI";" одиннадцать");"IX";" девять");"X";" десять");"VIII";" восемь");"VII";" семь");"VI";" шесть");"IV";" четыре");"V";" пять");"III";" три");"II";" два");"I";" один");"один тысяч";"одна тысяча");"два тысяч";"две тысячи");"три тысяч";"три тысячи");"четыре тысяч";"четыре тысячи");"один миллионов";"один миллион");"два миллионов";"два миллиона");"три миллионов";"три миллиона");"четыре миллионов";"четыре миллиона");"один белорусских рублей";"один белорусский рубль");"два белорусских рублей";"два белорусских рубля");"три белорусских рублей";"три белорусских рубля");"четыре белорусских рублей";"четыре белорусских рубля"));"миллион тысяч";"миллион");"миллиона тысяч";"миллиона");"миллионов тысяч";"миллионов");2;200)&" "&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&" копеек";"1 копеек";"1 копейка");"2 копеек";"2 копейки");"3 копеек";"3 копейки");"4 копеек";"4 копейки");"11 копейка";"11 копеек");"12 копейки";"12 копеек");"13 копейки";"13 копеек");"14 копейки";"14 копеек")

Если вам не нужно делать первую букву заглавной, просто “оберните” всю эту гигантскую формулу функцией СТРОЧН.

Сумма прописью — формула для Openoffice Calc

У формулы выше были проблемы с импортом в Openoffice, т.к. тот в отличие от Excel (2007 и старше), поддерживает максимум 42 уровня вложенности в формулах, а не 64.

Поэтому пришлось полностью переделать логику формулы и сделать ее сложной формулой массивов.

Так она выглядит в Excel:

=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");1;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");2;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1);ИНДЕКС({"dь один m":"dь два mа":"dь три mа":"dь cе mа":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");3;1));ИНДЕКС({"одиннаe mов":"двенаe mов":"тринаe mов":"cнаe mов":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");3;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");4;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");5;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1);ИНДЕКС({"dь одна тысяча":"dь две тысячи":"dь три тысячи":"dь cе тысячи":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");6;1));ИНДЕКС({"одиннаe тысяч":"двенаe тысяч":"тринаe тысяч":"cнаe тысяч":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");6;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");8;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1);ИНДЕКС({"dь один rь":"dь два rя":"dь три rя":"dь cе rя":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПРАВСИМВ(A1));ИНДЕКС({"одиннаe rей":"двенаe rей":"тринаe rей":"cнаe rей":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПРАВСИМВ(A1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр")))&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");1;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");2;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1);ИНДЕКС({"dь один m":"dь два mа":"dь три mа":"dь cе mа":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");3;1));ИНДЕКС({"одиннаe mов":"двенаe mов":"тринаe mов":"cнаe mов":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");3;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");1;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");2;1)+1)&ИНДЕКС({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};ПСТР(ТЕКСТ(A1;"000000000");3;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");4;3)+0>0;ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");5;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1);ИНДЕКС({"dь одна тысяча":"dь две тысячи":"dь три тысячи":"dь cе тысячи":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПСТР(ТЕКСТ(A1;"000000000");6;1));ИНДЕКС({"одиннаe тысяч":"двенаe тысяч":"тринаe тысяч":"cнаe тысяч":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПСТР(ТЕКСТ(A1;"000000000");6;1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");4;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");5;1)+1)&ИНДЕКС({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};ПСТР(ТЕКСТ(A1;"000000000");6;1)+1));"")&" "&ЕСЛИ(ПСТР(ТЕКСТ(A1;"000000000");8;1)="1";ПОДСТАВИТЬ(ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1);ИНДЕКС({"dь один rь":"dь два rя":"dь три rя":"dь cе rя":"dь пять":"dь шесть":"dь семь":"dь vь":"dь девять"};ПРАВСИМВ(A1));ИНДЕКС({"одиннаe rей":"двенаe rей":"тринаe rей":"cнаe rей":"пятнаe":"шестнаe":"семнаe":"vнаe":"девятнаe"};ПРАВСИМВ(A1)));ИНДЕКС({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};ПСТР(ТЕКСТ(A1;"000000000");7;1)+1)&ИНДЕКС({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};ПСТР(ТЕКСТ(A1;"000000000");8;1)+1)&ИНДЕКС({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};ПСТР(ТЕКСТ(A1;"000000000");9;1)+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр");2;200)&" "&ЕСЛИ(ЛЕВСИМВ(ПРАВСИМВ(ОКРУГЛ(A1*100;0);2))="1";ПРАВСИМВ(ОКРУГЛ(A1*100;0);2) &" копеек";ПРАВСИМВ(ОКРУГЛ(A1*100;0);2)&ИНДЕКС({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};ПРАВСИМВ(ОКРУГЛ(A1*100;0))+1))

А так – после импорта в Openoffice Calc:

=UPPER(LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(MID(TEXT(A1;"000000000");1;3)+0>0;IF(MID(TEXT(A1;"000000000");2;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1);INDEX({"dь один m"|"dь два mа"|"dь три mа"|"dь cе mа"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");3;1));INDEX({"одиннаe mов"|"двенаe mов"|"тринаe mов"|"cнаe mов"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");3;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");4;3)+0>0;IF(MID(TEXT(A1;"000000000");5;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1);INDEX({"dь одна тысяча"|"dь две тысячи"|"dь три тысячи"|"dь cе тысячи"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");6;1));INDEX({"одиннаe тысяч"|"двенаe тысяч"|"тринаe тысяч"|"cнаe тысяч"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");6;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");8;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1);INDEX({"dь один rь"|"dь два rя"|"dь три rя"|"dь cе rя"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};RIGHT(A1));INDEX({"одиннаe rей"|"двенаe rей"|"тринаe rей"|"cнаe rей"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};RIGHT(A1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1))&" "&IF(LEFT(RIGHT(ROUND(A1*100;0);2))="1";RIGHT(ROUND(A1*100;0);2) &" копеек";RIGHT(ROUND(A1*100;0);2)&INDEX({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};RIGHT(ROUND(A1*100;0))+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр")))&MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(MID(TEXT(A1;"000000000");1;3)+0>0;IF(MID(TEXT(A1;"000000000");2;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1);INDEX({"dь один m"|"dь два mа"|"dь три mа"|"dь cе mа"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");3;1));INDEX({"одиннаe mов"|"двенаe mов"|"тринаe mов"|"cнаe mов"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");3;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");1;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");2;1)+1)&INDEX({"mов";"один m";"два mа";"три mа";"cе mа";"пять mов";"шесть mов";"семь mов";"vь mов";"девять mов"};MID(TEXT(A1;"000000000");3;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");4;3)+0>0;IF(MID(TEXT(A1;"000000000");5;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1);INDEX({"dь одна тысяча"|"dь две тысячи"|"dь три тысячи"|"dь cе тысячи"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};MID(TEXT(A1;"000000000");6;1));INDEX({"одиннаe тысяч"|"двенаe тысяч"|"тринаe тысяч"|"cнаe тысяч"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};MID(TEXT(A1;"000000000");6;1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");4;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");5;1)+1)&INDEX({"тысяч";"одна тысяча";"две тысячи";"три тысячи";"cе тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"vь тысяч";"девять тысяч"};MID(TEXT(A1;"000000000");6;1)+1));"")&" "&IF(MID(TEXT(A1;"000000000");8;1)="1";SUBSTITUTE(INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1);INDEX({"dь один rь"|"dь два rя"|"dь три rя"|"dь cе rя"|"dь пять"|"dь шесть"|"dь семь"|"dь vь"|"dь девять"};RIGHT(A1));INDEX({"одиннаe rей"|"двенаe rей"|"тринаe rей"|"cнаe rей"|"пятнаe"|"шестнаe"|"семнаe"|"vнаe"|"девятнаe"};RIGHT(A1)));INDEX({"";"сто ";"двести ";"триста ";"cеста ";"пятьсот ";"шестьсот ";"семьсот ";"vьсот ";"девятьсот "};MID(TEXT(A1;"000000000");7;1)+1)&INDEX({"";"dь ";"дваe ";"триe ";"сорок ";"пятьd ";"шестьd ";"семьd ";"vьd ";"девяносто "};MID(TEXT(A1;"000000000");8;1)+1)&INDEX({"rей";"один rь";"два rя";"три rя";"cе rя";"пять rей";"шесть rей";"семь rей";"vь rей";"девять rей"};MID(TEXT(A1;"000000000");9;1)+1))&" "&IF(LEFT(RIGHT(ROUND(A1*100;0);2))="1";RIGHT(ROUND(A1*100;0);2) &" копеек";RIGHT(ROUND(A1*100;0);2)&INDEX({" копеек";" копейка";" копейки";" копейки";" копейки";" копеек";" копеек";" копеек";" копеек";" копеек"};RIGHT(ROUND(A1*100;0))+1));"m";"миллион");"d";"десят");"r";"рубл");"e";"дцать");"v";"восем");"c";"четыр");2;200)

Сумма прописью в Google Spreadsheets

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

Ниже пример таблицы с суммой прописью:

Посмотреть сам файл и скопировать к себе можно по ссылке:

https://docs.google.com/spreadsheets/d/1dmqEB3TehEGmWfaxRmIQ9LXjGal439_YgKxZhbK0Ods/edit?usp=sharing

UDF-функции надстройки !SEMTools

Для тех, у кого ОС Windows и Excel 2010 и выше, и кто не готов пользоваться указанными формулами, есть простое решение – установить надстройку, в которой присутствует код, скрывающий все эти вычисления “под капот”. Одна из таких – разработанная мной надстройка !SEMTools.

В ней для решения задачи преобразования числа и суммы в их прописной вариант есть 2 лаконичные функции:

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

Единственное ограничение – эти формулы будут работать только на тех компьютерах, где установлена надстройка.

Процедуры !SEMTools

Еще более простое, но не всегда удобное решение – процедуры (макросы). В надстройке для Excel !SEMTools доступны макросы преобразования чисел в сумму и число прописью в 1 клик.

Вызов процедур находится в меню “Изменить символы” в группе “ИЗМЕНИТЬ” на панели надстройки. Макрос преобразует числа на месте, превращая их в текст. Можно выделить как одну, так и несколько ячеек:

демонстрация работы процедур число прописью и сумма прописью в !SEMTools
Число и сумма прописью – процедуры в !SEMTools

Функционал доступен в полной версии надстройки.

Перевод чисел прописью в другие падежи

Зачастую после получения числа или суммы прописью нужно указать его в другом падеже.

Например, “сумма в размере пятисот тысяч трехсот трех рублей”. !SEMTools справляется и с этой задачей – смотрите раздел склонение по падежам в Excel.

Надстройка !SEMTools для Excel поможет буквально за пару кликов написать числа или суммы прописью.
Скачайте и убедитесь в этом сами!

Денежная сумма прописью на рабочем листе Excel. Преобразование с помощью блока ячеек с формулами. Применение пользовательской функции «СуммаПрописью».

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

В этой статье рассмотрены способы преобразования денежного значения в самый употребительный текстовый формат: 0,00 = Ноль рублей 00 копеек.

Блок ячеек с формулами

Скачайте файл Excel с блоком ячеек с формулами, преобразующими число в сумму прописью, и примером размещения ссылок.

Работать с блоком ячеек чрезвычайно просто:

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

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

Преимущества блока ячеек с формулами:

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

Недостатки блока ячеек с формулами:

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

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

Функция «СуммаПрописью»

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

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

Чтобы функция была доступна из всех рабочих книг на отдельном компьютере, ее код следует добавить в персональную (личную) книгу макросов (PERSONAL.XLSB).

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

  1. Скачайте архив и извлеките из него файл «Module.bas» с кодом функции.
  2. Откройте любую книгу Excel, можно новую.
  3. Сочетанием левой клавиши Alt+F11 откройте редактор Visual Basic for Applications.

Окно редактора Visual Basic for Applications 1

  1. Дважды кликните на строке «VBA Project (PERSONAL.XLSB)» или один раз на крестике слева для открытия вложенного списка. Если эта позиция уже развернута переходите к пункту 5.

Окно редактора Visual Basic for Applications 2

  1. Дважды кликните на строке «Microsoft Excel Objects» или один раз на крестике слева для открытия списка объектов. Если эта позиция уже развернута переходите к пункту 6.

Окно редактора Visual Basic for Applications 3

  1. Кликнув правой кнопкой на строке «ЭтаКнига», откройте контекстное меню и выберите в нем пункт «Import File…».

Окно редактора Visual Basic for Applications 4

  1. В открывшемся диалоге выбора файлов найдите извлеченный ранее из архива «Module.bas» и выберите его двойным кликом. Модуль с функцией будет автоматически загружен.

Теперь можно в ячейки на листах любых рабочих книг вставлять формулу: «=PERSONAL.XLSB!СуммаПрописью(АдресЯчейки)» или, что намного удобнее, выбирать функцию с помощью мастера. Откройте мастер функций, выберите категорию «Определенные пользователем» и в списке доступных функций появится строка «PERSONAL.XLSB!СуммаПрописью», которую можно выбрать, а на втором шаге вставить адрес ячейки с числовым значением.

Пример работы функции СуммаПрописью

Формула будет доступна во всех книгах Excel, но только на компьютере, на котором находится персональная книга макросов PERSONAL.XLSB с загруженным модулем.

Если книгу планируется передавать на другие машины, тогда в шаге 6 надо правой кнопкой кликнуть на строке «ЭтаКнига», относящейся не к «VBA Project (PERSONAL.XLSB)», а относящейся к «VBA Project (ВашаКнига)» с именем вашей книги. Тогда модуль с функцией загрузится непосредственно в вашу рабочую книгу Excel и будет доступен для этой книги на любом компьютере. В этом случае формула в ячейке будет иметь вид: «=СуммаПрописью(АдресЯчейки)».

С кодом функции «СуммаПрописью» вы можете ознакомиться в этой статье.

На сайте gb.by в разделе «Файлы настройки форм», а так же у Агентства Гревцова в свободном доступе была экселевская надстройка (макрос) Деньги прописью.xla,  Цифры прописью.xla, позволяющая с помощью встроенных функций переводить числовые/денежные значения в пропись. Поиски в сети так же не принесли результата — надстройки либо работают не корректно (не выводят копейки), либо не запускаются совсем. Поэтому было решено по действующим стандартам написать свою.

  • Вариант №1 более надежный: за основу взят шаблон российского файла и переписан под валюты: евро, доллар США, белорусский рубль, российский рубль, казахстанский тенге, украинская гривна. Файл СуммаПрописью.xlam(.rar) протестирован несколько месяцев «в боевых условиях» офисными работниками и доступен для свободного скачивания.
  • Вариант №2 более быстрый: на одном из форумов нашёл пример реализации данной функции с помощью формулы, то есть без применения макросов. Также дописал под вышеперечисленные валюты. Формула получается громоздкой, но если нет времени и желаний возится с встраиванием надстройки в Excel, то можно воспользоваться и таким способом.

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

Установка

Запускаем Excel. Файл — Параметры — Надстройки.

Управление: Надстройки Excel — Перейти…

Кнопка «Обзор» — копируем скачанный и распакованный файл СуммаПрописью_1Cnik.by.xlam в папку «C:UsersUserAppDataRoamingMicrosoftAddIns» и выбираем его.

Надстройка «Сумма прописью» появляется в списке. Ставим галку.

На листе Excel вызываем необходимую функцию из категории: «Определенные пользователем» или прописываем в ячейке вручную с сылкой на числовое поле:

=СуммаПрописьюBYN(Nячейки) — функция возвращает сумму прописью в белорусских рублях BYN

=СуммаПрописьюEUR(Nячейки) — функция возвращает сумму прописью в евро EUR

=СуммаПрописьюRUB(Nячейки) — функция возвращает сумму прописью в российских рублях RUB

=СуммаПрописьюUSD(Nячейки) — функция возвращает сумму прописью в долларах USD

Обновление 08.2021 (добавлены новые валюты):

=СуммаПрописьюKZT(Nячейки) — функция возвращает сумму прописью в казахстанских тенге KZT

=СуммаПрописьюUAH(Nячейки) — функция возвращает сумму прописью в украинских гривнах UAH

Обновление 10.2021 (добавлены новые валюты):

=СуммаПрописьюBYN(Nячейки) — функция возвращает сумму прописью в белорусских рублях BYN — удалена лишняя запятая

=СуммаПрописьюRUBRB(Nячейки) — функция возвращает сумму прописью в российских рублях RUB — создан дополнительный спец.формат для выписки документов в РБ для РФ (вместо «рублей», возвращает «российских рублей»)

Получаем выбранную сумму прописью!

Если категория: «Определенные пользователем» не отображается, а функции недоступны. Скорее всего Excel заблокировал макрос.   Для активации надстройки нужно отключить защищенный просмотр. Открываем Файл – Параметры – Центр управления безопасностью – кнопка «Параметры центра управления безопасностью…».

Вкладка «Защищенный просмотр» — снять все галки «Включить защищенный просмотр…». Проверяйте! Надстройка должна стать активной!

Состав архива:

  • Пример в Excel.xlsx

  • SummaPropisjuBYN.txt — формула возвращает сумму прописью в белорусских рублях BYN
  • SummaPropisjuEUR.txt — формула возвращает сумму прописью в евро EUR
  • SummaPropisjuUSD.txt — формула возвращает сумму прописью в долларах USD
  • SummaPropisjuKZT.txt — формула возвращает сумму прописью в казахстанских тенге KZT
  • SummaPropisjuUAH.txt — формула возвращает сумму прописью в украинских гривнах UAH
  • SummaPropisjuRUB.txt — формула возвращает сумму прописью в российских рублях RUB
  • SummaPropisjuRUBRB.txt — формула возвращает сумму прописью в российских рублях RUB для выписки документов в РБ для РФ (вместо «рублей», возвращает «российских рублей»)

Плюс данного метода состоит в том, что настраивать ничего не надо. Достаточно скопировать формулу из нужного файла и вставить в ячейку, в которую нужно выводить денежную сумму прописью. Минусы метода: громоздкая формула и для изменения числовой ячейки (A1) каждый раз нужно менять всякое её упоминание во всей формуле (по умолчанию A1).

Примечание: если у Вас в Excel установлен разделитель целой и дробной части – ‘точка’. То для того чтобы формула корректно работала — нужно в формуле найти ТЕКСТ(A1;»0,00″) и заменить на ТЕКСТ(A1;»0.00″).

Вставка формулы в Excel

Открываем текстовый файл с формулой (например: SummaPropisjuRUB_1Cnik.by.txt) в блокноте.

В меню нажимаем: Правка -> Заменить (Ctrl+H). Например: нужная нам сумма (число) расположено на листе Excel в
ячейке A3. Следовательно заменяем все значения в формуле с A1 на A3

Вставляем формулу, например в ячейку A4 и нажимаем Ввод

В ячейке A4 получаем сумму прописью в нужной нам валюте

Copyright©, «Программист 1С в г.Минске», 09.12.2020 (upd. 26.08.2021)

Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник

Like this post? Please share to your friends:
  • Число прописью в excel копейки
  • Число прописью в excel без надстроек
  • Число прописью в excel без копеек
  • Число прописью excel 2019
  • Число строк в файле excel