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

- استخدام الوظائف المدمجة الجديدة (Microsoft 365 فقط)
- استخدام وظيفة VBA المعرفة من قبل المستخدم
- استخدام Kutools لـ Excel بنقرات قليلة
طرق تحويل الأرقام إلى كلمات في Excel
يقدم هذا القسم ثلاث طرق فعالة لتحويل الأرقام النقدية إلى كلمات في Excel. اختر الطريقة الأنسب لإصدار Excel الخاص بك وحالتك الاستخدامية.
الطريقة الأولى: استخدام الوظائف المدمجة الجديدة (Microsoft 365 فقط)
إذا كنت تستخدم Excel لـ Microsoft 365، يمكنك الاستفادة من وظيفة TRANSLATE الجديدة لتحويل الأرقام النقدية إلى كلمات بسهولة باستخدام مجموعة إبداعية من الصيغ.
كما هو موضح في لقطة الشاشة أدناه، لتحويل الأرقام النقدية في النطاق A2:A5 إلى كلمات، يمكنك تطبيق الصيغة التالية للقيام بذلك.
- حدد خلية فارغة (مثل B2)، وأدخل الصيغة أدناه. =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),"th","en")),"baht","dollars"),"satang","cents"))
- اضغط على "Enter" واسحب "مقبض التعبئة" لأسفل لتطبيقه على الصفوف الأخرى.
كيف تعمل الصيغة:
- 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
- افتح ورقة العمل حيث تريد استخدام هذه الميزة.
- اضغط على "Alt" + "F11" لفتح نافذة "Microsoft Visual Basic for Applications".
- في المحرر، انقر على "إدراج" > "وحدة"، ثم ألصق الكود التالي لـ 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
- اضغط على "Alt" + "Q" للعودة إلى ورقة العمل.
الخطوة الثانية: تطبيق الوظيفة
- في الخلية، أدخل الصيغة أدناه واضغط على "Enter". =SpellNumberToEnglish(A2)
- ثم اسحب مقبض التعبئة لتطبيقها على الصفوف الأخرى عند الحاجة. الآن سيتم كتابة أرقامك بالأحرف مثل:
تخصيص العملات الأخرى:
الوظيفة تعرض القيم بـ "Dollar(s)" و "Cent(s)", وهي مبرمجة مسبقًا فقط للدولار الأمريكي. إذا كنت ترغب في تحويل الأرقام إلى عملات أخرى، على سبيل المثال "الجنيه الإسترليني", تحتاج إلى تغيير الوحدات الرئيسية والفرعية يدويًا في السطور البرمجية التالية.

حفظ المصنف كملف ممكن فيه ماكرو
افتراضيًا، لن يتم الاحتفاظ بوظائف VBA ما لم يتم حفظ المصنف كمصنف مفعل به ماكرو:
- اضغط على "Ctrl" + "S" للحفظ.
- واختر زر "Go back" في رسالة التنبيه المنبثقة المتعلقة بالماكرو. ملاحظة: إذا كانت الرسالة المنبثقة تظهر فقط "نعم", "لا" و "مساعدة", اضغط على "لا".
- في نافذة "Save As".
- اختر موقع الحفظ.
- اختر "Excel Macro-Enabled Workbook (*.xlsm)" من القائمة المنسدلة "تحديد تنسيق الحفظ".
- انقر على "حفظ".
قيود وظيفة VBA SpellNumberToEnglish
- تقوم هذه الوظيفة بتوليد النتائج باللغة الإنجليزية فقط.
- لا تدعم اللغات الأخرى (مثل الفرنسية أو الألمانية)، ولا تعالج هياكل العملات حيث تأتي وحدة العملة قبل الرقم (مثل "Rupees One Hundred" في اللغة الهندية الإنجليزية).
- إذا لم تقم بحفظ المصنف كمصنف مفعل به ماكرو (.xlsm)، سيتم فقدان الوظيفة عند إغلاق Excel.
- إذا تم حفظه كملف عادي .xlsx، سيتم حذف جميع شيفرات VBA.
- إرسال الملف المفعل به ماكرو للآخرين سيؤدي إلى ظهور رسالة تحذير "Security Warning – Macros have been disabled" عند فتحه.
- قد يتردد بعض المستخدمين في تفعيل الماكرو خوفًا من المخاطر الأمنية المحتملة وقد يختارون عدم استخدام الملف.
- أي تغييرات على مصطلحات العملة أو التنسيق تتطلب تعديل شيفرة 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")
الخطوات للاستخدام:
- حدد الخلايا التي تحتوي على الأرقام التي تريد تحويلها.
- حدد "Kutools" > "Content" > "Numbers to Words".
- في مربع الحوار "Numbers to Currency Word"، تحتاج إلى:
- اختيار اللغة ونمط العملة الذي تفضله (مثل الإنجليزية – الولايات المتحدة للدولار الأمريكي)
- انقر على "OK".
اختياري: حدد "Not converted to currency" إذا كنت ترغب في الكلمات الإنجليزية العادية (بدون "dollars" أو "cents").
الآن سيتم تحويل الأرقام المحددة إلى الكلمات النقدية المناسبة بناءً على إعداداتك.
Kutools لـ Excel - قم بتعزيز Excel بأكثر من 300 أدوات أساسية. استمتع بميزات ذكاء اصطناعي مجانية بشكل دائم! احصل عليه الآن
العملية العكسية: تحويل الكلمات النقدية إلى أرقام
إذا كان لديك قائمة بالمبالغ النقدية المكتوبة بالكلمات الإنجليزية، مثل:
وتريد تحويلها إلى أرقام فعلية في Excel (مثل 123.45)، يمكنك استخدام وظيفة VBA معرفة من قبل المستخدم (UDF) كما يلي.

