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 я расскажу как легко и просто из получить прописью любую сумму в рублях.