تحويل الأرقام إلى كلمات بالروبية الهندية والعملات الأخرى في Excel (إصدار 2025)
إليك كيفية تحويل الأرقام إلى كلمات بالروبية الهندية أو أي عملة أخرى في Excel.
عند العمل مع المستندات المالية مثل الفواتير، العروض التقديرية، نماذج الضرائب، الشيكات أو إشعارات الدفع، غالبًا ما يكون من الضروري تمثيل قيم العملات بصيغة رقمية وصيغة كتابية. هذا يضيف طبقة من الاحترافية ويساعد على منع الاحتيال أو سوء الفهم.
مثال
بينما لا يحتوي Microsoft Excel على ميزة مضمنة لتحويل الأرقام إلى كلمات، هناك عدة طرق فعالة لتحقيق ذلك - من خلال VBA، دوال LAMBDA، أو أداة Kutools for Excel الشاملة.
تحويل الأرقام إلى كلمات بالروبية الهندية باستخدام VBA (جميع إصدارات Microsoft)
تحويل الأرقام إلى كلمات بالروبية الهندية باستخدام دالة LAMBDA (Microsoft 365 فقط)
تحويل الأرقام إلى USD، EUR و+30 عملة أخرى (جميع إصدارات Microsoft)
تحويل الأرقام إلى كلمات بالروبية الهندية باستخدام VBA (جميع إصدارات Microsoft)
بالنسبة لمستخدمي أي إصدار من Excel، توفر VBA (Visual Basic for Applications) طريقة قابلة للتخصيص لتحويل المبالغ الرقمية إلى كلمات باستخدام النظام الهندي للأرقام (مثل الآلاف، اللاخ، الكور).
الخطوة 1: اضغط على Alt + F11 لفتح محرر VBA (نافذة Microsoft Visual Basic for Applications).

الخطوة 2: انتقل إلى إدراج > وحدة.

الخطوة 3: ألصق كود VBA في الوحدة.
تحويل الأرقام إلى كلمات بالروبية الهندية
Function ConvertToRupees(ByVal MyNumber)
'UpdatebyExtendoffice
Dim Units As String, SubUnits As String, TempStr As String
Dim DecimalPlace As Integer, Count As Integer
Dim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Lakh "
Place(4) = " Crore "
MyNumber = Trim(Str(MyNumber))
DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
SubUnits = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
TempStr = GetHundreds(Right(MyNumber, 3))
If TempStr <> "" Then Units = TempStr & Place(Count) & Units
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
ConvertToRupees = "Rupees " & Application.WorksheetFunction.Trim(Units)
If SubUnits <> "" Then
ConvertToRupees = ConvertToRupees & " and " & SubUnits & " Paise"
End If
ConvertToRupees = ConvertToRupees & " Only"
End Function
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
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
Private Function GetTens(TensText)
Dim Result As String
If Val(Left(TensText, 1)) = 1 Then
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"
End Select
Else
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 "
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function
Private 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

الخطوة 4: احفظ وارجع إلى Excel.
الخطوة 5: حدد خلية واستخدم الصيغة كما يلي:
اضغط على مفتاح Enter

