Làm cách nào tôi có thể sử dụng số tiếng Anh trong Excel?

Hướng dẫn Excel này giải thích cách chuyển đổi số thành từ (có ảnh chụp màn hình và hướng dẫn từng bước)

Câu hỏi. Trong Microsoft Excel, làm cách nào để chuyển đổi giá trị số thành chữ?

Làm cách nào tôi có thể sử dụng số tiếng Anh trong Excel?

Trả lời. Excel không có sẵn hàm chuyển số thành chữ. Thay vào đó, bạn cần tự tạo một hàm tùy chỉnh để tự chuyển số thành chữ. Hãy cùng khám phá cách.

Để xem chức năng đã hoàn thành và cách nó được sử dụng trong ví dụ bên dưới, hãy tải xuống bảng tính mẫu

Tải xuống ví dụ

TIỀN BOA. Khi bạn tạo một chức năng tùy chỉnh trong Excel, nó sẽ tạo mã macro. Khi bạn mở tệp của mình sau khi tạo chức năng tùy chỉnh, nó sẽ cảnh báo rằng có macro trong bảng tính. Bạn sẽ cần bật macro để chức năng hoạt động bình thường

Bắt đầu nào. Trước tiên, bạn cần mở bảng tính Excel của mình và nhấn Alt+F11 để mở cửa sổ Microsoft Visual Basic for Applications. Trong menu Chèn, chọn Mô-đun

Làm cách nào tôi có thể sử dụng số tiếng Anh trong Excel?

Thao tác này sẽ chèn một mô-đun mới vào bảng tính của bạn có tên là Mô-đun1. Dán hai chức năng sau vào mô-đun mới

' Example created by techonthenet.com
Function EnglishNumber(ByVal N As Currency) As String

   Const Thousand = 1000@
   Const Million = Thousand * Thousand
   Const Billion = Thousand * Million
   Const Trillion = Thousand * Billion

   If (N = 0@) Then EnglishNumber = "zero": Exit Function

   Dim Buf As String: If (N < 0@) Then Buf = "negative " Else Buf = ""
   Dim Frac As Currency: Frac = Abs(N - Fix(N))
   If (N < 0@ Or Frac <> 0@) Then N = Abs(Fix(N))
   Dim AtLeastOne As Integer: AtLeastOne = N >= 1

   If (N >= Trillion) Then
      Buf = Buf & EnglishNumberDigitGroup(Int(N / Trillion)) & " trillion"
      N = N - Int(N / Trillion) * Trillion
      If (N >= 1@) Then Buf = Buf & " "
   End If

   If (N >= Billion) Then
      Buf = Buf & EnglishNumberDigitGroup(Int(N / Billion)) & " billion"
      N = N - Int(N / Billion) * Billion
      If (N >= 1@) Then Buf = Buf & " "
   End If

   If (N >= Million) Then
      Buf = Buf & EnglishNumberDigitGroup(N \ Million) & " million"
      N = N Mod Million
      If (N >= 1@) Then Buf = Buf & " "
   End If

   If (N >= Thousand) Then
      Buf = Buf & EnglishNumberDigitGroup(N \ Thousand) & " thousand"
      N = N Mod Thousand
      If (N >= 1@) Then Buf = Buf & " "
   End If

   If (N >= 1@) Then
      Buf = Buf & EnglishNumberDigitGroup(N)
   End If

   EnglishNumber = Buf
End Function

Private Function EnglishNumberDigitGroup(ByVal N As Integer) As String

   Const Hundred = " hundred"
   Const One = "one"
   Const Two = "two"
   Const Three = "three"
   Const Four = "four"
   Const Five = "five"
   Const Six = "six"
   Const Seven = "seven"
   Const Eight = "eight"
   Const Nine = "nine"
   Dim Buf As String: Buf = ""
   Dim Flag As Integer: Flag = False

   Select Case (N \ 100)
      Case 0: Buf = "": Flag = False
      Case 1: Buf = One & Hundred: Flag = True
      Case 2: Buf = Two & Hundred: Flag = True
      Case 3: Buf = Three & Hundred: Flag = True
      Case 4: Buf = Four & Hundred: Flag = True
      Case 5: Buf = Five & Hundred: Flag = True
      Case 6: Buf = Six & Hundred: Flag = True
      Case 7: Buf = Seven & Hundred: Flag = True
      Case 8: Buf = Eight & Hundred: Flag = True
      Case 9: Buf = Nine & Hundred: Flag = True
   End Select

   If (Flag <> False) Then N = N Mod 100
   If (N > 0) Then
      If (Flag <> False) Then Buf = Buf & " "
   Else
      EnglishNumberDigitGroup = Buf
      Exit Function
   End If

   Select Case (N \ 10)
      Case 0, 1: Flag = False
      Case 2: Buf = Buf & "twenty": Flag = True
      Case 3: Buf = Buf & "thirty": Flag = True
      Case 4: Buf = Buf & "forty": Flag = True
      Case 5: Buf = Buf & "fifty": Flag = True
      Case 6: Buf = Buf & "sixty": Flag = True
      Case 7: Buf = Buf & "seventy": Flag = True
      Case 8: Buf = Buf & "eighty": Flag = True
      Case 9: Buf = Buf & "ninety": Flag = True
   End Select

   If (Flag <> False) Then N = N Mod 10
   If (N > 0) Then
      If (Flag <> False) Then Buf = Buf & "-"
   Else
      EnglishNumberDigitGroup = Buf
      Exit Function
   End If

   Select Case (N)
      Case 0:
      Case 1: Buf = Buf & One
      Case 2: Buf = Buf & Two
      Case 3: Buf = Buf & Three
      Case 4: Buf = Buf & Four
      Case 5: Buf = Buf & Five
      Case 6: Buf = Buf & Six
      Case 7: Buf = Buf & Seven
      Case 8: Buf = Buf & Eight
      Case 9: Buf = Buf & Nine
      Case 10: Buf = Buf & "ten"
      Case 11: Buf = Buf & "eleven"
      Case 12: Buf = Buf & "twelve"
      Case 13: Buf = Buf & "thirteen"
      Case 14: Buf = Buf & "fourteen"
      Case 15: Buf = Buf & "fifteen"
      Case 16: Buf = Buf & "sixteen"
      Case 17: Buf = Buf & "seventeen"
      Case 18: Buf = Buf & "eighteen"
      Case 19: Buf = Buf & "nineteen"
   End Select

   EnglishNumberDigitGroup = Buf

End Function

Cửa sổ Excel của bạn sẽ trông như sau

Làm cách nào tôi có thể sử dụng số tiếng Anh trong Excel?

Nhấp vào nút Lưu (biểu tượng đĩa) rồi quay lại cửa sổ bảng tính của bạn

Bây giờ bạn có thể sử dụng hàm EnglishNumber để chuyển đổi một số thành từ. Nó sẽ hoạt động giống như bất kỳ chức năng trang tính nào khác. Chỉ cần tham khảo hàm EnglishNumber trong bảng tính Excel của bạn như sau