الخطوة الأولى: افتح محرر VBA وأدخل كود VBA
- افتح مصنف Excel الخاص بك.
- اضغط على "Alt" + "F11" لفتح محرر "Microsoft Visual Basic for Applications (VBA)".
- في محرر VBA، انقر على "إدراج" > "وحدة".
- انسخ والصق الكود التالي في نافذة الوحدة الفارغة:
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
الخطوة الثانية: تطبيق الوظيفة في ورقة العمل الخاصة بك
- اضغط على "Alt" + "Q" للعودة إلى Excel.
- في أي خلية فارغة، أدخل هذه الصيغة واضغط على "Enter". اسحب "مقبض التعبئة" لأسفل للحصول على باقي النتائج. =WordsToNumber(A2)
الخلاصة
تحويل الأرقام إلى كلمات - أو العكس - ليس شيئًا تقدمه Excel بشكل أصلي، لكن هذا الدليل أظهر أن هناك حلول متعددة عملية تعتمد على احتياجاتك:
- يمكن لمستخدمي Microsoft 365 الاستفادة من الوظائف الحديثة المدمجة مثل TRANSLATE لتحويل الأرقام النقدية إلى كلمات إنجليزية باستخدام الصيغ، خاصة للعملات التي تتبع هيكل "الوحدة الرئيسية + الوحدة الفرعية".
- توفر وظائف VBA المعرفة من قبل المستخدم مرونة أكبر لتحويل الأرقام إلى كلمات والعكس أيضًا. ومع ذلك، تأتي مع مخاوف أمنية مرتبطة بالماكرو وهي الأنسب للمستخدمين المألوفين بالبرمجة.
- Kutools لـ Excel يقدم الخيار الأسهل والأكثر تعددًا للغات والميزات - لا يتطلب صيغ أو برمجة، ويشمل العشرات من العملات واللغات.
- إذا كنت بحاجة إلى عكس الكلمات إلى أرقام، فإن الحل باستخدام VBA يسد هذه الفجوة بفعالية، رغم أنه قد يتطلب تنظيفًا (مثل إزالة الفواصل) للحصول على نتائج دقيقة.
سواء كنت تعد مستندات مالية، أو تُحسِّن طباعة الشيكات، أو تُحسن عرض البيانات، فإن اختيار الطريقة الصحيحة يساعدك على تحقيق نتائج احترافية ودقيقة.
أفضل أدوات زيادة الإنتاجية لمجموعة Office
عزز مهاراتك في Excel مع Kutools لـ Excel، وتمتع بكفاءة غير مسبوقة. يقدم Kutools لـ Excel أكثر من300 ميزة متقدمة لتعزيز الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يجلب تجربة التبويبات إلى Office، ويجعل عملك أسهل بكثير
- فعّل تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint
- افتح وأنشئ مستندات متعددة في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ جديدة.
- يمنحك زيادة إنتاجية تصل إلى50% ويوفر عليك مئات النقرات يومياً!