Làm thế nào để chuyển đổi số thành từ trong Excel trong Rupees
Excel không cung cấp bất kỳ hàm mặc định nào chuyển đổi một số hoặc số tiền bằng từ sang đồng rupee Ấn Độ hoặc bất kỳ loại tiền tệ nào. Nhưng không có nghĩa là chúng ta không thể chuyển đổi số sang rupee Ấn Độ. Chúng tôi có thể tạo một công thức Excel tùy chỉnh để chuyển số thành từ bằng đồng rupee của Ấn Độ. Tôi đã tạo chức năng tùy chỉnh này để chuyển số thành từ theo đồng rupee Ấn Độ. Bạn có thể tải xuống tệp macro bên dưới. Tôi đã đề cập đến đoạn mã dưới đây và giải thích một chút để bạn có thể thực hiện các thay đổi theo yêu cầu của mình.
Hàm Excel chuyển đổi số thành từ bằng đồng Rupee của Ấn Độ Vì vậy, hãy sử dụng hàm này để chuyển đổi số tiền hoặc số có 10 chữ số trở xuống bất kỳ thành từ hoặc rupee. Tôi đã đặt tên cho hàm này là NUM_TO_IND_RUPEE_WORD. Cú pháp của hàm này là:
=NUM_TO_IND_RUPEE_WORD(number) |
Bạn có thể tải xuống tệp macro đang hoạt động:
Bây giờ mã của hàm được đề cập bên dưới.
Mã này được chia thành bốn chức năng riêng lẻ. Chức năng chính là NUM_TO_IND_RUPEE_WORD. Và ba hàm khác GetHunderds (), GetTens () và GetDigits là hàm trợ giúp giúp hàm chính tạo thành chuỗi.
Function NUM_TO_IND_RUPEE_WORD(ByVal MyNumber, Optional incRupees As Boolean = True) Dim Crores, Lakhs, Rupees, Paise, Temp Dim DecimalPlace As Long, Count As Long Dim myLakhs, myCrores ReDim Place(9) As String Place(2) = " Thousand ": Place(3) = " Million " Place(4) = " Billion ": Place(5) = " Trillion " ' String representation of amount. MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none. DecimalPlace = InStr(MyNumber, ".") ' Convert Paise and set MyNumber to Rupees amount. If DecimalPlace > 0 Then Paise = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If myCrores = MyNumber \ 10000000 myLakhs = (MyNumber - myCrores * 10000000) \ 100000 MyNumber = MyNumber - myCrores 10000000 - myLakhs 100000 Count = 1 Do While myCrores <> "" Temp = GetHundreds(Right(myCrores, 3)) If Temp <> "" Then Crores = Temp & Place(Count) & Crores If Len(myCrores) > 3 Then myCrores = Left(myCrores, Len(myCrores) - 3) Else myCrores = "" End If Count = Count + 1 Loop Count = 1 Do While myLakhs <> "" Temp = GetHundreds(Right(myLakhs, 3)) If Temp <> "" Then Lakhs = Temp & Place(Count) & Lakhs If Len(myLakhs) > 3 Then myLakhs = Left(myLakhs, Len(myLakhs) - 3) Else myLakhs = "" End If Count = Count + 1 Loop Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Crores Case "": Crores = "" Case "One": Crores = " One Crore " Case Else: Crores = Crores & " Crores " End Select Select Case Lakhs Case "": Lakhs = "" Case "One": Lakhs = " One Lakh " Case Else: Lakhs = Lakhs & " Lakhs " End Select Select Case Rupees Case "": Rupees = "Zero " Case "One": Rupees = "One " Case Else: Rupees = Rupees End Select Select Case Paise Case "": Paise = " and Paise Zero Only " Case "One": Paise = " and Paise One Only " Case Else: Paise = " and Paise " & Paise & " Only " End Select 'creating the string of words to translate number into words NUM_TO_IND_RUPEE_WORD = IIf(incRupees, "Rupees ", "") & Crores & _ Lakhs & Rupees & Paise End Function ' Converts a number from 100-999 into text 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 ' Converts a number from 10 to 99 into text. 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 ' Converts a number from 1 to 9 into text. 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
Mã của hàm dài nhưng dễ hiểu.
Để sử dụng mã này, hãy chèn một mô-đun trong VBE và sao chép, dán nó. Và chức năng đã sẵn sàng để sử dụng trực tiếp trên trang tính. Nó sẽ chuyển đổi số thành từ, cụ thể là ở định dạng rupee Ấn Độ.
Vì vậy, các bạn, đây là cách bạn có thể sử dụng một hàm tùy chỉnh trong Excel để chuyển số thành từ. Tôi hy vọng điều này là hữu ích. Nếu bạn có bất kỳ nghi ngờ nào liên quan đến bài viết này hoặc bất kỳ chức năng nào khác, hãy hỏi trong phần bình luận bên dưới.
Bài viết liên quan:
Bài viết phổ biến:
liên kết: / công thức-và-chức-năng-giới-thiệu-của-vlookup-chức-năng [Excel]
Bạn không cần phải lọc dữ liệu của mình để tính giá trị cụ thể. Chức năng Countif là cần thiết để chuẩn bị bảng điều khiển của bạn.