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

- استخدام الدوال الجديدة المضمنة (لـ Microsoft 365 فقط)
- استخدام دالة VBA المعرّفة من قبل المستخدم
- استخدام Kutools لـ Excel بنقرات قليلة
طرق تحويل تحويل إلى كلمات في إكسل
يقدّم هذا القسم ثلاث طرق فعّالة لتحويل الأرقام إلى كلمات العملة في إكسل. اختر الطريقة الأنسب لإصدار إكسل الخاص بك وحالتك الاستخدامية.
الطريقة 1: استخدام الدوال المضمنة الجديدة (لـ 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(): تستبدل كلمات العملة مثل «بات» و«ساتانغ» بالمصطلحات التي تفضلها.
- PROPER(): تحويل الحرف الأول من كل كلمة إلى حرف كبير للحصول على تنسيق مناسب.
التكيف لعملات أخرى:
تُخرِج الصيغة أعلاه الناتج بدولار الولايات المتحدة، ويمكنك تخصيصها لعملات أخرى بسهولة عن طريق استبدال الوحدات الرئيسية والفرعية:
- استبدل «دولارات» بوحدة العملة الرئيسية المستهدفة، مثل «جنيهات» في حالة الجنيه الإسترليني.
- استبدل «سنتات» بالوحدة الفرعية، مثل «بنسات» في حالة الجنيه الإسترليني.
يعرض الجدول التالي العملات المتوافقة والصيغ المقابلة التي يمكنك استخدامها:
| العملة | استبدال الوحدة الرئيسية | استبدال الوحدة الفرعية | صيغة مثال (بافتراض أن القيمة موجودة في الخلية A2) |
|---|---|---|---|
| USD | دولارات | سنتات | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),«th»,«en»)),«baht»,«dollars»),«satang»,«cents»)) |
| GBP | جنيهات | بنسات | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),«th»,«en»)),«baht»,«pounds»),«satang»,«pence»)) |
| EUR | يورو | سنتات | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),«th»,«en»)),«baht»,«euros»),«satang»,«cents»)) |
| MYR | رينغيت | سين | =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),«th»,«en»)),«baht»,«ringgit»),«satang»,«sen»)) |
قيود هذه الطريقة:
- يعمل فقط في Excel من Microsoft 365 نظرًا لاعتماده على دالة TRANSLATE().
- يعتمد الناتج اعتمادًا كبيرًا على دقة تنسيق دالة BAHTTEXT().
- هذه الطريقة مثالية للعملات التي تتبع بنية وحدة رئيسية ووحدة فرعية، مثل البات التايلاندي (كالدولار والسنت)، ولا يُنصح باستخدامها للعملات التي لا تتبع هذا الهيكل.
الطريقة 2: استخدام دالة VBA المعرّفة من قبل المستخدم
في هذا القسم، ستتعلم كيفية استخدام دالة VBA مُعرَّفة من قِبل المستخدم (UDF) لتحويل القيم الرقمية إلى كلمات بالعملة الإنجليزية—مُعدَّة افتراضيًا للدولار الأمريكي (USD).
الخطوة 1: إدراج كود VBA
- افتح ورقة العمل التي ترغب في استخدام هذه الميزة بها.
- اضغط «Alt» + "F11" لفتح نافذة «مايكروسوفت 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» للعودة إلى ورقة العمل.
الخطوة 2: تطبيق الدالة
- في خلية، أدخل الصيغة أدناه واضغط «Enter».=SpellNumberToEnglish(A2)
- ثم اسحب مقبض التعبئة لتطبيق الصيغة على الصفوف الأخرى حسب الحاجتك. الآن، ستظهر أرقامك مكتوبةً بالكلمات كالتالي:

التكيف لعملات أخرى:
تُخرِج الدالة القيم بصيغة «دولار/دولارات» و«سنت/سنتات»، وهي مُضمَّنة مسبقًا للدولار الأمريكي فقط. إذا رغبت في تحويل الأرقام إلى عملات أخرى، مثل الجنيه الإسترليني، فما عليك سوى تعديل الوحدات الرئيسية والفرعية يدويًّا في سطور الكود التالية.

احفظ الملف كملف مع ماكرو مفعّل
بشكل افتراضي، لن يتم الاحتفاظ بدالات VBA ما لم يُحفظ الملف كملف Excel مع ماكرو مفعّل:
- اضغط «Ctrl» + «S» لحفظ عملك.
- وانقر على زر «العودة» في رسالة المنبثقة المتعلقة بالماكرو.ملاحظة: إذا عرضت الرسالة المنبثقة خيارات «نعم» و«لا» و«مساعدة» فقط، فانقر على «لا».

- في نافذة «حفظ باسم».
- اختر موقع الحفظ.
- حدد «ملف Excel مع ماكرو مفعّل (*.xlsm)» من القائمة المنسدلة «تحديد تنسيق الحفظ».
- انقر على «حفظ».

