اذهب الي المحتوي
أوفيسنا

عمل دالة حساب ابجدية


الردود الموصى بها

السلام عليكم و رحمة الله و بركاته

كيف حال الاخوة الكرام 

أحب القيام ببعض الابحاث في القرآن العظيم باستخدام حساب ابجد هوز و توجد برامج تقوم بالحسابات بطرق متنوعة  لكن الاقي صعوبة بالنسخ و و القيام بنقل الحسابات فأريد من الاخوة الكرام كتابة دالة تقوم بهذا الحساب 

اي  تقوم بتحديد الاحرف الموجودة بالنص في الخلية  و مقابلة كل حرف بقيمته و جمع القيم  اي ناتج الدالة هو مجموع القيم العددية للاحرف و هذه القيم محددة بالملف المرفق 

و لدي  سؤال متعلق بالدالات هل توجد دالة تعطي العوامل الاولية لعدد ما ؟ مثلا العدد 21 عوامله هي 7 و 3 و شكرا لكم و بالمرفقات ملف القيم و ايضا برنامج جميل للاحصاءات و الحسابات في القرآن 

 

برنامج الدقائق تكشف الحقائق في حساب الجمل.rar

abjad.zip

رابط هذا التعليق
شارك

بالنسبة لدالة الاعداد الاولية لرقم ما وجدت بالبحث هذا الكود لدالة و احببت مشاركتكم 

Function FactorNumber(lNumber As Long)
Dim x As Long
Dim y As Long
Dim sList As String
y = 0
For x = 1 To lNumber
If Int(lNumber / x) = lNumber / x Then
y = y + 1
If x = 1 Then
sList = x
Else
sList = sList & "," & x
End If
End If
Next
FactorNumber = sList
End Function

هذه الدالة مفيدة جدا  لكن بها عيب انها تظهر جميع الاعداد التي يقبل الرقم الاساسي القسمه عليها بينما المطلوب هو الاعداد الاولية فقط  و مثالها

360 اعطاني الناتج التالي :

1,2,3,4,5,6,8,9,10,12,15,18,20,24,30,36,40,45,60,72,90,120,180,360

بينما المطلوب ان يعطي فقط  2*2*2*3*3*5  و ايضا ممكن ان نزيل الرقم 1 من النواتج ؟

تم تعديل بواسطه أبو لجين
رابط هذا التعليق
شارك

أخي الكريم أبو لجين

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

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

تقبل تحياتي

رابط هذا التعليق
شارك

نعم اخي ياسر أبو البراء .. هو الامر واضح لكن جديد على أغلب الاخوة و الشرح هو كما يلي :

بالاعتماد على الجدول بالملف المرفق السابق  يتم اعطاء قيمة عددية لكل حرف   و يتم جمع القيم للحروف المشكلة للكلمة  فالخطوات هي :

1-  اسناد كل حرف للقيمة الموافقة له 

2 -  تفكيك السلسلة النصية الى حروف ( طبعا الحروف هي عربية حصرا ) 

3- جمع قيم الاحرف المكونة للسلسلة النصية  

و هذه امثلة للتوضيح 

لفظ الجلالة ( الله )  هو مكون من الحروف ا ل ل ه     ,  ا= 1 و ل = 30 و هـ = 5  فالمجموع هو :  1+ 30 + 30 + 5 = 66

فالدالة يجب ان تعطيني الرقم 66 و هو القيمة العددية للفظ الجلالة 

اسم أحمد  حروفه  أ ح م د  و القيم العددية المقابلة لها   1 و 8 و 40 و 4  و مجموعهم 53 

جملة بسم الله الرحمن الرحيم  بنفس الطريقة يجب ان تكون قيمتها 786

بداية الدالة يجب اسناد كل حرف لقيمته الموافقة و من ثم  كل نرى الحروف الموجودة بالخلية و يتم حساب القيم الموافقة لها 

أرجو ان يكون الشرح واضح و اي سؤال تفضل أخي ياسر و جزاك الله خيرا

 

رابط هذا التعليق
شارك

أخي الفاضل أبو لجين

إليك الدالة التالية وإن شاء الله تفي بالغرض

بالنسبة لأي طلب جديد لا يخص هذا الطلب يرجى طرح موضوع مستقل

