Как преобразовать число в слова в Excel

  • Поделись Этим
Michael Brown

В этой статье я покажу вам два быстрых и бесплатных способа конвертировать валютные числа в английские слова в Excel 2019, 2016, 2013 и других версиях.

Microsoft Excel - отличная программа для вычисления того и этого. Изначально она была разработана для обработки больших массивов данных. Однако она также позволяет быстро и эффективно создавать бухгалтерские записи, такие как счета, оценки или балансовые отчеты.

В более или менее солидных платежных документах необходимо дублировать числовые значения их словесной формой. Подделать напечатанные цифры гораздо сложнее, чем написанные от руки. Какой-нибудь мошенник может попытаться из 3000 сделать 8000, а тайно заменить "три" на "восемь" практически невозможно.

Поэтому вам нужно не просто преобразовывать числа в слова в Excel (например, 123.45 в "сто двадцать три, сорок пять"), а писать доллары и центы (например, $29.95 как "двадцать девять долларов и девяносто девять центов"), фунты и пенсы для GBP, евро и евроценты для EUR и т.д.

Даже последние версии Excel не имеют встроенного инструмента для написания чисел, не говоря уже о более ранних версиях. Но именно в этом Excel действительно хорош. Вы всегда можете улучшить его функциональность, используя формулы во всех их

комбинации, макросы VBA или надстройки сторонних производителей.

