Ms. Excel · 23.02.2021 0

Excel урок 30. Сумма прописью

Часто нам необходимо преобразовать сумму в цифрах в сумму, написанную прописью.

Для этого есть несколько способов.

Один из них это составить формулу, которая будет выполнять данные преобразования. Например такую:

=ПРОПИСН(ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ДЛСТР(ОКРУГЛВНИЗ(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;”0,00″);2)&” копеек”;”1 копеек”;”1 копейка”);”2 копеек”;”2 копейки”);”3 копеек”;”3 копейки”);”4 копеек”;”4 копейки”);”11 копейка”;”11 копеек”);”12 копейки”;”12 копеек”);”13 копейки”;”13 копеек”);”14 копейки”;”14 копеек”)

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

Проще это сделать до того, как Вы будете использовать (вставлять) данную формулу. Можно используя любой текстовый редактор, применить команду “Найти и заменить”. А после этого уже вставлять формулу в нужное место в Excel

Второй способ подразумевает использование макроса, который нужно вставить в вашу книгу Excel

Public Function СуммаПрописью(x As Double) As String
If x > 999999999999.99 Then
СуммаПрописью = “Аргумент больше 999 999 999 999.99!”
ElseIf x < 0 Then СуммаПрописью = “Аргумент отрицательный!” Else x = FormatNumber(x, 2) Dim b As Byte, b1 As Byte, b2 As Byte, kop As String b = (x – Fix(x)) * 100 b2 = b \ 10 b1 = b Mod 10 If b2 <> 1 And b1 = 1 Then
kop = ” копейка”
ElseIf b2 <> 1 And b1 > 1 And b1 < 5 Then kop = ” копейки” Else kop = ” копеек” End If kop = b2 & b1 & kop Dim y(1 To 4) As Integer, i1 As Byte For i1 = 1 To 4 x = Fix(x) / 1000 y(i1) = (x – Fix(x)) * 1000 Next Dim Text(1 To 4) As String, i2 As Byte, y1 As Byte, y2 As Byte, _ y3 As Byte, Text0 As String, Text1 As String, Text2 As String, Text3 As String, _ Text4 As String For i2 = 1 To 4 y1 = y(i2) Mod 10 y2 = (y(i2) – y1) / 10 Mod 10 y3 = y(i2) \ 100 Text1 = Choose(y3 + 1, “”, “сто “, “двести “, “триста “, “четыреста “, _ “пятьсот “, “шестьсот “, “семьсот “, “восемьсот “, “девятьсот “) Text2 = Choose(y2 + 1, “”, “”, “двадцать “, “тридцать “, “сорок “, _ “пятьдесят “, “шестьдесят “, “семьдесят “, “восемьдесят “, “девяносто “) If y2 = 1 Then Text3 = Choose(y1 + 1, “десять “, “одиннадцать “, “двенадцать “, _ “тринадцать “, “четырнадцать “, “пятнадцать “, “шестнадцать “, _ “семнадцать “, “восемнадцать “, “девятнадцать “) ElseIf y2 <> 1 And i2 = 2 Then
Text3 = Choose(y1 + 1, “”, “одна “, “две “, “три “, “четыре “, “пять “, _
“шесть “, “семь “, “восемь “, “девять “)
Else
Text3 = Choose(y1 + 1, “”, “один “, “два “, “три “, “четыре “, “пять “, _
“шесть “, “семь “, “восемь “, “девять “)
End If
If y2 <> 1 And y1 = 1 Then
Text4 = Choose(i2, “рубль “, “тысяча “, “миллион “, “миллиард “)
ElseIf y2 <> 1 And y1 > 1 And y1 < 5 Then
Text4 = Choose(i2, “рубля “, “тысячи “, “миллиона “, “миллиарда “)
ElseIf y1 = 0 And y2 = 0 And y3 = 0 Then
Text4 = Choose(i2, “рублей “, “”, “”, “”)
Else
Text4 = Choose(i2, “рублей “, “тысяч “, “миллионов “, “миллиардов “)
End If
Text(i2) = Text1 & Text2 & Text3 & Text4
Next
If y(1) + y(2) + y(3) + y(4) = 0 Then
Text0 = “ноль рублей ” & kop
Else
Text0 = Text(4) & Text(3) & Text(2) & Text(1) & kop
End If
СуммаПрописью = Replace(Text0, Left(Text0, 1), UCase(Left(Text0, 1)), 1, 1)
End If
End Function

Вы можете скачать вспомогательные файлы

Файл Excel с поддержкой макроса

Файл макроса

В этом видео-уроке по Ms Excel я расскажу как легко и просто из получить прописью любую сумму в рублях.