اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

السلام عليكم اعضاء المنتدى الكرام

لى سوال فقط هل من الممكن ان يقوم احد الاخوة بوضع مثال مبسط

لاستخدام دالة sumproduct فى الجمع

وفى الضرب

وفى العد

وفى استخدام الثلاث اشياء معن

رمضام كريم لكل اعضاء المنتدى الكرام

قام بنشر

السلام عليكم

عندي مثال (ليس مبسطا)

كان من نتاج أحد الأخوة في هذا المنتدي وهو الأخ عمودي أو amoudi

فقد كان يستخدم هذه الدالة بتمكن (للأسف لم أعد أري له أثرا لهذا الأخ منذ زمن أرجو أن يكون بخير)

لو أردت إبحث عن مشاركاته فهي تستحق الدراسة وأعتقد أنه يمثل مكسبا للمنتدي

المهم: إليك ماشرحه كما هو:

لدى خليه بها الرقم 1360 أريد أن اقوم بجمع مكونات هذا الرقم وهم : 1+ 3 +6+0 = 10

=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))

الحل هو 1+ 3 +6+0 = 10

ولكن كيف نوصل لهذا الحل يعني نفرق الأرقام كل رقم لوحده , طبعا الأمثلة القادمة بفرض انه الرقم 1360 موجود في الخلية A1

نعرف ان بإمكاننا نستخدم دالة MID لكي نستخلص اي قيمة من نص بعدد معين من موقع معين

يعني

MID(text,start_num,num_chars)

معناه استخلص من  النص الموجود في الخلية A1   ابتداء من اول حرف وبعدد 4 حروف  فالنتيجة حتكون 1360

معناه استخلص من  النص الموجود في الخلية A1   ابتداء من ثاني حرف وبعدد 3 حروف  فالنتيجة حتكون 360

معناه استخلص من  النص الموجود في الخلية A1   ابتداء من ثالث حرف وبعدد 1 حروف  فالنتيجة حتكون 6

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

=MID(A1,1,1) حتكون النتيجة 1

=MID(A1,2,1) حتكون النتيجة 3

=MID(A1,3,1) حتكون النتيجة 6

=MID(A1,4,1) حتكون النتيجة 0

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

=MID(A1,1,1)+MID(A1,2,1)+MID(A1,3,1)+MID(A1,4,1)

والنتيجة حتكون 1+ 3 +6+0 = 10

طبعا الحل هذا مش عملي مئة بالمئة لأنه ممكن تكون عندك خانات كثيرة وتغيرة الطول يعني مش دائما 4 خانات (المهم مش موضوعنا)

نجي للحل الأحسن

نلاحظ في المعادلة

=MID(A1,1,1)+MID(A1,2,1)+MID(A1,3,1)+MID(A1,4,1)

انه عبارة عن جمع معادلات متشابها ولكن يزيد في كل معادلة رقم يعني 1 في الأول وبعدين يصير 2 وبعدين يصير 3 وبعدين يصير 4 الى هو طول النص والى الدالة LEN تعطينا اياه .

يعني الموضوع عبارة عن مجموع دالة واحدة بمتغير معروف الى هو من 1 الى طول النص(1360) يعني 1و2و3و4 ولو النص كان 78 كان نجتاج 1 و 2 ولو كان الرقم 13657 حنحتاج 1و2و3و4و5

حندخل في التعقيد

انا الآن عرف اني محتاج مجموع الدالة mid لكن لازم بكذا قيمة يعني MID للحرف الأول وMID للحرف الثاني وMID للحرف الثالث ,MID للحرف الرابع

يعني MID بمصفوفة قيم {1,2,3,4} ومادام مجموع ومصفوفة فحنفكر يا في SUMPRODUCT او في SUM ARRAY

فخلينا في الأول احسن

نحن نعرف انه الدالة SUMPRODUCT تأخد بيانات مصفوفة سواء خلايا او ارقام او معادلات

يعني

=SUMPRODUCT(B1:B3)

حيعطيك مجموع القيم في B1,B2,B3