Function CalString(sInp As String) As Long
    Static bInit As Boolean
    Dim asMap() As String
    Dim asLtr() As String
    Dim I As Long
    Static aiVal(0 To 255) As Long

    If Not bInit Then
        asMap = Split("1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100 200 300 400 500 600 700 800 900 1000")
        asLtr = Split("ء أ إ آ ا ئ ب ج د ه و ز ح ط ي ك ل م ن س ع ف ص ق ر ش ت ـة ث خ ذ ض ظ غ")
        For I = 0 To UBound(asMap)
            aiVal(Asc(asLtr(I))) = asMap(I)
        Next I
        bInit = True
    End If

    For I = 1 To Len(sInp)
        CalString = CalString + aiVal(Asc(Mid(sInp, I, 1)))
    Next I
End Function

وإليك أيضاً ملف مرفق فيه تطبيق لاستخدام الدالة

تقبل تحياتي

ABJAD Calculator UDF Function YasserKhalil.rar

تم تعديل بواسطه ياسر خليل أبو البراء
  • Like 4
رابط هذا التعليق
شارك

                                            السلام عليكم

          كنت اتمنى  ان استطع ان اضغط على اعجبنى  :clapping: مئات المرات

                      بارك الله لنا فيك استاذنا ابو البراء

                      تقبل تحياتى وتقديرى لشخصكم الكريم

  • Like 1
رابط هذا التعليق
شارك

وعليكم السلام أخي الغالي خالد الرشيدي

لكم يسعدني ويشرفني مرورك العطر بالموضوع ومشكور على كلماتك الرقيقة

تقبل تحياتي

  • Like 3
رابط هذا التعليق
شارك

بارك الله فيك أخي المتميز أحمدعبد الناصر

يعجبني فيك البساطة في تقديم الحلول (السهل الممتنع)

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

عموماً في كلٍ خير إن شاء الله

المهم أبو لجين يطرح الموضوع ويختفي !!!!!!!!!!

طالما أنك استعنت بجدول يمكن استخدام معادلة الصفيف التالية

ضع المعادلة في  الخلية H4 واسحب المعادلة وستحقق نفس النتائج

=SUM(IFERROR(IF(CODE(MID(F4,TRANSPOSE(ROW(INDIRECT("1:100"))), 1))=CODE($A$1:$A$100),$B$1:$B$100),0))

لا تنسى أن تضغط Ctrl + Shft + Enter

تم تعديل بواسطه ياسر خليل أبو البراء
  • Like 3
رابط هذا التعليق
شارك

ما شاء الله أشكركم كثيرا اخواني الكرام 

لم اختفي اخي ياسر لكن صباحا بالعمل ^_^

بالنسبة للدالة هي ممتازة لكن واجهت مشكلة و اظن هي متمثلة باختلاف الانظمة و الخطوط حيث جربت   لكن تظهر النتيجة صفرا   و ذهبت لمحرر الفيجوال رايت ان الرموز التي وضعتها 

 asLtr = Split("ء أ إ آ ا ئ ب ج د ه و ز ح ط ي ك ل م ن س ع ف ص ق ر ش ت ـة ث خ ذ ض ظ غ

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

لذا هنا قد نضطر للاستعانة بالجدول مثلما فعل الاخ احمد عبد الناصر او ان نستبدل الاحرف برموزها الاساسية اي رمز الحرف كما يتلقاه المعالج من لوحة المفاتيح و هي صعبة نوعا ما 

لذا اشكركم جميعا و الحلين ممتازين 

رابط هذا التعليق
شارك

ما هو نظام التشغيل الذي تعمل عليه

لوكان ويندوز 7 يمكنك من خلال لوحة التحكم Control Panel النقر على Region and language  ثم التبويب Administrative ثم انقر الزر المكتوب عليه Change System Locale واختار من القائمة أي دولة عربية ثم موافق ثم أعد تشغيل الجهاز

  • Like 1
رابط هذا التعليق
شارك

  • 4 years later...

)ما شاء الله 

حلول رائعة 

ولإثراء الموضوع هذه صفحة من برمجتي للوصول إلى العوامل والمضاعفات وغيرها 

https://officena.net/team/mas/maths4/

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

خالص دعواتي بالتوفيق قبل التفوق 

رابط هذا التعليق
شارك

هذه الطريقة قديمة عند العرب تسمي (حساب الجمل) 

وهي اانهم اتفقوا علي ان يعطوا كل حرف من احرف الهجاء رقما خاصا به

فيكون اصغر رقم هو الواحد (حرف الف) 

 

واكبر رقم هو 1000(حرف غين) 

ا= 1

ب= 2

ج=3

د=4

ه = 5

و=6

ز=7

ح=8

ط=9

ي=10

ك=20

ل=30

الخ…

لاحظ الصورة

Screenshot_٢٠٢٠٠٥١٨-٢٢٣٥٣٠~2.png

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information