Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

В Excel немає стандартної функції, яка відображає числа в аркуші як слова. Ви можете отримати такий результат, додавши код функції SpellNumber до модуля VBA (Visual Basic for Applications). Ця функція дає змогу перетворювати суми в доларах і центах на слова за допомогою формули, тому сума 22,50 відобразиться як "Двадцять два долари п’ятдесят центів". Це може стати в пригоді, якщо ви використовуєте шаблони в Excel для друку чеків.

Якщо потрібно перетворити числові значення на текстовий формат, не замінюючи їх словами, використовуйте натомість функцію TEXT.

Примітка.: Корпорація Майкрософт надає приклади програмування лише для ілюстрації без жодних гарантій, явних або неявних. Це стосується зокрема неявних гарантій щодо придатності до продажу чи придатності для певної мети. У цій статті припускається, що ви знайомі з мовою програмування VBA і засобами, які використовуються для створення та налагодження процедур. Спеціалісти служби підтримки Microsoft можуть пояснити вам функціональні можливості певної процедури. Однак вони не змінюватимуть ці приклади, щоб забезпечити додаткові можливості, і не створюватимуть процедури відповідно до ваших конкретних вимог.

Створення функції SpellNumber для перетворення чисел на слова

  1. Натисніть сполучення клавіш Alt + F11, щоб відкрити редактор Visual Basic (VBE).

    Примітка.:  Якщо ви додасте вкладку "Розробник" на стрічку, то зможете відкрити редактор Visual Basic звідти.

  2. Перейдіть на вкладку Insert (Вставлення), а потім виберіть Module (Модуль).

    У меню "Insert" (Вставлення) натисніть кнопку "Module" (Модуль).
  3. Скопіюйте наведений нижче код.

    Примітка.: Ця користувацька функція автоматизує перетворення чисел на текст в аркуші.

    Option Explicit
    
    'Main Function
    
    Function SpellNumber(ByVal MyNumber)
    
    Dim Dollars, Cents, Temp
    
    Dim DecimalPlace, Count
    
    ReDim Place(9) As String
    
    Place(2) = " Thousand "
    
    Place(3) = " Million "
    
    Place(4) = " Billion "
    
    Place(5) = " Trillion "
    
    ' String representation of amount.
    
    MyNumber = Trim(Str(MyNumber))
    
    ' Position of decimal place 0 if none.
    
    DecimalPlace = InStr(MyNumber, ".")
    
    ' Convert cents and set MyNumber to dollar amount.
    
    If DecimalPlace > 0 Then
    
    Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2))
    
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    
    End If
    
    Count = 1
    
    Do While MyNumber <> ""
    
    Temp = GetHundreds(Right(MyNumber, 3))
    
    If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
    
    If Len(MyNumber) > 3 Then
    
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    
    Else
    
    MyNumber = ""
    
    End If
    
    Count = Count + 1
    
    Loop
    
    Select Case Dollars
    
    Case ""
    
    Dollars = "No Dollars"
    
    Case "One"
    
    Dollars = "One Dollar"
    
    Case Else
    
    Dollars = Dollars & " Dollars"
    
    End Select
    
    Select Case Cents
    
    Case ""
    
    Cents = " and No Cents"
    
    Case "One"
    
    Cents = " and One Cent"
    
    Case Else
    
    Cents = " and " & Cents & " Cents"
    
    End Select
    
    SpellNumber = Dollars & Cents
    
    End Function
    
    
    ' Converts a number from 100-999 into text
    
    Function GetHundreds(ByVal MyNumber)
    
    Dim Result As String
    
    If Val(MyNumber) = 0 Then Exit Function
    
    MyNumber = Right("000" & MyNumber, 3)
    
    ' Convert the hundreds place.
    
    If Mid(MyNumber, 1, 1) <> "0" Then
    
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    
    End If
    
    ' Convert the tens and ones place.
    
    If Mid(MyNumber, 2, 1) <> "0" Then
    
    Result = Result & GetTens(Mid(MyNumber, 2))
    
    Else
    
    Result = Result & GetDigit(Mid(MyNumber, 3))
    
    End If
    
    GetHundreds = Result
    
    End Function
    
    
    ' Converts a number from 10 to 99 into text.
    
    
    Function GetTens(TensText)
    
    Dim Result As String
    
    Result = "" ' Null out the temporary function value.
    
    If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
    
    Select 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 Else
    
    End Select
    
    Else ' If value between 20-99...
    
    Select 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 Else
    
    End Select
    
    Result = Result & GetDigit _
    
    (Right(TensText, 1)) ' Retrieve ones place.
    
    End If
    
    GetTens = Result
    
    End Function
    
    
    ' Converts a number from 1 to 9 into text.
    
    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 Select
    
    End Function
  4. Вставте цей код у вікно Module1 (Code) (Модуль 1 – код).

    Код вставлено в поле "Module1 (Code)" (Модуль 1 – код).
  5. Натисніть клавіші Alt + Q, щоб повернутися до Excel. Функція SpellNumber готова до роботи.

    Примітка.: Ця функція працюватиме лише в поточній книзі. Щоб використовувати її в іншій книзі, необхідно повторно скопіювати та вставити код у цю книгу.

На початок сторінки

Використання функції SpellNumber в окремих клітинках

  1. Введіть формулу =SpellNumber(A1) у клітинці, де потрібно відобразити число у текстовому форматі, де A1 – це клітинка з числом, яке потрібно перетворити. Ви також можете вручну ввести значення, як-от =SpellNumber(22,50).

  2. Натисніть клавішу Enter, щоб підтвердити формулу.

На початок сторінки

Збереження книги з функцією SpellNumber

В Excel не можна зберігати книги з функціями макросів у стандартному форматі (.xlsx). Якщо вибрати Файл > Зберегти, відкриється діалогове вікно проекту VB. Клацніть Ні.

У діалоговому вікні проекту VB натисніть кнопку "No" (Ні).

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

  1. Виберіть Файл > Зберегти як.

  2. Клацніть розкривне меню Тип файлу та виберіть Книга Excel із підтримкою макросів.

  3. Натисніть кнопку Зберегти.

На початок сторінки

Див. також

Функція TEXT

Потрібна додаткова довідка?

Потрібні додаткові параметри?

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

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×