ahmedhafez قام بنشر سبتمبر 12, 2009 قام بنشر سبتمبر 12, 2009 السلام عليكم اعضاء المنتدى الكرام لى سوال فقط هل من الممكن ان يقوم احد الاخوة بوضع مثال مبسط لاستخدام دالة sumproduct فى الجمع وفى الضرب وفى العد وفى استخدام الثلاث اشياء معن رمضام كريم لكل اعضاء المنتدى الكرام
طارق محمود قام بنشر سبتمبر 12, 2009 قام بنشر سبتمبر 12, 2009 السلام عليكم عندي مثال (ليس مبسطا) كان من نتاج أحد الأخوة في هذا المنتدي وهو الأخ عمودي أو 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 لتحرير المعادلة
طارق محمود قام بنشر سبتمبر 12, 2009 قام بنشر سبتمبر 12, 2009 مرفق أيضا مثال بسيط للدالة إستخدام الضرب
يحيى حسين قام بنشر سبتمبر 12, 2009 قام بنشر سبتمبر 12, 2009 أخي أحمد حافظ لقد وعدت بشرح هذه الدالة و لكن لضيق الوقت لم اتمكن من تجهيز ملف الشرح و لكني سا أحاول ان أضعه خلال اليومين القادمين ان شاء الله =========== و اخي طارق لقد صدقت الاخ عمود ي من المكاسب العظيمة للمنتدى لو استمر في العطاء معنا و لكن يجب ان نلتمس له العذر في غيابه فهو صدقاً أستاذ رائع ========== كل عام و انتم بخير
طارق محمود قام بنشر سبتمبر 12, 2009 قام بنشر سبتمبر 12, 2009 أخي يحي أوحشتني أنت وكل أعضاء المنتدي ولكن كما قلت ضيق الوقت الله المستعان
يحيى حسين قام بنشر سبتمبر 12, 2009 قام بنشر سبتمبر 12, 2009 كل عام و انت بخير اخي طارق و انت لك وحشة فمنذ فترة لم اراك تقبل الله طاعاتكم
ahmedhafez قام بنشر سبتمبر 12, 2009 الكاتب قام بنشر سبتمبر 12, 2009 السلام علييكم وكل عام وانتم بخير اخى الكريم طارق بارك الله فيك واخى يحيى كان الله فى العون اخى الكريم انا اعرف المشاغل واشكرك على المثلة اخى طارق بارك الله فيك وجعلة فى ميزان حسناتك ان شاء الله
أ / محمد صالح قام بنشر سبتمبر 12, 2009 قام بنشر سبتمبر 12, 2009 شرح رائع من الأستاذ عمودي ونقل له نفس الثواب من أخي طارق فالدال على الخير كفاعله جزاكم الله خيرا ونفع بكم 1
ahmedhafez قام بنشر سبتمبر 13, 2009 الكاتب قام بنشر سبتمبر 13, 2009 السلام عليكم فى انتظار ردك اخى الكريم يحيى ان شاء اله عندما تجد الوقت الكافى لشرح الدالة
يحيى حسين قام بنشر سبتمبر 13, 2009 قام بنشر سبتمبر 13, 2009 أخي احمد حافظ إن شاء الله قريباً دمت في حفظ الله و رعايته
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.