image

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.