Как быстро преобразовать дату в слова в Excel?
Как правило, мы обычно конвертируем дату в другие форматы даты или цифры в Excel, но сталкивались ли вы когда-нибудь с проблемой преобразования даты в английские слова, как показано на скриншоте ниже? На самом деле нет встроенной функции, которая могла бы с этим справиться, кроме кода VBA.
Преобразование даты в слово с помощью определенной функции
Преобразование даты в слово с помощью определенной функции
Вот код макроса, который может оказать вам услугу при преобразовании дат в слова.
1. Включите используемый лист и нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули и вставьте ниже код в скрипт.
VBA: преобразовать дату в слово
Function DateToWords(ByVal xRgVal As Date) As String
' Update by Extendoffice on 20240926
Dim xYear As String
Dim Hundreds As String
Dim Decades As String
Dim xTensArr As Variant
Dim xOrdArr As Variant
Dim xCardArr As Variant
' Initialize arrays
xOrdArr = Array("First", "Second", "Third", "Fourth", "Fifth", "Sixth", _
"Seventh", "Eighth", "Ninth", "Tenth", "Eleventh", "Twelfth", _
"Thirteenth", "Fourteenth", "Fifteenth", "Sixteenth", _
"Seventeenth", "Eighteenth", "Nineteenth", "Twentieth", _
"Twenty-first", "Twenty-second", "Twenty-third", "Twenty-fourth", _
"Twenty-fifth", "Twenty-sixth", "Twenty-seventh", "Twenty-eighth", _
"Twenty-ninth", "Thirtieth", "Thirty-first")
xCardArr = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", _
"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", _
"Seventeen", "Eighteen", "Nineteen")
xTensArr = Array("Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
' Extract year
xYear = CStr(Year(xRgVal))
Decades = Mid$(xYear, 3)
' Handle decades
If CInt(Decades) < 20 Then
Decades = xCardArr(CInt(Decades))
Else
Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & xCardArr(CInt(Right$(Decades, 1)))
End If
' Handle hundreds
Hundreds = Mid$(xYear, 2, 1)
If CInt(Hundreds) Then
Hundreds = xCardArr(CInt(Hundreds)) & " Hundred "
Else
Hundreds = ""
End If
' Construct English representation of the date
DateToWords = xOrdArr(Day(xRgVal) - 1) & " " & Format$(xRgVal, "mmmm") & " " & _
xCardArr(CInt(Left$(xYear, 1))) & " Thousand " & Hundreds & Decades
End Function
3. Сохраните код и вернитесь к листу, выберите ячейку, в которой вы будете выводить результат, введите эту формулу. = DateToWords (A2) (A2 - используемая вами дата), нажмите Enter и перетащите маркер автозаполнения на нужные ячейки. Смотрите скриншот:
Откройте для себя удобство мгновенного преобразования чисел в слова в Excel с помощью функции Kutools for Excel «Числа в слова», что сэкономит вам время и усилия при легком создании профессионально выглядящих документов!
Относительные статьи:
- Как быстро преобразовать формат даты между европейским и американским в Excel?
- Как преобразовать dD.MM.YYYY в формат даты (mM / DD / YYYY) в Excel?
- Как преобразовать дату и метку времени Unix в Excel?
Лучшие инструменты для офисной работы
Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!