💡 نصيحة: هذه الطريقة تدعم الكسور العشرية (بيسا) وتعمل دون اتصال بالإنترنت.
قيود استخدام VBA
- يتطلب حفظ المصنف كملف ممكّن للماكرو (.xlsm).
- يمكن أن يتم حظر الماكرو بواسطة إعدادات الأمان في بعض البيئات.
تحويل الأرقام إلى كلمات بالعملات الأخرى (USD، EUR، إلخ)
لتخصيص الإخراج للعملات الأخرى، مثل "دولارات" أو "يوروهات"، يمكنك تعديل القيم النصية في وظيفة VBA. أدناه نسخة مبسطة وأكثر مرونة من الوظيفة.
قالب كود VBA مرِن (عملة مخصصة)
'UpdatebyExtendoffice
Public Function NumberToWordsCustom(ByVal num As Double, Optional ByVal currency2 As String, Optional ByVal subCurrency As String) As String
Dim result As String
Dim dollars As Long
Dim cents As Long
dollars = Int(num)
cents = Round((num - dollars) * 100)
If Len(currency2) = 0 Then currency2 = "Dollars"
If Len(subCurrency) = 0 Then subCurrency = "Cents"
result = currency2 & " " & SpellNumber_English(dollars)
If cents > 0 Then
result = result & " and " & SpellNumber_English(cents) & " " & subCurrency
End If
NumberToWordsCustom = result & " Only"
End Function
Private Function SpellNumber_English(ByVal MyNumber As Long) As String
Dim Units As Variant, Tens As Variant, Teens As Variant
Dim Place() As String
Dim TempStr As String
Dim Count As Integer
Dim t As String
Dim StrNumber As String
Dim n As Integer
Place = Split(" Thousand Million Billion", " ")
Units = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
Teens = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
StrNumber = Trim(Str(MyNumber))
Count = 0
Do While StrNumber <> ""
n = Val(Right(StrNumber, 3))
If n <> 0 Then
t = ConvertHundreds(n, Units, Tens, Teens)
If Count > 0 Then t = t & " " & Place(Count - 1)
TempStr = t & " " & TempStr
End If
If Len(StrNumber) > 3 Then
StrNumber = Left(StrNumber, Len(StrNumber) - 3)
Else
StrNumber = ""
End If
Count = Count + 1
Loop
SpellNumber_English = Trim(TempStr)
End Function
Private Function ConvertHundreds(ByVal n As Integer, Units As Variant, Tens As Variant, Teens As Variant) As String
Dim result As String
If n >= 100 Then
result = Units(Int(n / 100)) & " Hundred "
n = n Mod 100
End If
If n >= 20 Then
result = result & Tens(Int(n / 10)) & " "
n = n Mod 10
ElseIf n >= 10 Then
result = result & Teens(n - 10) & " "
n = 0
End If
If n > 0 Then
result = result & Units(n)
End If
ConvertHundreds = Trim(result)
End Function
صيغة VBA مثال:

صيغة VBA مثال للعملة الأخرى:
=NumberToWordsCustom(A2, "Euros", "Cents")
=NumberToWordsCustom(A2, "Pounds", "Pence")
الكود مرن - فقط امرر العملة المرغوبة والوحدة الفرعية.
احفظ ملف المصنف الخاص بك كملف ممكّن للماكرو
إذا كنت تستخدم VBA، فمن الضروري حفظ المصنف الخاص بك مع تمكين الماكرو. وإلا سيتم فقدان الكود عند إغلاق الملف.
الخطوة 1: اذهب إلى ملف > حفظ باسم

الخطوة 2: حدد موقعًا واختر نوع الملف: مصنف Excel ممكّن للماكرو (*.xlsm).

الخطوة 3: انقر على حفظ.
✅ ستبقى الآن الدوال المخصصة الخاصة بك مثل =ConvertToRupees(A2) قابلة لإعادة الاستخدام في أي وقت.
تحويل الأرقام إلى كلمات بالروبية الهندية باستخدام دالة LAMBDA (Microsoft 365 فقط)
لمستخدمي Excel 365، يمكنك استخدام LAMBDA، وهي ميزة جديدة في Excel تتيح لك تعريف صيغ مخصصة - بدون الحاجة إلى VBA.
🪄 ما هي LAMBDA؟
LAMBDA هي ميزة في Excel تتيح لك إنشاء دوال مخصصة باستخدام الصيغ - تمامًا مثل الدوال المدمجة مثل SUM أو IF، ولكن بدون الحاجة إلى أي شفرة أو ماكرو. إنها رائعة لتبسيط المنطق المتكرر وجعل جداول البيانات أكثر نظافة وسهولة في الصيانة.
الخطوة 1: اذهب إلى مدير الأسماء وانقر على الصيغ > مدير الأسماء.

