fbpx

Hai cách tốt nhất để chuyển đổi dạng số sang chữ trong Excel

Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •   

Trong bài này, Học Excel Online sẽ giới thiệu cho các bạn hai cách để chuyển từ số sang chữ trong excel hay chuyển từ dạng số tiền tệ sang các từ tiếng Anh trong Excel 2010, 2013 và các phiên bản khác ngay sau đây.

SpellNumber VBA macro để chuyển từ số sang chữ trong Excel

Như tôi đã đề cập, Microsoft không muốn thêm một công cụ cho nhiệm vụ này. Tuy nhiên, khi họ thấy có nhiều người dùng cần nó, họ đã tạo và xuất bản macro VBA đặc biệt trên trang web của họ.

Bạn có thể tìm thấy các macro được xem là “công thức spellnumber”. Tuy nhiên, nó không phải là một công thức, mà là một hàm macro, hoặc chính xác hơn là hàm được người dùng định nghĩa (UDF).

Tùy chọn đánh vần số có thể viết đô la và cent. Nếu bạn cần một loại tiền tệ khác, bạn có thể thay đổi ” đô la ” và ” cent ” bằng đơn vị bạn cần.

Nếu bạn không phải là một người hiểu biết VBA, dưới đây bạn sẽ tìm thấy một bản sao của mã.

  1. Mở bảng tính mà bạn cần đánh vần các con số.
  2. Nhấn Alt + F11 để mở cửa sổ trình soạn thảo Visual Basic.
  3. Nếu bạn đang mở nhiều tệp tin, hãy chọn bảng tính cần thiết bằng cách sử dụng danh sách các tệp ở bên trái của trình soạn thảo (tệp sẽ được đánh dấu màu xanh).
  4. Trong trình đơn chỉnh sửa hãy vào Insert-> Module .
Excel Visual Basic editor - insert module

Hai cách tốt nhất để chuyển đổi dạng số sangf chữ trong Excel

  1. Bạn sẽ thấy cửa sổ có tên YourBook – Module1. Chọn tất cả mã trong khung bên dưới và dán nó vào cửa sổ này.

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 = "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
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
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
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
  1. Nhấn Ctrl + S để lưu bảng tính đã cập nhật.

Bạn sẽ cần phải lưu lại bảng tính của bạn. Khi bạn cố gắng lưu bảng tính với một macro, bạn sẽ nhận được thông báo ” Các tính năng sau đây không thể được lưu trong bảng tính macro”

The following features cannot be saved in macro-free Workbook : VB project

Các tính năng sau đây không thể được lưu trong bảng tính macro

Nhấp vào NO. Khi bạn thấy một hộp thoại mới, chọn tùy chọn ” Save as type ” và “Excel macro-enabled workbook “.

 Save as type " và "Excel macro-enabled workbook

 Save as type ” và “Excel macro-enabled workbook

Sử dụng macro SpellNumber trong bảng tính của bạn

Bây giờ bạn có thể sử dụng hàm SpellNumber. Nhập =SpellNumber(A2) vào ô nơi bạn cần lấy số được viết bằng từ. Ở đây A2 là địa chỉ của ô có số hoặc số.

Spelled out numbers to dollars and cents

Spelled out numbers to dollars and cents

Ở đây bạn có thể thấy kết quả:

Spelled out numbers to dollars and cents

Sử dụng macro SpellNumber trong bảng tính của bạn

Được rồi !

Sao chép nhanh chức năng SpellNumber sang các ô khác.

Nếu bạn cần chuyển đổi toàn bộ bảng, không chỉ 1 ô, đặt con trỏ chuột đến góc dưới bên phải của ô với công thức cho đến khi nó biến thành một chữ thập nhỏ màu đen:

Quickly copy the SpellNumber function to other cells

Nhấp chuột trái và kéo nó qua cột để điền vào công thức. Nhả nút để xem kết quả:

Spelled out numbers to dollars and cents

Chú thích. Hãy ghi nhớ rằng nếu bạn sử dụng SpellNumber với một liên kết đến một ô khác, số tiền bằng văn bản sẽ được cập nhật mỗi khi số trong ô nguồn được thay đổi.
Bạn cũng có thể nhập số trực tiếp vào hàm, ví dụ, =SpellNumber(29.95) (29,95 – không có dấu ngoặc kép và dấu đô la).

Nhược điểm của việc sử dụng macro để đánh vần số trong Excel

Trước hết, bạn phải biết VBA sửa đổi mã theo nhu cầu của bạn. Bạn cần dán mã cho mỗi bảng tính, nơi bạn muốnh thay đổi nó. Nếu không, bạn sẽ cần phải tạo tệp mẫu có macro và định cấu hình Excel để tải tệp này vào mỗi lần bắt đầu.

Bất lợi chính của việc sử dụng macro là nếu bạn gửi bảng tính tới người khác, người này sẽ không nhìn thấy văn bản trừ khi macro được tích hợp vào bảng tính. Và ngay cả khi nó được tích hợp, họ sẽ nhận được cảnh báo rằng có những macro trong bảng tính.

Add a macro to your workbook


Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •