Skip to main content

تحويل الأرقام إلى كلمات في Excel – دليل شامل

Author: Xiaoyang Last Modified: 2025-08-06

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

A screenshot showing converting numbers to words in Excel

طرق تحويل الأرقام إلى كلمات في Excel

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


الطريقة الأولى: استخدام الوظائف المدمجة الجديدة (Microsoft 365 فقط)

إذا كنت تستخدم Excel لـ Microsoft 365، يمكنك الاستفادة من وظيفة TRANSLATE الجديدة لتحويل الأرقام النقدية إلى كلمات بسهولة باستخدام مجموعة إبداعية من الصيغ.

كما هو موضح في لقطة الشاشة أدناه، لتحويل الأرقام النقدية في النطاق A2:A5 إلى كلمات، يمكنك تطبيق الصيغة التالية للقيام بذلك.

  1. حدد خلية فارغة (مثل B2)، وأدخل الصيغة أدناه.
    =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),"th","en")),"baht","dollars"),"satang","cents"))
  2. اضغط على "Enter" واسحب "مقبض التعبئة" لأسفل لتطبيقه على الصفوف الأخرى.
    A screenshot showing how to use the new function to convert numbers to words

كيف تعمل الصيغة:

  • BAHTTEXT: تحول الرقم إلى نص الباخت التايلاندي (مثل “หนึ่งบาทถ้วน”).
  • TRANSLATE(...,"th","en"): تترجم النص من لغة إلى أخرى (يتطلب Microsoft 365). في هذه الحالة، يتم ترجمة التايلاندية إلى الإنجليزية.
  • LOWER(): تحول السلسلة بأكملها إلى حروف صغيرة من أجل الاتساق.
  • SUBSTITUTE(): تقوم باستبدال الكلمات النقدية مثل "baht" و "satang" بالمصطلحات المرغوبة.
  • PROPER(): تجعل أول حرف من كل كلمة كبيرًا للتنسيق المناسب.

تخصيص العملات الأخرى:

الصيغة أعلاه تعطي الدولارات الأمريكية. يمكنك تخصيصها للعملات الأخرى عن طريق استبدال الوحدات الرئيسية والثانوية:

  • استبدل "dollars" بوحدة العملة الأساسية المستهدفة، مثل "pounds" للجنيه الإسترليني.
  • استبدل "cents" بالوحدة الثانوية، مثل "pence" للجنيه الإسترليني.

الجدول التالي يسرد العملات المتوافقة والصيغ المقابلة التي يمكنك استخدامها:

العملةاستبدال الوحدة الرئيسيةاستبدال الوحدة الثانويةصيغة مثال (مع افتراض أن القيمة في الخلية A2)
USD dollars cents =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","dollars"),"satang","cents"))
GBP pounds pence =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","pounds"),"satang","pence"))
EUR euros cents =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","euros"),"satang","cents"))
MYR ringgit sen =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","ringgit"),"satang","sen"))

قيود هذه الطريقة:

  • تعمل فقط في Excel لـ Microsoft 365 (بسبب وظيفة TRANSLATE()).
  • الناتج يعتمد بشكل كبير على دقة تنسيق BAHTTEXT().
  • هذه الطريقة مناسبة للعملات التي، مثل الباخت التايلاندي، تحتوي على وحدة رئيسية ووحدة فرعية (مثل الدولارات والسنتات). لا يُوصى باستخدامها للعملات التي لا تتبع هيكل عملة مشابه.

الطريقة الثانية: استخدام وظيفة VBA المعرفة من قبل المستخدم

في هذا القسم، ستتعلم كيفية استخدام وظيفة معرفة من قبل المستخدم (UDF) تعتمد على VBA لتحويل القيم الرقمية إلى كلمات عملة إنجليزية - تم تصميمها خصيصًا للدولار الأمريكي (USD) افتراضيًا.

