Преобразуване на числа в думи

Excel 2013 и Excel 2016 нямат функция по подразбиране, която показва числата като английски думи в клетките в електронната таблица, но можете да добавите тази възможност, като поставите код за функцията SpellNumber в лист на модула. Тази функция позволява да преобразувате сумите в долари и центове – в думи.

Ако искате да преобразувате числови стойности в текстов формат, без да ги показвате като думи, използвайте функцията TEXT.

В тази статия

Създаване на функцията SpellNumber за преобразуване на числа в думи

  1. Използвайте клавишната комбинация Alt + F11, за да отворите редактора на Visual Basic.

    Забележка : Можете да отворите редактора на Visual Basic също и като покажете раздела "Разработчик" на лентата.

  2. Щракнете върху раздела Вмъкване и след това върху Модул.

    В менюто "Insert" (Вмъкване) щракнете върху "Module" (Модул).
  3. Копирайте следните редове код.

    Забележка : Наричан функция за макроси, този код автоматизира задачата за преобразуване на числа в текст в електронната таблица.

    Option Explicit

    ' Основна функция

    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 "

    ' Представяне на сумата чрез низ.

    MyNumber = Trim(Str(MyNumber))

    ' Позиция на десетичния знак 0, ако не е определена.

    DecimalPlace = InStr(MyNumber, ".")

    ' Преобразуване на центовете и задаване на сума в долари за MyNumber.

    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

    ' Преобразуване на число от 100 до 999 в текст

    Function GetHundreds(ByVal MyNumber)

    Dim Result As String

    If Val(MyNumber) = 0 Then Exit Function

    MyNumber = Right("000" & MyNumber, 3)

    ' Преобразуване на стотиците.

    If Mid(MyNumber, 1, 1) <> "0" Then

    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "

    End If

    ' Преобразуване на десетиците и единиците.

    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

    ' Преобразуване на число от 10 до 99 в текст.

    Function GetTens(TensText)

    Dim Result As String

    Result = "" ' Нулиране на временната стойност на функцията.

    If Val(Left(TensText, 1)) = 1 Then ' Ако стойността е между 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 ' Ако стойността е между 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)) ' Извличане на единиците.

    End If

    GetTens = Result

    End Function

    ' Преобразуване на цифра от 1 до 9 в текст.

    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).

    Код, поставен в полето Module1 (Code).
  5. Щракнете върху File (Файл) и след това върху Close and Return to Microsoft Excel (Затвори и се върни в Microsoft Excel). Сега функцията SpellNumber е готова за използване.

    Забележка : Тази функция работи само за текущия файл на Excel, който сте отворили. За да я използвате в друга работна книга на Excel, трябва да повторите стъпките за копиране и поставяне на кода в другия файл.

Най-горе на страницата

Използване на функцията SpellNumber в отделни клетки

  1. Въведете формулата =SpellNumber(стойност) в клетката, в която искате да покажете дадено число с думи, като заместите стойност с вашето число.

  2. Натиснете клавиша Enter на клавиатурата.

    Ако например напишете =SpellNumber(22,50), в клетката би трябвало да се покаже Twenty-Two Dollars and Fifty Cents (Двадесет и два долара и петдесет цента).

    Съвет : За да преобразувате в текст числото в отделна клетка, във формулата SpellNumber заместете цифровата стойност с препратка към клетката. Например въведете =SpellNumber(A1), за да покажете с думи стойността в клетка A1.

Най-горе на страницата

Записване на функцията SpellNumber в работната книга

Excel не можете да запише работната книга с функции на макроси в стандартния формат на работна книга без макроси. Ако щракнете върху Файл > Запиши, се отваря диалоговият прозорец VB Project. Щракнете върху No (Не).

В диалоговия прозорец на VB Project щракнете върху "No" (Не).

Можете да запишете файла като Шаблон на Excel с разрешени макроси, за да го запазите в текущия му формат.

  1. Щракнете върху Файл > Запиши като.

  2. Щракнете върху падащото меню Запиши като тип и изберете Excel Macro-Enabled Template.

    Изберете шаблон на Excel с разрешени макроси.
  3. Щракнете върху Запиши.

Най-горе на страницата

Вж. също

TEXT функция

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×