Ниже приведены два способа преобразования чисел из цифр в слова

    И, возможно, вам понадобится преобразовать слова в числа в Excel

    Примечание. Если вы ищете преобразование числа в текст Для этого можно использовать функцию ТЕКСТ или несколько других способов, описанных в статье Как изменить числа на текст в Excel.

    Макрос VBA SpellNumber для преобразования чисел в слова

    Как я уже говорил, Microsoft не хотела добавлять инструмент для этой задачи. Однако, увидев, как много пользователей нуждаются в нем, они создали и опубликовали на своем сайте специальный макрос VBA. Макрос делает то, что следует из его названия SpellNumber. Все другие макросы, которые я встречал, основаны на коде Microsoft.

    Вы можете найти макрос, упомянутый как "spellnumber formula". Однако это не формула, а макрофункция, или, если быть более точным Excel Функция, определяемая пользователем (UDF).

    В опции spellnumber можно писать доллары и центы. Если вам нужна другая валюта, вы можете изменить " доллар " и " цент " с именем вашего единственного.

    Если вы не разбираетесь в VBA, ниже вы найдете копию кода. Если вы не хотите или у вас нет времени разбираться с этим, воспользуйтесь этим решением.

    1. Откройте рабочую книгу, в которой нужно написать числа.
    2. Нажмите Alt+F11, чтобы открыть окно редактора Visual Basic.
    3. Если у вас открыто несколько книг, проверьте, что нужная рабочая книга активна, используя список проектов в левом верхнем углу редактора (один из элементов рабочей книги выделен синим цветом).
    4. В меню редактора перейдите к пункту Вставка -> Модуль .
    5. У вас должно появиться окно с именем YourBook - Module1. Выберите весь код в рамке ниже и вставьте его в это окно.

      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 " MyNumber = Trim(Str(MyNumber)) DecimalPlace = InStr(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 = "OneDollar" Case Else Dollars = Dollars & " Dollars" End Select Select Select Case Cents Case "" Cents = " и без центов" Case "One" Cents = " и один цент" Case Else Cents = " и " & Cents & " Cents" End Select SpellNumber = Dollars & Cents End Function Function 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 Function Function GetTens(TensText) Dim Result As String Result = "".' Обнулить значение временной функции. If Val(Left(TensText, 1)) = 1 Then ' Если значение между 10-19... Select Case Val(TensText) Case 10: Результат = "десять" Case 11: Результат = "одиннадцать" Case 12: Результат = "двенадцать" Case 13: Результат = "тринадцать" Case 14: Результат = "четырнадцать" Case 15: Результат = "пятнадцать" Case 16: Результат = "шестнадцать" Case 17: Результат = "семнадцать" Case 18: Результат = "восемнадцать" Case 19: Результат ="Девятнадцать" Case Else End Select Else ' Если значение между 20-99... Select Case Val(Left(TensText, 1)) Case 2: Результат = "Двадцать " Case 3: Результат = "Тридцать " Case 4: Результат = "Сорок " Case 5: Результат = "Пятьдесят " Case 6: Результат = "Шестьдесят " Case 7: Результат = "Семьдесят " Case 8: Результат = "Восемьдесят " Case 9: Результат = "Девяносто " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1)) ' RetrieveEnd If GetTens = Result End Function Function Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "Один" Case 2: GetDigit = "Два" Case 3: GetDigit = "Три" Case 4: GetDigit = "Четыре" Case 5: GetDigit = "Пять" Case 6: GetDigit = "Шесть" Case 7: GetDigit = "Семь" Case 8: GetDigit = "Восемь" Case 9: GetDigit = "Девять" Case Else : GetDigit = "" End Select End Function

    6. Нажмите Ctrl+S, чтобы сохранить обновленную рабочую книгу.

      Вам нужно будет пересохранить рабочую книгу. Когда вы попытаетесь сохранить рабочую книгу с макросом, вы получите сообщение " Следующие функции не могут быть сохранены в рабочей книге без макросов "

      Нажмите Нет. Когда появится новое диалоговое окно, выберите опцию Сохранить как. В поле " Сохранить как тип "выбрать вариант Рабочая книга с поддержкой макросов Excel ".

    Используйте макрос SpellNumber в своих рабочих листах

    Теперь вы можете использовать функцию SpellNumber в документах Excel. Введите =SpellNumber(A2) в ячейку, где нужно получить число, записанное словами. Здесь A2 - адрес ячейки с числом или суммой.

    Здесь вы можете увидеть результат:

    Вуаля!

    Быстрое копирование функции SpellNumber в другие ячейки.

    Если вам нужно преобразовать всю таблицу, а не только одну ячейку, подведите курсор мыши к правому нижнему углу ячейки с формулой, пока он не превратится в маленький черный крестик:

    Щелкните левой кнопкой мыши и перетащите ее по столбцу, чтобы заполнить формулу. Отпустите кнопку, чтобы увидеть результаты:

    Примечание. Имейте в виду, что если вы используете SpellNumber со ссылкой на другую ячейку, записанная сумма будет обновляться каждый раз при изменении числа в исходной ячейке.

    Вы также можете ввести номер непосредственно в функцию, например, =SpellNumber(29.95) (29,95 - без кавычек и знака доллара).

    Недостатки использования макроса для написания чисел в Excel

    Во-первых, вы должны знать VBA, чтобы изменить код в соответствии с вашими потребностями. Необходимо вставить код для каждой рабочей книги, в которой вы планируете его изменить. В противном случае вам придется создать файл шаблона с макросами и настроить Excel на загрузку этого файла при каждом запуске.

    Основной недостаток использования макроса заключается в том, что если вы отправите рабочую книгу кому-то другому, этот человек не увидит текст, если только макрос не встроен в рабочую книгу. И даже если он встроен, он получит предупреждение о том, что в рабочей книге есть макросы.

    Произносите числа в словах с помощью специального дополнения

    Для пользователей Excel, которым необходимо быстро прописывать суммы, но нет времени изучать VBA или искать обходные пути, мы создали специальный инструмент, который может быстро выполнить конвертацию суммы в слова для нескольких популярных валют. Познакомьтесь с надстройкой Spell Number, входящей в последний выпуск нашего пакета Ultimate Suite for Excel.

    Помимо того, что инструмент готов к использованию, он действительно гибок в преобразовании объемов в текст:

    • Вы можете выбрать одну из следующих валют: USD, EUR, GBP, BIT, AUD.
    • Напишите дробную часть в центах, пенни или битцентах.
    • Выберите любой регистр текста для результата: нижний регистр, верхний регистр, регистр заголовка или регистр предложения.
    • Произносите десятичную часть разными способами.
    • Включите или опустите нулевые центы.

    Дополнение поддерживает все современные версии, включая Excel 365, Excel 2029, Excel 2016, Excel 2013 и Excel 2010. Пожалуйста, ознакомьтесь с другими возможностями на главной странице продукта по ссылке выше.

    А теперь давайте посмотрим на эту утилиту для написания чисел в действии:

    1. Выберите пустую ячейку для результата.
    2. На Ablebits во вкладке Утилиты группу, нажмите Номер заклинания .
    3. В Номер разлива В появившемся диалоговом окне настройте следующие параметры:
      • Для Выберите свой номер выберите ячейку, содержащую сумму, которую вы хотите записать в виде текста.
      • Укажите желаемый в настоящее время , регистр букв и то, как десятичная часть числа должны быть написаны.
      • Определите, нужно ли включать нулевые центы или нет.
      • Выберите, как вставить результат - в виде значения или формулы.
    4. В нижней части диалогового окна, предварительный просмотр результат. Если вы довольны тем, как написан ваш номер, нажмите кнопку Заклинание В противном случае попробуйте другие настройки.

    На скриншоте ниже показаны варианты по умолчанию и написанное число в B2. Обратите внимание на формулу (точнее, пользовательскую функцию) в строке формул:

    И это краткая демонстрация того, как могут быть прописаны другие валюты:

    Советы и примечания:

    • Потому что Номер заклинания дополнение было разработано для работы с реальными случаями использования, такими как счета-фактуры и другие финансовые документы, оно может только конвертировать один номер за раз.
    • Чтобы написать столбец чисел , вставьте формулу в первую ячейку, а затем скопируйте ее вниз.
    • Если существует вероятность того, что ваши исходные данные могут измениться в будущем, лучше всего вставьте результат в виде формулы , поэтому он автоматически обновляется при изменении исходного номера.
    • При выборе результат в виде формулы опция, пользовательский функция, определяемая пользователем (UDF) вставляется. Если вы планируете поделиться своей рабочей книгой с кем-то, у кого не установлен Ultimate Suite, не забудьте заменить формулы значениями перед тем, как поделиться.

    Обратное преобразование - английские слова в числа

    Честно говоря, я не могу представить, зачем вам это может понадобиться. На всякий случай... :)

    Оказывается, MVP Excel, Джерри Лэтэм, создал такую функцию Excel, определяемую пользователем (UDF), как WordsToDigits Он преобразует английские слова обратно в числа.

    Вы можете загрузить рабочую тетрадь Джерри WordsToDigits, чтобы посмотреть код UDF. Здесь же вы найдете его примеры использования функции.

    Вы можете увидеть, как работает эта функция на листе " Образцы записей ", где вы также сможете ввести свои собственные примеры. Если вы планируете использовать WordsToDigits в своих документах, пожалуйста, имейте в виду, что эта функция имеет ограничения. Например, она не распознает дроби, введенные словами. Все подробности вы найдете на странице " Информация " лист.

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.