قيود دالة SpellNumberToEnglish الخاصة بـ VBA
- تُولِّد هذه الدالة نتائجها باللغة الإنجليزية فقط.
- ولا تدعم لغات أخرى (مثل الفرنسية أو الألمانية)، كما أنها لا تعالج هياكل العملات التي تسبق فيها وحدة العملة الرقمَ (مثل «روبية مائة» في الإنجليزية الهندية).
- إذا لم تحفظ الملف كملف Excel مع ماكرو مفعّل (.xlsm)، فستفقد الدالة عند إغلاق Excel.
- إذا تم حفظه كملف .xlsx عادي، فسيتم إزالة جميع أكواد VBA تلقائيًا.
- عند إرسال ملف يحتوي على ماكرو مفعّل إلى الآخرين، سيظهر لهم تنبيه «تحذير أمني – تم تعطيل الماكرو» لدى فتحه.
- قد يتردد بعض المستخدمين في تفعيل الماكرو خشيةً من المخاطر الأمنية، فيقررون عدم استخدام الملف.
- أي تغيير في مصطلحات العملة أو تنسيقها يتطلب تعديل كود VBA يدويًّا.
- ليست مثالية للمستخدمين غير الملمين بالماكرو أو البرمجة النصية.
الطريقة 3: استخدام Kutools لـ Excel (لا حاجة لصيغ أو VBA)
إذا قمت بتثبيت «Kutools لـ Excel»، فاستخدم ميزته المميزة «تحويل إلى كلمات» لتحويل الأرقام تلقائيًا إلى كلمات إنجليزية (سواء كعملة أو نص عادي)، بالإضافة إلى دعمها للعديد من اللغات والعملات الأخرى مثل EUR وGBP وJPY، وغيرها.
إذا كنت تبحث عن حل سهل الاستخدام وخالٍ من البرمجة ومتعدد الاستخدامات لتحويل تحويل إلى كلمات في Excel، فإن Kutools لـ Excel يقدم ميزة مخصصة تسمى «تحويل إلى كلمات» تدعم:
- الإنجليزية (USD، GBP، EUR، إلخ.)
- عشرات اللغات والعملات الأخرى (مثل الين الياباني، الروبية الهندية، اليوان الصيني)
- تنسيق العملة أو كلمات بسيطة (مثل «مائة وثلاثة وعشرون» بدلاً من «مائة وثلاثة وعشرون دولارًا»)
خطوات الاستخدام:
- حدد الخلايا التي تحتوي على الأرقام التي ترغب في تحويلها.
- حدد «Kutools» > «المحتوى» > «تحويل إلى كلمات».
- في مربع الحوار «تحويل الأرقام إلى كلمات العملة»، عليك بما يلي:
- اختر لغة ونمط العملة الذي تفضله (مثل الإنجليزية – الولايات المتحدة للدولار الأمريكي USD)
- انقر على «موافق».

اختياري: ضع علامة على خانة «لا تحويل إلى وحدة عملة» إذا كنت تفضل استخدام كلمات إنجليزية بسيطة (بدون ذكر «دولارات» أو «سنتات»).
سيتم الآن تحويل الأرقام المحددة تلقائيًا إلى كلمات العملة المناسبة وفقًا لإعداداتك.
Kutools لـ Excel- عزِّز Excel بقوة أكثر من 300 أداة أساسية، لتجعل عملك أسرع وأسهل، واستفد من ميزات الذكاء الاصطناعي لمعالجة البيانات بشكل أكثر ذكاءً وزيادة الإنتاجية.احصل عليه الآن
العملية العكسية: تحويل كلمات العملة إلى أرقام
إذا كان لديك قائمة بمبالغ عملة مكتوبة بالكلمات الإنجليزية، مثل:
وإذا أردت تحويلها إلى أرقام فعلية في Excel (مثل 123.45)، يمكنك استخدام دالة VBA مخصصة معرَّفة من قِبل المستخدم (UDF) على النحو التالي.

الخطوة 1: فتح محرر VBA وإدراج كود VBA
- افتح مصنف Excel.
- اضغط «Alt» + "F11" لفتح محرر مايكروسوفت Visual Basic for Applications (VBA).
- في محرر 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
الخطوة 2: تطبيق الدالة في ورقتك
- اضغط «Alt» + «Q» للعودة إلى Excel.
- في أي خلية فارغة، أدخل هذه الصيغة ثم اضغط «Enter». بعد ذلك، اسحب «مقبض التعبئة» لأسفل للحصول على باقي النتائج.=WordsToNumber(A2)

الخاتمة
إن تحويل تحويل إلى كلمات—أو تحويل الكلمات مجددًا إلى أرقام—ليس أمرًا تقدمه إكسل بشكلٍ أصلي، لكن هذا الدليل بيّن أن هناك عدة حلول عملية حسب احتياجاتك:
- يمكن لمستخدمي Microsoft 365 الاستفادة من الدوال الحديثة المضمنة مثل TRANSLATE لتحويل أرقام العملة إلى كلمات إنجليزية باستخدام الصيغ، خاصةً للعملات التي تتبع هيكل «الوحدة الرئيسية + الوحدة الفرعية».
- توفر دوال VBA المُعرَّفة من قِبل المستخدم مرونةً أكبر في كلٍّ من تحويل الأرقام إلى كلمات وعكس كلمات العملة إلى قيم رقمية. ومع ذلك، فهي تنطوي على مخاوف أمنية مرتبطة بالماكرو، وتكون الأنسب للمستخدمين الملمين بالبرمجة.
- يوفّر Kutools لـ Excel الخيار الأسهل، والأغنى بالميزات، والأكثر دعماً للغات المتعددة—بدون الحاجة إلى صيغ أو برمجة، ويغطي عشرات العملات واللغات.
- إذا كنت بحاجة إلى تحويل الكلمات إلى أرقام، فإن حل VBA يسد هذه الفجوة بفعالية، رغم أنه قد يتطلب بعض التنظيف (مثل إزالة الفواصل) للحصول على نتائج دقيقة.
سواء كنت تعد مستندات مالية، أو تُتم طباعة الشيكات تلقائيًّا، أو حتى تعمل على تحسين عرض البيانات، فإن اختيار الطريقة المناسبة يضمن لك نتائج احترافية ودقيقة.
أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.يقدّم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...
يجلب Office Tab واجهة ذات علامات تبويب إلى Office، ويجعل عملك أسهل بكثير
- تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
- افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
- يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!
جميع الإضافات من Kutools في برنامج تثبيت واحد!
Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.
- حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
- برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل






