25/05/2018, 23:23

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

Trong bài này, Học Excel Online sẽ giới thiệu cho các bạn hai cách để chuyển đổi 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. SpellNumber VBA macro để chuyển đổi số sang chữ Như tôi đã đề cập, Microsoft không muốn thêm một công cụ cho nhiệm vụ 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 đổi 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.

SpellNumber VBA macro để chuyển đổi số sang chữ

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

  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 FunctionFunction 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

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

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

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

Spelled out numbers to dollars and cents

Đượ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

0