Сума і числа прописом українською мовою

Якщо вам потрібно написати цифри українською мовою, то ви так само можете скористатися користувальницької функцією PropisUkr, цієї функції немає в самому Excel, її ви можете вставити самостійно за допомогою макросу.

Дивіться також: Як написати суми і цифри прописом російською або англійською мовою (Універсальна функція)

Користувацька функція для перекладу чисел в текстовому вигляді українською мовою виглядає наступним чином:

= PropisUkr (n-hryvnias-kopecks)




де
n - посилання на клітинку з сумою, числом
hryvnias - необов`язковий аргумент, дозволяє показувати (1) Чи не показувати (0) Слово гривні
kopecks - необов`язковий аргумент, дозволяє показувати (1) Чи не показувати (0) В кінці копійки.

Щоб зробити активної дану функції необхідно додати код в VBA для цього:

  1. натисніть клавіші ALT + F11, щоб відкрити редактор Visual Basic
  2. додайте новий порожній модуль через меню Insert - Module
  3. скопіюйте і вставте туди код цієї функції, вказаний нижче:

Відео: Перетворення числа в текст прописом по-російськи

Макрос користувальницької функції для перекладу чисел в текстовому вигляді українською мовою




Function PropisUkr (n As Double, Optional hryvnias As Variant = False, Optional kopecks As Variant = False) As StringNums0 = Array ( "", "одна", "две", "три", "Чотири", "п`ять" , "Шість", "сім", "Вісім", "дев`ять") Nums1 = Array ( "", "один", "два", "три", "Чотири", "п`ять", "Шість "," сім "," Вісім "," дев`ять ") Nums2 = Array (" "," десять "," двадцять "," тридцять "," сорок "," п`ятдесят "," шістдесят "," сімдесят "," вісімдесят "," дев`яносто ") Nums3 = Array (" "," сто "," Двісті "," триста "," чотіріста "," п`ятсот "," шістсот "," сімсот ", "вісімсот", "дев`ятсот") Nums4 = Array ( "", "одна", "две", "три", "Чотири", "п`ять", "Шість", "сім", "Вісім" , "дев`ять") Nums5 = Array ( "десять", "одинадцять", "дванад ять "," тринадцять "," чотирнадцять "," п`ятнадцять "," шістнадцять "," сімнадцять "," вісімнадцять "," дев`ятнадцять ") Sum = WorksheetFunction.Round (CDbl (n), 2) whole = Int (Sum) fraq = Format (Round (Abs (Sum - whole) * 100), "00") hryvnias = CBool ​​(hryvnias) kopecks = CBool ​​(kopecks) If Sum lt; 0 Thenwhole = 0fraq = Format (0, "00") ed_txt = "Нуль" GoTo rrrEnd Ifed = 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) sotmil = Class (n, 9) bil = Class (n, 10) Select Case bilCase 1bil_txt = Nums1 (bil) "Мільярд" Case 2 To 4bil_txt = Nums1 (bil) "Мільярді" Case 5 To 9bil_txt = Nums1 (bil) "Мільярдів" End SelectSelect Case sotmilCase 1 To 9sotmil_txt = Nums3 (sotmil) End SelectSelect Case decmilCase 1mil_txt = Nums5 (mil) "Миллионов" GoTo wwwCase 2 To 9decmil_txt = Nums2 (decmil) End SelectSelect Case milCase 0If decmil gt; 0 Then mil_txt = Nums4 (mil) "Миллионов" Case 1mil_txt = Nums1 (mil) "Мільйон" Case 2, 3, 4mil_txt = Nums1 (mil) "Миллиона" Case 5 To 9mil_txt = Nums1 (mil) "Миллионов" End SelectIf decmil = 0 And mil = 0 And sotmil lt; gt; 0 Then sotmil_txt = sotmil_txt "Миллионов" www: sottys_txt = Nums3 (sottys) Select Case dectysCase 1tys_txt = Nums5 (tys) "Тисяч" GoTo eeeCase 2 To 9dectys_txt = Nums2 (dectys) End SelectSelect Case tysCase 0If dectys gt; 0 Then tys_txt = Nums4 (tys) "Тисяч" Case 1tys_txt = Nums4 (tys) "Тісячa" Case 2, 3, 4tys_txt = Nums4 (tys) "Тисячі" Case 5 To 9tys_txt = Nums4 (tys) "Тисяч" End SelectIf dectys = 0 And tys = 0 And sottys lt; gt; 0 Then sottys_txt = sottys_txt "Тисяч" eee: sot_txt = Nums3 (sot) Select Case decCase 1ed_txt = Nums5 (ed) GoTo rrrCase 2 To 9dec_txt = Nums2 (dec) End Selected_txt = Nums0 (ed) If whole lt; 1 Then ed_txt = "Нуль" rrr: Select Case Class (n, 1) + Class (n, 2) * 10Case 1, 21, 31, 41, 51, 61, 71, 81, 91grv_text = "гривня" Case 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94grv_text = "гривні" Case Elsegrv_text = "гривень" End SelectSelect Case fraqCase 1, 21, 31, 41, 51, 61, 71, 81, 91kop_text = "копiйка" Case 2, 3, 4, 22, 23, 24, 32 , 33, 34, 42, 43, 44, 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94kop_text = "копійкі" Case Elsekop_text = "копійок" End Selectoutstr = bil_txt sotmil_txt decmil_txt mil_txt sottys_txt dectys_txt tys_txt sot_txt dec_txt ed_txtIf hryvnias Then outstr = outstr grv_textIf hryvnias And kopecks Then outstr = outstr "" fraq "" kop_textPropisUkr = UCase (Mid (outstr, 1, 1)) + Mid (outstr, 2) End FunctionPrivate Function Class (m, i) Class = Int (Int (m - (10 ^ i) * Int (m / (10 ^ i))) / 10 ^ (i - 1)) End FunctionPrivate Function ScriptRus (n As Double) As StringDim Nums1, Nums2, Nums3, Nums4 As VariantNums1 = Array ( "", "один", "два", "три" , "чотири", "п`ять", "шість", "сім", "вісім", "дев`ять") Nums2 = Array ( "", "десять", "двадцять", "тридцять", "сорок", "п`ятдесят "," шістдесят "," сімдесят "," вісімдесят "," дев`яносто ") Nums3 = Array (" "," сто "," двісті "," триста "," чотириста "," п`ятсот "," шістсот "," сімсот "," вісімсот "," дев`ятсот ") Nums4 = Array (" "," одна "," дві "," три "," чотири "," п`ять "," шість "," сім "," вісім ", "дев`ять") Nums5 = Array ( "десять", "один адцать "," дванадцять "," тринадцять "," чотирнадцять "," п`ятнадцять "," шістнадцять "," сімнадцять "," вісімнадцять "," дев`ятнадцять ") If n = 0 ThenScriptRus =" Нуль "Exit FunctionEnd Ifed = 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) sotmil = Class (n, 9) mlrd = Class (n, 10) If mlrd gt; 0 ThenSelect Case mlrdCase 1mlrd_txt = Nums1 (mlrd) "Мільярд" Case 2, 3, 4mlrd_txt = Nums1 (mlrd) "Мільярди" Case 5 To 20mlrd_txt = Nums1 (mlrd) "Мільярдів" End SelectEnd IfIf (sotmil + decmil + mil) gt; 0 Thensotmil_txt = Nums3 (sotmil) Select Case decmilCase 1mil_txt = Nums5 (mil) "Мільйонів" GoTo wwwCase 2 To 9decmil_txt = Nums2 (decmil) End SelectSelect Case milCase 1mil_txt = Nums1 (mil) "Мільйон" Case 2, 3, 4mil_txt = Nums1 (mil) "Мільйони" Case 0, 5 To 20mil_txt = Nums1 (mil) "Мільйонів" End SelectEnd Ifwww: sottys_txt = Nums3 (sottys) Select Case dectysCase 1tys_txt = Nums5 (tys) "Тисяч" GoTo eeeCase 2 To 9dectys_txt = Nums2 (dectys) End SelectSelect Case tysCase 0If dectys gt; 0 Then tys_txt = Nums4 (tys) "Тисяч" Case 1tys_txt = Nums4 (tys) "Тисяча" Case 2, 3, 4tys_txt = Nums4 (tys) "Тисячі" Case 5 To 9tys_txt = Nums4 (tys) "Тисяч" End SelectIf dectys = 0 And tys = 0 And sottys lt; gt; 0 Then sottys_txt = sottys_txt "Тисяч" eee: sot_txt = Nums3 (sot) Select Case decCase 1ed_txt = Nums5 (ed) GoTo rrrCase 2 To 9dec_txt = Nums2 (dec) End Selected_txt = Nums1 (ed) rrr: ScriptRus = mlrd_txt sotmil_txt decmil_txt mil_txt sottys_txt dectys_txt tys_txt sot_txt dec_txt ed_txtScriptRus = UCase (Left (ScriptRus, 1)) LCase (Mid (ScriptRus, 2, Len (ScriptRus) - 1)) End FunctionPrivate Function ScriptEng (ByVal Number As Double) Dim BigDenom As String, Temp As StringDim Count As IntegerReDim Place (9) As StringPlace (2) = "Thousand" Place (3) = "Million" Place (4) = "Billion" Place (5) = "Trillion" strAmount = Trim (Str (Int (Number))) Count = 1Do While strAmount lt; gt; "" Temp = GetHundreds (Right (strAmount, 3)) If Temp lt; gt; "" Then BigDenom = Temp Place (Count) BigDenomIf Len (strAmount) gt; 3 ThenstrAmount = Left (strAmount, Len (strAmount) - 3) ElsestrAmount = "" End IfCount = Count + 1LoopSelect Case BigDenomCase "" BigDenom = "Zero" Case "One" BigDenom = "One" Case ElseBigDenom = BigDenom "" End SelectScriptEng = BigDenomEnd FunctionPrivate Function GetHundreds (ByVal MyNumber) Dim result As StringIf Val (MyNumber) = 0 Then Exit FunctionMyNumber = Right ( "000" MyNumber, 3) If Mid (MyNumber, 1, 1) lt; gt; "0" Thenresult = GetDigit (Mid (MyNumber, 1, 1)) "Hundred" End IfIf Mid (MyNumber, 1, 1) lt; gt; "0" And (Mid (MyNumber, 2, 1) lt; gt; "0" Or Mid (MyNumber, 3, 1) lt; gt; "0") Thenresult = result "And" End IfIf Mid (MyNumber, 2, 1) lt; gt; "0" Thenresult = result GetTens (Mid (MyNumber, 2)) Elseresult = result GetDigit (Mid (MyNumber, 3)) End IfGetHundreds = resultEnd FunctionPrivate Function GetTens (TensText) Dim result As Stringresult = "" If Val (Left (TensText, 1)) = 1 ThenSelect Case Val (TensText) Case 10: result = " Ten "Case 11: result =" Eleven "Case 12: result =" Twelve "Case 13: result =" Thirteen "Case 14: result =" Fourteen "Case 15: result =" Fifteen "Case 16: result =" Sixteen " Case 17: result = "Seventeen" Case 18: result = "Eighteen" Case 19: result = "Nineteen" Case ElseEnd SelectElseSelect Case Val (Left (TensText, 1)) Case 2: result = "Twenty" Case 3: result = "Thirty" Case 4: result = "Forty" Case 5: result = "Fifty" Case 6: result = "Sixty" Case 7: result = "Seventy" Case 8: result = "Eighty" Case 9: result = "Ninety "Case ElseEnd Selectresult = result GetDigit _ (Right (TensText, 1)) End IfGetTens = resultEnd FunctionPrivate Function GetDigit (Digit) Select Case Val (Digit) Case 1: GetDigit = "One" Case 2: GetDigit = "Two" Case 3: GetDigit = "Three" Case 4: GetDigit = "Four" Case 5: GetDigit = "Five" Case 6: GetDigit = "Six" Case 7: GetDigit = "Seven" Case 8: GetDigit = "Eight" Case 9: GetDigit = "Nine" Case Else : GetDigit = "" End SelectEnd Function

Примітка

Відео: Купюра 25 рублів 1961 року і Фальшивомонетник СРСР № 1 боністика колекція грошей

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

Приклад, якщо ви хочете, щоб функція заміняла числа на український текст, зі словами «гривня» і копійками, то напишіть наступну формулу.

= PropisUkr (A1-11)

де A1 - це посилання на клітинку з числом, яке необхідно перевести в текст.

Поділися в соціальних мережах:

Схожі
Легкий спосіб в excel перетворення чисел в текстовому форматі в числовий форматЛегкий спосіб в excel перетворення чисел в текстовому форматі в числовий формат
Округлення в excel.Округлення в excel.
Стрілочні функції в es6.Стрілочні функції в es6.
Функція індекс в excelФункція індекс в excel
Як складати формули в excel для початківців.Як складати формули в excel для початківців.
Як в excel отримати місяць з дати (функція текст і місяць)Як в excel отримати місяць з дати (функція текст і місяць)
Як прописати суму, число, цифри прописом в excelЯк прописати суму, число, цифри прописом в excel
Як витягнути з рядка тільки цифри в excelЯк витягнути з рядка тільки цифри в excel
Як зробити таблицю в excel.Як зробити таблицю в excel.
Як в excel порахувати кількість осередків за кольором клітинки або кольором текстуЯк в excel порахувати кількість осередків за кольором клітинки або кольором тексту
» » Сума і числа прописом українською мовою