Skip to content

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

مقدمة:

يُعدّ إتقان مهارات التفقيط في برنامج إكسل من الأدوات الأساسية لإنشاء تقارير مالية ووثائق رسمية باللغة العربية.

ما هي معادلة التفقيط؟

لا يوفر إكسل دالة مُخصصة للتفقيط، بل يتم الاعتماد على معادلات مُركبة تعتمد على دالة “IF” و “CONCATENATE”.

كيف تعمل معادلة التفقيط؟

تعتمد معادلة التفقيط على مبدأ تقسيم الرقم إلى خانات (آحاد، عشرات، مئات، …) ثم تحويل كل خانة إلى نصها العربي.

مثال على معادلة التفقيط:

لنفترض أننا نريد تحويل الرقم 123 إلى نصه العربي، سنستخدم المعادلة التالية:

=CONCATENATE(IF(A1<10,””,TEXT(A1,”0″)),IF(A1<100,””,TEXT(A1,”00″)),IF(A1<1000,””,TEXT(A1,”000″)),” “)&”واحد وعشرون”)

شرح معادلة التفقيط:

  • IF(A1<10,””,”TEXT(A1,”0″)): تتحقق هذه الدالة من كون الرقم أصغر من 10. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم تحويل الرقم إلى نص.
  • IF(A1<100,””,”TEXT(A1,”00″)): تتحقق هذه الدالة من كون الرقم أصغر من 100. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم تحويل الرقم إلى نص مع صفرين.
  • IF(A1<1000,””,”TEXT(A1,”000″)): تتحقق هذه الدالة من كون الرقم أصغر من 1000. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم تحويل الرقم إلى نص مع ثلاثة أصفار.
  • CONCATENATE(): تُستخدم هذه الدالة لدمج النصوص الناتجة من الدوال “IF”.
  • ” “: يتم إضافة مسافة فارغة بين الأرقام.
  • “واحد وعشرون”: يتم كتابة النص العربي للرقم بعد دمج النصوص.

ملاحظات:

  • يجب كتابة معادلة التفقيط بشكل صحيح مع مراعاة علامات الترقيم.
  • يمكن تعديل معادلة التفقيط لتناسب احتياجاتك، مثل إضافة “فقط” أو “لا غير” بعد الرقم.
  • هناك العديد من الطرق لكتابة معادلة التفقيط، ويُمكنك استخدام الطريقة التي تناسبك.

مميزات استخدام معادلة التفقيط:

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

عيوب استخدام معادلة التفقيط:

  • تتطلب كتابة معقدة ودقيقة.
  • قد تواجه صعوبة في فهم المعادلات المُعقدة.
  • قد لا تعمل معادلات التفقيط مع بعض الإصدارات القديمة من إكسل.

بدائل معادلة التفقيط:

  • استخدام الوظائف الإضافية: توفر بعض الوظائف الإضافية إمكانيات تحويل الأرقام إلى كلمات عربية بسهولة.
  • استخدام برامج أخرى: تتوفر برامج أخرى تُتيح تحويل الأرقام إلى كلمات عربية بشكل سهل وسريع.

نصائح لكتابة معادلات التفقيط:

  • ابدأ بكتابة معادلات بسيطة للتعرف على طريقة عملها.
  • استخدم دالة “IF” للتحقق من شروط مختلفة.
  • استخدم دالة “CONCATENATE” لدمج النصوص.
  • اختبر معادلات التفقيط بدقة قبل استخدامها في تقاريرك.

معادلة التفقيط في الاكسيل: تحويل الأرقام إلى كلمات عربية (متابعة)

أمثلة على معادلات التفقيط:

1. تحويل الأرقام من 1 إلى 9:

=TEXT(A1,“0”)

2. تحويل الأرقام من 10 إلى 99

=IF(A1<20,TEXT(A1,”0″),CONCATENATE(TEXT(INT(A1/10),”0″),TEXT(MOD(A1,10),”0″)))

دالة التفقيط بالجنيه المصري

مقدمة:

تُعدّ دالة التفقيط بالجنيه المصري أداةً قيّمةً لكتابة المبالغ المالية باللغة العربية بشكلٍ دقيقٍ وواضحٍ.

ما هي دالة التفقيط؟

لا يوفر إكسل دالةً مُخصصةً للتفقيط بالجنيه المصري، لكن يمكن إنشاء دالةٍ مُخصصةٍ باستخدام معادلاتٍ مُركبةٍ تعتمد على دالة “IF” و “CONCATENATE”.

كيف تعمل دالة التفقيط؟

تعتمد دالة التفقيط على مبدأ تقسيم المبلغ إلى خانات (قروش، جنيهات، آلاف، …) ثم تحويل كل خانةٍ إلى نصها العربي مع مراعاة الوحدات النقدية (قرش، جنيه، ألف جنيه، مليون جنيه، …).

مثال على دالة التفقيط:

لنفترض أننا نريد تحويل المبلغ 1234.56 جنيهًا مصريًا إلى نصه العربي، سنستخدم المعادلة التالية:

=CONCATENATE(IF(A1<1,””,”TEXT(A1,”0″)”),” “)&”قرشًا”)&IF(MOD(A1,1)<0.01,””,” “)&IF(MOD(A1,1)<0.1,””,” “)&IF(MOD(A1,1)<1,””,” “)&IF(A1<1,””,” “)&IF(A1<10,””,TEXT(INT(A1),”0″))&” “)&IF(A1<2,”جنيه”,”جنيهان”)&IF(A1<100,””,” “)&IF(A1<1000,””,TEXT(INT(A1/10),”00″))&” “)&IF(A1<200,”ألف جنيه”,”ألف جنيه”)&IF(A1<1000000,””,” “)&IF(A1<10000000,””,TEXT(INT(A1/1000),”000″))&” “)&IF(A1<2000000,”مليون جنيه”,”مليون جنيه”)

شرح معادلة التفقيط:

IF(A1<1,””,”TEXT(A1,”0″)): تتحقق هذه الدالة من كون المبلغ أصغر من 1 جنيه. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم تحويل المبلغ إلى نص.

” “): يتم إضافة مسافة فارغة بين الأرقام.

“قرشًا”): يتم كتابة النص العربي للوحدة النقدية “قرشًا”.

IF(MOD(A1,1)<0.01,””,” “): تتحقق هذه الدالة من كون الجزء الكسري من المبلغ أصغر من 0.01. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم إضافة مسافة فارغة.

IF(MOD(A1,1)<0.1,””,” “): تتحقق هذه الدالة من كون الجزء الكسري من المبلغ أصغر من 0.1. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم إضافة مسافة فارغة.

IF(MOD(A1,1)<1,””,” “): تتحقق هذه الدالة من كون الجزء الكسري من المبلغ أصغر من 1. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم إضافة مسافة فارغة.

IF(A1<1,””,” “): تتحقق هذه الدالة من كون المبلغ أصغر من 1 جنيه. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم إضافة مسافة فارغة.

IF(A1<10,””,TEXT(INT(A1),”0″)): تتحقق هذه الدالة من كون المبلغ أصغر من 10 جنيهات. إذا كان صحيحًا، يتم إرجاع فارغ. وإذا كان خاطئًا، يتم تحويل الجزء الصحيح من المبلغ إلى نص.

” “): يتم إضافة مسافة فارغة بين الأرقام.

IF(A1<2,”جنيه”,”جنيهان”): تتحقق هذه الدالة من كون المبلغ أصغر من 2

كود التفقيط فيجوال بيسك

يُمكن استخدام فيجوال بيسك لكتابة دالة تفقيط لتحويل الأرقام إلى كلمات عربية.

مثال على كود التفقيط:

Public Function SpellNumber(ByVal Number As Double) As String

Dim Str As String

Dim Units() As String

Dim Tens() As String

Dim Hundreds() As String

Dim Thousands() As String

Dim Millions() As String

Dim Billions() As String

‘ وحدات

Units = {“”, “واحد”, “اثنان”, “ثلاثة”, “أربعة”, “خمسة”, “ستة”, “سبعة”, “ثمانية”, “تسعة”}

‘ عشرات

Tens = {“”, “عشرة”, “عشرون”, “ثلاثون”, “أربعون”, “خمسون”, “ستون”, “سبعون”, “ثمانون”, “تسعون”}

‘ مئات

Hundreds = {“”, “مائة”, “مئتان”, “ثلاثمائة”, “أربعمائة”, “خمسمائة”, “ستمائة”, “سبعمائة”, “ثمانمائة”, “تسعمائة”}

‘ آلاف

Thousands = {“”, “ألف”, “ألفان”, “ثلاثة آلاف”, “أربعة آلاف”, “خمسة آلاف”, “ستة آلاف”, “سبعة آلاف”, “ثمانية آلاف”, “تسعة آلاف”}

‘ ملايين

Millions = {“”, “مليون”, “مليونان”, “ثلاثة ملايين”, “أربعة ملايين”, “خمسة ملايين”, “ستة ملايين”, “سبعة ملايين”, “ثمانية ملايين”, “تسعة ملايين”}

‘ بلايين

Billions = {“”, “مليار”, “ملياران”, “ثلاثة مليارات”, “أربعة مليارات”, “خمسة مليارات”, “ستة مليارات”, “سبعة مليارات”, “ثمانية مليارات”, “تسعة مليارات”}

‘ تحويل الرقم إلى نص

If Number < 1 Then

  Str = “صفر”

ElseIf Number < 10 Then

  Str = Units(Number)

ElseIf Number < 100 Then

  Str = Tens(Int(Number / 10)) & ” ” & Units(Mod(Number, 10))

ElseIf Number < 1000 Then

  Str = Hundreds(Int(Number / 100)) & ” ” & Tens(Int((Number Mod 100) / 10)) & ” ” & Units(Mod(Number, 10))

ElseIf Number < 1000000 Then

  Str = Thousands(Int(Number / 1000)) & ” ” & Hundreds(Int((Number Mod 1000) / 100)) & ” ” & Tens(Int((Number Mod 100) / 10)) & ” ” & Units(Mod(Number, 10))

ElseIf Number < 1000000000 Then

  Str = Millions(Int(Number / 1000000)) & ” ” & Thousands(Int((Number Mod 1000000) / 1000)) & ” ” & Hundreds(Int((Number Mod 1000) / 100)) & ” ” & Tens(Int((Number Mod 100) / 10)) & ” ” & Units(Mod(Number, 10))

ElseIf Number < 1000000000000 Then

  Str = Billions(Int(Number / 1000000000)) & ” ” & Millions(Int((Number Mod 1000000000) / 1000000)) & ” ” & Thousands(Int((Number Mod 1000000) / 1000)) & ” ” & Hundreds(Int((Number Mod 1000) / 100)) & ” ” & Tens(Int((Number Mod 100) / 10)) & ” ” & Units(Mod(Number, 10))

End If

‘ إرجاع النص

SpellNumber = Str

End Function