Skip to main content

تحويل الأرقام إلى كلمات بالروبية الهندية والعملات الأخرى في Excel (إصدار 2025)

Author: Xiaoyang Last Modified: 2025-08-06

إليك كيفية تحويل الأرقام إلى كلمات بالروبية الهندية أو أي عملة أخرى في Excel.

عند العمل مع المستندات المالية مثل الفواتير، العروض التقديرية، نماذج الضرائب، الشيكات أو إشعارات الدفع، غالبًا ما يكون من الضروري تمثيل قيم العملات بصيغة رقمية وصيغة كتابية. هذا يضيف طبقة من الاحترافية ويساعد على منع الاحتيال أو سوء الفهم.

مثال

12,350.50 → روبية اثني عشر ألف وثلاثمائة وخمسون وخمسون بيسا فقط

بينما لا يحتوي 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).

vba-editor

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

select-module

الخطوة 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
paste-code

الخطوة 4: احفظ وارجع إلى Excel.

الخطوة 5: حدد خلية واستخدم الصيغة كما يلي:

=ConvertToRupees(A2)

اضغط على مفتاح Enter

use-formula

💡 نصيحة: هذه الطريقة تدعم الكسور العشرية (بيسا) وتعمل دون اتصال بالإنترنت.

قيود استخدام 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 مثال:

=NumberToWordsCustom(A2, "Dollars", "Cents")
vba-formula-to-other-currency

صيغة VBA مثال للعملة الأخرى:

=NumberToWordsCustom(A2, "Euros", "Cents")

=NumberToWordsCustom(A2, "Pounds", "Pence")

الكود مرن - فقط امرر العملة المرغوبة والوحدة الفرعية.


احفظ ملف المصنف الخاص بك كملف ممكّن للماكرو

إذا كنت تستخدم VBA، فمن الضروري حفظ المصنف الخاص بك مع تمكين الماكرو. وإلا سيتم فقدان الكود عند إغلاق الملف.

الخطوة 1: اذهب إلى ملف > حفظ باسم

use-save-as

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

use-save-as-macro-enabled

الخطوة 3: انقر على حفظ.

✅ ستبقى الآن الدوال المخصصة الخاصة بك مثل =ConvertToRupees(A2) قابلة لإعادة الاستخدام في أي وقت.


تحويل الأرقام إلى كلمات بالروبية الهندية باستخدام دالة LAMBDA (Microsoft 365 فقط)

لمستخدمي Excel 365، يمكنك استخدام LAMBDA، وهي ميزة جديدة في Excel تتيح لك تعريف صيغ مخصصة - بدون الحاجة إلى VBA.

🪄 ما هي LAMBDA؟

LAMBDA هي ميزة في Excel تتيح لك إنشاء دوال مخصصة باستخدام الصيغ - تمامًا مثل الدوال المدمجة مثل SUM أو IF، ولكن بدون الحاجة إلى أي شفرة أو ماكرو. إنها رائعة لتبسيط المنطق المتكرر وجعل جداول البيانات أكثر نظافة وسهولة في الصيانة.

الخطوة 1: اذهب إلى مدير الأسماء وانقر على الصيغ > مدير الأسماء.

select-name-manager

الخطوة 2: إنشاء اسم جديد.

  • انقر على زر جديد.

    create-new-name
  • أدخل اسمًا.

    مثال: RupeeToWords

    create-name
  • الخطوة 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 ))
  • paste-lambda-function
  • انقر على موافق لحفظ الاسم الجديد.

الخطوة 3. أغلق مدير الأسماء وعد إلى Excel.

الخطوة 4. استخدم الصيغة في أي خلية كما يلي:

=RupeeToWords(A2)

اضغط على مفتاح Enter.

use-lambda-formula

👀 الكود الكامل لـ LAMBDA يتعامل مع الكور، اللاخ، الآلاف والعشرات.


تحويل الأرقام إلى USD، EUR و+30 عملة أخرى (جميع إصدارات Microsoft)

للحصول على الحل الأكثر كفاءة واحترافية، استخدم أداة Numbers to Words من Kutools for Excel. هذه الأداة القوية تدعم:

🌍 أكثر من 30 عملة، بما في ذلك:

  • الدولار الأمريكي (USD)
  • اليورو (EUR)
  • اليوان الصيني (CNY)
  • الجنيه البريطاني (GBP)
  • إلخ.
تحميل

الخطوة 1: حدد الخلايا التي تريد تحويلها.

select-cells

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

select-numbers-to-words

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

select-currency-in-dialog

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

kutools-convert-result

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

convert-to-words

متى تستخدم كل طريقة

  • استخدم VBA إذا كنت بحاجة إلى حل مرن وقابل للبرمجة وتكون على دراية بالماكرو.

  • استخدم LAMBDA إذا كنت تستخدم Excel 365، وتحتاج فقط من حين لآخر إلى تحويل قيم الروبية الهندية. إنه حل خفيف الوزن وقابل للمشاركة ولا يتطلب أي ماكرو أو أدوات خارجية - مثالي للمهام البسيطة أو الشخصية.
  • استخدم Kutools for Excel إذا كنت تبحث عن أسهل وأسرع وأكثر الحلول تنوعًا - لا حاجة إلى ترميز. Kutools مفيد بشكل خاص عندما:
    • تتعامل مع العملات المتعددة.
    • تحتاج إلى تحويل القيم بكميات كبيرة أو مجموعات بيانات كبيرة.
    • تريد أداة جاهزة احترافية بدون ماكرو مع أكثر من 30 خيار عملة وأداء مدعوم بالذكاء الاصطناعي.

أفضل أدوات زيادة الإنتاجية لمجموعة Office

🤖 Kutools AI Aide: أحدث ثورة في تحليل البيانات بفضل: التنفيذ الذكي|توليد الشيفرة|إنشاء الصيغ المخصصة|تحليل البيانات وتوليد الرسوم البيانية|استدعاء الوظائف المحسنة
الميزات الشائعة: إيجاد أو تمييز أو وضع علامة على المكررات|حذف الصفوف الفارغة|دمج الأعمدة أو الخلايا دون فقدان البيانات|تقريب...
بحث متقدم: بحث V بمعايير متعددة|بحث V بقيم متعددة|بحث في عدة ورقات|مطابقة غامضة ....
قائمة منسدلة متقدمة: أنشئ قائمة منسدلة بسرعة|قائمة منسدلة معتمدة|قائمة منسدلة متعددة الاختيار ....
إدارة الأعمدة: إضافة عدد معين من الأعمدة |نقل الأعمدة |تغيير حالة إظهار/إخفاء الأعمدة المخفية| مقارنة النطاقات و الأعمدة ...
ميزات مميزة: التركيز على الشبكة|عرض التصميم|شريط الصيغ المحسن|إدارة أدوات المصنف وورقة العمل|مكتبة النص التلقائي (Auto Text)|منتقي التاريخ|دمج البيانات |تشفير/فك تشفير الخلايا|إرسال البريد الإلكتروني حسب القائمة|مرشح متقدم|تصفية خاصة (تصفية الخلايا التي تحتوي على خط عريض أو مائل أو يتوسطه خط...) ...
أفضل15 مجموعة أدوات:12 أداة نصية (إضافة نص، حذف الأحرف المحددة، ... )|أكثر من50 نوعاً من الرسوم البيانية (مخطط جانت، ...)|أكثر من40 صيغة عملية (حساب العمر بناءً على تاريخ الميلاد، ...)|19 أداة إدراج (إدراج رمز الاستجابة السريعة، إدراج صورة من المسار، ... )|12 أداة تحويل (تحويل إلى كلمات، تحويل العملة، ...)|7 أدوات دمج و تقسيم (دمج متقدم للصفوف، تقسيم الخلايا، ...)|... والمزيد
استخدم Kutools بلغتك المفضلة – يدعم الإنجليزية، الإسبانية، الألمانية، الفرنسية، الصينية، وأكثر من40 لغة أخرى!

عزز مهاراتك في Excel مع Kutools لـ Excel، وتمتع بكفاءة غير مسبوقة. يقدم Kutools لـ Excel أكثر من300 ميزة متقدمة لتعزيز الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...


Office Tab يجلب تجربة التبويبات إلى Office، ويجعل عملك أسهل بكثير

  • فعّل تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint
  • افتح وأنشئ مستندات متعددة في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ جديدة.
  • يمنحك زيادة إنتاجية تصل إلى50% ويوفر عليك مئات النقرات يومياً!