,

=SUMPRODUCT({2,3,4})

حيعطيك اجمالي 2 +3 +4 =9

=SUMPRODUCT(B1+{2,3,4})

لو B1  فيها رقم 10 مثلا فحتكون النتيجة B1+2    +    B1+3   +      B1+4

يعني 2+10    +   3 +10     +    4+10  المجموع 39

طيب انا ممكن اقول

=SUMPRODUCT(VALUE(MID(A1,{1,2,3,4},1)))

كأننا نقول

MID(A1,{1},1)+MID(A1,{2},1)+MID(A1,{3},1)+MID(A1,{4},1)

يعني 1 +3 +6 +0

للمعلومية VALUE  عشان النص يتحول لرقم ويمكن استخدام --

طيب جميل وصلنا لهذا الكود

=SUMPRODUCT(VALUE(MID(A1,{1,2,3,4},1)))

طيب هذي {1,2,3,4} ممكن اضع بدالها (ROW(1:4 رح تعطي نفس النتيجة , (ROW(1:6 تعطينا 1,2,3,4,5,6 وهكذا

طيب مادام انا عارف طول النص بأستخدام الدالة LEN فممكن اضع (ROW(1:LEN(A1 ويعطينا( ROW(1:4 بفرض طول الرقم في الخلية اربع خانات

بس الدالة ROW تأخد مرجع داخلها يعني (ROW(Referance عشان كده نستخدم الدالة INDIRECT تأخد نص وترجعه كمرجع (للمعلومية ممكن نستخدم Offset بدل Indirect )

يعني

=ROW(INDIRECT("1:"&LEN(A1)))

حتكون

=ROW(INDIRECT("1:"&4))

حتكون

=ROW(INDIRECT("1:4"))

1

حتكون

{1,2,3,4}

وتكون وصلنا للمطلوب

فالتسلسل يصبح

=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))

ال LEN حتعطينا 4لأنه طول النص 4 خانات

=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & 4)),1))

=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:4")),1))

=SUMPRODUCT(--MID(A1,ROW(1:4),1))

الROW حتعطينا مصفوفة

=SUMPRODUCT(--MID(A1,{1,2,3,4},1))

بفرض A1 قيمتها 1360

=SUMPRODUCT(--MID("1360",{1,2,3,4},1))

=SUMPRODUCT(--{"1","3","6","0"})

هنا علامة -- حتحول النص الى ارقام وممكن نستخدم الدالة VALUE بدل منها

=SUMPRODUCT({1,3,6,0})

=10

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

المعادلة ادناه على افتراض الرقم موجب

{=SUM(VALUE(MID(A1,ROW(A1:OFFSET(A1,LEN(A1)-1,0)),1)))}

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

{=SUM(VALUE(MID(A1,ROW(A1:OFFSET(A1,LEN(A1)-2,0)),1)))}

وفي النهاية لا بد من تحرير الخلية التي بها المعادلة وذلك بالضغط على F2 ثم Ctrl+Shift+Enter لتحرير المعادلة

قام بنشر

أخي أحمد حافظ

لقد وعدت بشرح هذه الدالة

و لكن لضيق الوقت لم اتمكن من تجهيز ملف الشرح

و لكني سا أحاول ان أضعه خلال اليومين القادمين ان شاء الله

===========

و اخي طارق

لقد صدقت الاخ عمود ي من المكاسب العظيمة للمنتدى لو استمر في العطاء معنا

و لكن يجب ان نلتمس له العذر في غيابه

فهو صدقاً أستاذ رائع

==========

كل عام و انتم بخير

قام بنشر

السلام علييكم

وكل عام وانتم بخير اخى الكريم طارق بارك الله فيك

واخى يحيى كان الله فى العون اخى الكريم انا اعرف المشاغل

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

قام بنشر

شرح رائع من الأستاذ عمودي

ونقل له نفس الثواب من أخي طارق

فالدال على الخير كفاعله

جزاكم الله خيرا

ونفع بكم

  • Like 1

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