الخطوة 2: إنشاء اسم جديد.
انقر على زر جديد.
أدخل اسمًا.
مثال: RupeeToWords
الخطوة 3: ألصق هذه الصيغة LAMBDA في الحقل يشير إلى:
=LAMBDA(n, LET( units, {"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"}, teens, {"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"}, tens, {"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"}, num, INT(n), paise, ROUND((n - INT(n)) * 100, 0), ConvertTwo, LAMBDA(x, IF(x<10, INDEX(units, x+1), IF(x<20, INDEX(teens, x-9), INDEX(tens, INT(x/10)+1) & IF(MOD(x,10)>0, " " & INDEX(units, MOD(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, IF(x=0, "", IF(x<100, ConvertTwo(x), INDEX(units, INT(x/100)+1) & " Hundred" & IF(MOD(x,100)>0, " " & ConvertTwo(MOD(x,100)), "") ) ) ), words, IF(num=0, "Zero", TEXTJOIN(" ", TRUE, IF(INT(num/10000000)>0, ConvertTwo(INT(num/10000000)) & " Crore", ""), IF(MOD(INT(num/100000),100)>0, ConvertTwo(INT(MOD(num,10000000)/100000)) & " Lakh", ""), IF(MOD(INT(num/1000),100)>0, ConvertTwo(INT(MOD(num,100000)/1000)) & " Thousand", ""), IF(MOD(INT(num/100),10)>0, INDEX(units, INT(MOD(num,1000)/100)+1) & " Hundred", ""), IF(MOD(num,100)>0, ConvertTwo(MOD(num,100)), "") ) ), result, "Rupees " & words & IF(paise>0, " and " & ConvertTwo(paise) & " Paise", "") & " Only", result ))انقر على موافق لحفظ الاسم الجديد.

الخطوة 3. أغلق مدير الأسماء وعد إلى Excel.
الخطوة 4. استخدم الصيغة في أي خلية كما يلي:
اضغط على مفتاح Enter.

👀 الكود الكامل لـ LAMBDA يتعامل مع الكور، اللاخ، الآلاف والعشرات.
تحويل الأرقام إلى USD، EUR و+30 عملة أخرى (جميع إصدارات Microsoft)
للحصول على الحل الأكثر كفاءة واحترافية، استخدم أداة Numbers to Words من Kutools for Excel. هذه الأداة القوية تدعم:
🌍 أكثر من 30 عملة، بما في ذلك:
- الدولار الأمريكي (USD)
- اليورو (EUR)
- اليوان الصيني (CNY)
- الجنيه البريطاني (GBP)
- إلخ.
الخطوة 1: حدد الخلايا التي تريد تحويلها.

الخطوة 2: انتقل إلى Kutools > نص > Numbers to Words

الخطوة 3: اختر العملة المستهدفة وانقر على موافق.

تم تحويل الأرقام إلى العملة المحددة.

😁 نصيحة: إذا كنت تريد تحويل الأرقام مباشرة إلى كلمات، اختر الخيار عدم التحويل إلى عملة وستظهر النتيجة كما يلي:

متى تستخدم كل طريقة
استخدم VBA إذا كنت بحاجة إلى حل مرن وقابل للبرمجة وتكون على دراية بالماكرو.
- استخدم LAMBDA إذا كنت تستخدم Excel 365، وتحتاج فقط من حين لآخر إلى تحويل قيم الروبية الهندية. إنه حل خفيف الوزن وقابل للمشاركة ولا يتطلب أي ماكرو أو أدوات خارجية - مثالي للمهام البسيطة أو الشخصية.
- استخدم Kutools for Excel إذا كنت تبحث عن أسهل وأسرع وأكثر الحلول تنوعًا - لا حاجة إلى ترميز. Kutools مفيد بشكل خاص عندما:
- تتعامل مع العملات المتعددة.
- تحتاج إلى تحويل القيم بكميات كبيرة أو مجموعات بيانات كبيرة.
- تريد أداة جاهزة احترافية بدون ماكرو مع أكثر من 30 خيار عملة وأداء مدعوم بالذكاء الاصطناعي.
أفضل أدوات زيادة الإنتاجية لمجموعة Office
عزز مهاراتك في Excel مع Kutools لـ Excel، وتمتع بكفاءة غير مسبوقة. يقدم Kutools لـ Excel أكثر من300 ميزة متقدمة لتعزيز الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يجلب تجربة التبويبات إلى Office، ويجعل عملك أسهل بكثير
- فعّل تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint
- افتح وأنشئ مستندات متعددة في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ جديدة.
- يمنحك زيادة إنتاجية تصل إلى50% ويوفر عليك مئات النقرات يومياً!