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.
Xem nhanh
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ã.
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
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”
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 “.
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ố.
Ở đây bạn có thể thấy kết quả:
Được rồi !
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:
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ả:
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).
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.