الخطوة الأولى: إدراج كود VBA

  1. افتح ورقة العمل حيث تريد استخدام هذه الميزة.
  2. اضغط على "Alt" + "F11" لفتح نافذة "Microsoft Visual Basic for Applications".
  3. في المحرر، انقر على "إدراج" > "وحدة"، ثم ألصق الكود التالي لـ VBA.
    Function SpellNumberToEnglish(ByVal pNumber)
    'Update by Extendoffice
    Dim Dollars, Cents
    arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
    pNumber = Trim(Str(pNumber))
    xDecimal = InStr(pNumber, ".")
    If xDecimal > 0 Then
        Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
        pNumber = Trim(Left(pNumber, xDecimal - 1))
    End If
    xIndex = 1
    Do While pNumber <> ""
        xHundred = ""
        xValue = Right(pNumber, 3)
        If Val(xValue) <> 0 Then
            xValue = Right("000" & xValue, 3)
            If Mid(xValue, 1, 1) <> "0" Then
                xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
            End If
            If Mid(xValue, 2, 1) <> "0" Then
                xHundred = xHundred & GetTens(Mid(xValue, 2))
            Else
                xHundred = xHundred & GetDigit(Mid(xValue, 3))
            End If
        End If
        If xHundred <> "" Then
            Dollars = xHundred & arr(xIndex) & Dollars
        End If
        If Len(pNumber) > 3 Then
            pNumber = Left(pNumber, Len(pNumber) - 3)
        Else
            pNumber = ""
        End If
        xIndex = xIndex + 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
    SpellNumberToEnglish = Dollars & Cents
    End Function
    Function GetTens(pTens)
    Dim Result As String
    Result = ""
    If Val(Left(pTens, 1)) = 1 Then
        Select Case Val(pTens)
            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
    Select Case Val(Left(pTens, 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(pTens, 1))
    End If
    GetTens = Result
    End Function
    Function GetDigit(pDigit)
    Select Case Val(pDigit)
        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
    A screenshot showing the code editor
  4. اضغط على "Alt" + "Q" للعودة إلى ورقة العمل.

الخطوة الثانية: تطبيق الوظيفة

  1. في الخلية، أدخل الصيغة أدناه واضغط على "Enter".
    =SpellNumberToEnglish(A2)
  2. ثم اسحب مقبض التعبئة لتطبيقها على الصفوف الأخرى عند الحاجة. الآن سيتم كتابة أرقامك بالأحرف مثل:
    A screenshot showing the user-defined function and the results

تخصيص العملات الأخرى:

الوظيفة تعرض القيم بـ "Dollar(s)" و "Cent(s)", وهي مبرمجة مسبقًا فقط للدولار الأمريكي. إذا كنت ترغب في تحويل الأرقام إلى عملات أخرى، على سبيل المثال "الجنيه الإسترليني", تحتاج إلى تغيير الوحدات الرئيسية والفرعية يدويًا في السطور البرمجية التالية.

A screenshot showing how to change the codes to adapt for other currencies

حفظ المصنف كملف ممكن فيه ماكرو

افتراضيًا، لن يتم الاحتفاظ بوظائف VBA ما لم يتم حفظ المصنف كمصنف مفعل به ماكرو:

  1. اضغط على "Ctrl" + "S" للحفظ.
  2. واختر زر "Go back" في رسالة التنبيه المنبثقة المتعلقة بالماكرو.
    ملاحظة: إذا كانت الرسالة المنبثقة تظهر فقط "نعم", "لا" و "مساعدة", اضغط على "لا".
    A screenshot showing how to change the codes to adapt for other currencies
  3. في نافذة "Save As".
    1. اختر موقع الحفظ.
    2. اختر "Excel Macro-Enabled Workbook (*.xlsm)" من القائمة المنسدلة "تحديد تنسيق الحفظ".
    3. انقر على "حفظ".
      A screenshot showing how to change the codes to adapt for other currencies

قيود وظيفة VBA SpellNumberToEnglish

لا يوجد دعم للعديد من اللغات
  • تقوم هذه الوظيفة بتوليد النتائج باللغة الإنجليزية فقط.
  • لا تدعم اللغات الأخرى (مثل الفرنسية أو الألمانية)، ولا تعالج هياكل العملات حيث تأتي وحدة العملة قبل الرقم (مثل "Rupees One Hundred" في اللغة الهندية الإنجليزية).
غير محفوظة في ملفات Excel القياسية
  • إذا لم تقم بحفظ المصنف كمصنف مفعل به ماكرو (.xlsm)، سيتم فقدان الوظيفة عند إغلاق Excel.
  • إذا تم حفظه كملف عادي .xlsx، سيتم حذف جميع شيفرات VBA.
تحذير أمان الماكرو عند المشاركة
  • إرسال الملف المفعل به ماكرو للآخرين سيؤدي إلى ظهور رسالة تحذير "Security Warning – Macros have been disabled" عند فتحه.
  • قد يتردد بعض المستخدمين في تفعيل الماكرو خوفًا من المخاطر الأمنية المحتملة وقد يختارون عدم استخدام الملف.
يتطلب معرفة بـ VBA للتخصيص
  • أي تغييرات على مصطلحات العملة أو التنسيق تتطلب تعديل شيفرة VBA يدويًا.
  • ليست مثالية للمستخدمين غير المألوفين بالماكرو أو البرمجة.

الطريقة الثالثة: استخدام Kutools لـ Excel (لا حاجة لصيغ أو VBA)

إذا قمت بتثبيت "Kutools لـ Excel", استخدم ميزة "Numbers to Words" لتحويل الأرقام إلى اللغة الإنجليزية (عملة أو عادية)، والعديد من اللغات والعملات الأخرى مثل اليورو، الجنيه الإسترليني، الين الياباني، إلخ.

إذا كنت تبحث عن حل سهل الاستخدام وخالي من التعليمات البرمجية ومتنوع لتحويل الأرقام إلى كلمات في Excel، فإن Kutools لـ Excel يقدم ميزة مخصصة "Numbers to Words" تدعم:

  • الإنجليزية (USD, GBP, EUR, إلخ.)
  • العديد من اللغات والعملات الأخرى (مثل الين الياباني، الروبية الهندية، اليوان الصيني)
  • تنسيق العملة أو الكلمات العادية (مثل "One Hundred Twenty-Three" بدلاً من "One Hundred Twenty-Three Dollars")

الخطوات للاستخدام:

  1. حدد الخلايا التي تحتوي على الأرقام التي تريد تحويلها.
  2. حدد "Kutools" > "Content" > "Numbers to Words".
  3. في مربع الحوار "Numbers to Currency Word"، تحتاج إلى:
    1. اختيار اللغة ونمط العملة الذي تفضله (مثل الإنجليزية – الولايات المتحدة للدولار الأمريكي)
    2. انقر على "OK".
      A screenshot showing the numbers to currency word dialog box

اختياري: حدد "Not converted to currency" إذا كنت ترغب في الكلمات الإنجليزية العادية (بدون "dollars" أو "cents").

الآن سيتم تحويل الأرقام المحددة إلى الكلمات النقدية المناسبة بناءً على إعداداتك.

Kutools لـ Excel - قم بتعزيز Excel بأكثر من 300 أدوات أساسية. استمتع بميزات ذكاء اصطناعي مجانية بشكل دائم! احصل عليه الآن


العملية العكسية: تحويل الكلمات النقدية إلى أرقام

إذا كان لديك قائمة بالمبالغ النقدية المكتوبة بالكلمات الإنجليزية، مثل:

"One hundred twenty-three dollars and forty-five cents"

وتريد تحويلها إلى أرقام فعلية في Excel (مثل 123.45)، يمكنك استخدام وظيفة VBA معرفة من قبل المستخدم (UDF) كما يلي.

الخطوة الأولى: افتح محرر VBA وأدخل كود VBA

  1. افتح مصنف Excel الخاص بك.
  2. اضغط على "Alt" + "F11" لفتح محرر "Microsoft Visual Basic for Applications (VBA)".
  3. في محرر VBA، انقر على "إدراج" > "وحدة".
  4. انسخ والصق الكود التالي في نافذة الوحدة الفارغة:
    Function WordsToNumber(ByVal Txt As String) As Double
    'Updated by Extendoffice
        Dim x As Object: Set x = CreateObject("Scripting.Dictionary")
        Dim units, tens, specials
        Dim part As String, parts() As String
        Dim total As Double, partial As Double, multiplier As Double
        Dim i As Long, word As String
        
        Txt = LCase(Trim(Txt))
        Txt = Replace(Txt, ",", "")
        Txt = Replace(Txt, "-", " ")
        Txt = Replace(Txt, " and ", " ")
        Txt = Replace(Txt, "  ", " ")
        
        ' Setup basic number words
        x.Add "zero", 0: x.Add "one", 1: x.Add "two", 2: x.Add "three", 3
        x.Add "four", 4: x.Add "five", 5: x.Add "six", 6: x.Add "seven", 7
        x.Add "eight", 8: x.Add "nine", 9: x.Add "ten", 10: x.Add "eleven", 11
        x.Add "twelve", 12: x.Add "thirteen", 13: x.Add "fourteen", 14
        x.Add "fifteen", 15: x.Add "sixteen", 16: x.Add "seventeen", 17
        x.Add "eighteen", 18: x.Add "nineteen", 19: x.Add "twenty", 20
        x.Add "thirty", 30: x.Add "forty", 40: x.Add "fifty", 50
        x.Add "sixty", 60: x.Add "seventy", 70: x.Add "eighty", 80
        x.Add "ninety", 90: x.Add "hundred", 100: x.Add "thousand", 1000
        x.Add "million", 1000000: x.Add "billion", 1000000000
        
        Dim dollarPart As String, centPart As String
        Dim dollarValue As Double, centValue As Double
        
        ' Split into dollars and cents
        If InStr(Txt, "dollar") > 0 Then
            dollarPart = Trim(Split(Txt, "dollar")(0))
        End If
        If InStr(Txt, "cent") > 0 Then
            centPart = Trim(Split(Txt, "cent")(0))
            If InStr(centPart, "dollar") > 0 Then
                centPart = Trim(Split(centPart, "dollar")(1))
            End If
        End If
        
        dollarValue = ParseWordsToNumber(dollarPart, x)
        centValue = ParseWordsToNumber(centPart, x)
        
        WordsToNumber = dollarValue + centValue / 100
    End Function
    
    Private Function ParseWordsToNumber(ByVal Txt As String, x As Object) As Double
        Dim parts() As String: parts = Split(Txt, " ")
        Dim total As Double, current As Double
        Dim i As Long, val As Double
        
        For i = 0 To UBound(parts)
            If x.exists(parts(i)) Then
                val = x(parts(i))
                Select Case val
                    Case 100
                        If current = 0 Then current = 1
                        current = current * val
                    Case Is >= 1000
                        If current = 0 Then current = 1
                        total = total + current * val
                        current = 0
                    Case Else
                        current = current + val
                End Select
            End If
        Next i
        
        total = total + current
        ParseWordsToNumber = total
    End Function

الخطوة الثانية: تطبيق الوظيفة في ورقة العمل الخاصة بك

  1. اضغط على "Alt" + "Q" للعودة إلى Excel.
  2. في أي خلية فارغة، أدخل هذه الصيغة واضغط على "Enter". اسحب "مقبض التعبئة" لأسفل للحصول على باقي النتائج.
    =WordsToNumber(A2)
    A screenshot showing how to convert words to numbers

الخلاصة

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

  • يمكن لمستخدمي Microsoft 365 الاستفادة من الوظائف الحديثة المدمجة مثل TRANSLATE لتحويل الأرقام النقدية إلى كلمات إنجليزية باستخدام الصيغ، خاصة للعملات التي تتبع هيكل "الوحدة الرئيسية + الوحدة الفرعية".
  • توفر وظائف VBA المعرفة من قبل المستخدم مرونة أكبر لتحويل الأرقام إلى كلمات والعكس أيضًا. ومع ذلك، تأتي مع مخاوف أمنية مرتبطة بالماكرو وهي الأنسب للمستخدمين المألوفين بالبرمجة.
  • Kutools لـ Excel يقدم الخيار الأسهل والأكثر تعددًا للغات والميزات - لا يتطلب صيغ أو برمجة، ويشمل العشرات من العملات واللغات.
  • إذا كنت بحاجة إلى عكس الكلمات إلى أرقام، فإن الحل باستخدام VBA يسد هذه الفجوة بفعالية، رغم أنه قد يتطلب تنظيفًا (مثل إزالة الفواصل) للحصول على نتائج دقيقة.

سواء كنت تعد مستندات مالية، أو تُحسِّن طباعة الشيكات، أو تُحسن عرض البيانات، فإن اختيار الطريقة الصحيحة يساعدك على تحقيق نتائج احترافية ودقيقة.


أفضل أدوات زيادة الإنتاجية لمجموعة 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% ويوفر عليك مئات النقرات يومياً!