ابن سيناء قام بنشر مارس 5, 2009 قام بنشر مارس 5, 2009 السلام عليكم جميعا أساتذتى وزملائى كيف يمكننى جمع مكونات خليه واحده ؟ مثلا لدى خليه بها الرقم 1360 أريد أن اقوم بجمع مكونات هذا الرقم وهم : 1+ 3 +6+0 = 10 فهل هناك سبيل لتحقيق ذلك اشكر لكم تعاونكم المستمر لى والسلام عليكم ورحمة الله
amoudi قام بنشر مارس 7, 2009 قام بنشر مارس 7, 2009 السلام عليكم اخي الكريم بفرض انه الرقم في خلية A1 =SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)) تحياتي 1
طارق محمود قام بنشر مارس 8, 2009 قام بنشر مارس 8, 2009 السلام عليكم أخي عامودي ماشاء الله مازلت تبهرني زادك الله من علمه
Best قام بنشر مارس 8, 2009 قام بنشر مارس 8, 2009 استاذنا عامودي يا ريت لو تشرحلنا طريقة عمل الدالة خطوة خطوة عشان نفهمها
amoudi قام بنشر مارس 10, 2009 قام بنشر مارس 10, 2009 (معدل) السلام عليكم بناء على طلب الأخ Best سوف اشرح هذا الحل لأنه يوجد اكثر من حل . لدى خليه بها الرقم 1360 أريد أن اقوم بجمع مكونات هذا الرقم وهم : 1+ 3 +6+0 = 10 الحل هو 1+ 3 +6+0 = 10 ولكن كيف نوصل لهذا الحل يعني نفرق الأرقام كل رقم لوحده , طبعا الأمثلة القادمة بفرض انه الرقم 1360 موجود في الخلية A1 نعرف ان بإمكاننا نستخدم دالة MID لكي نستخلص اي قيمة من نص بعدد معين من موقع معين يعني MID(text,start_num,num_chars) =MID(A1,1,4) معناه استخلص من النص الموجود في الخلية A1 ابتداء من اول حرف وبعدد 4 حروف فالنتيجة حتكون 1360 =MID(A1,2,3) معناه استخلص من النص الموجود في الخلية A1 ابتداء من ثاني حرف وبعدد 3 حروف فالنتيجة حتكون 360 =MID(A1,3,1) معناه استخلص من النص الموجود في الخلية 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")) =ROW(1:4) حتكون {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 أتمنى اكون وفقت في الشرح لأنه محرر النصوص حق المنتدى عقدني بصراحة تحياتي تم تعديل مارس 10, 2009 بواسطه amoudi 1
Best قام بنشر مارس 10, 2009 قام بنشر مارس 10, 2009 ربنا يبارك فيك يا اخ عامودي مجهود و الله تشكر عليه جعله الله في ميزان حسناتك
نزار سليمان عيد قام بنشر مارس 11, 2009 قام بنشر مارس 11, 2009 السلام عليكم بالاضافة لحل اخي عمودي هنا طريقة باستخدام الصفيف وهي تتعامل مع الرقم السالب والموجب المعادلة ادناه على افتراض الرقم موجب {=SUM(VALUE(MID(A10,ROW(A1:OFFSET(A1,LEN(A10)-1,0)),1)))} والمعادلة ادناه لو الرقم سالب تتجاهل الاشارة ويجمع الرقم {=SUM(VALUE(MID(A11,ROW(A2:OFFSET(A2,LEN(A11)-2,0)),1)))} وفي النهاية لا بد من تحرير الخلية التي بها المعادلة وذلك بالضغط على F2 ثم Ctrl+Shift+Enter لتحرير المعادلة مع الشكر ابو خالد
amoudi قام بنشر مارس 11, 2009 قام بنشر مارس 11, 2009 السلام عليكم شكرا أخي نزار على الأضافة بس ياريت تذكر المصدر http://support.microsoft.com/kb/214053 عشان الناس تستفيد من الشرح في المصدر او انك تأخذها من المصدر وتضعها في مثال وترفقه مع الشرح . وللمعلومية هذا الكود {=SUM(VALUE(MID(A10,ROW(A1:OFFSET(A1,LEN(A10)-1,0)),1)))} هو نفسه الكود =SUMPRODUCT(VALUE(MID(A10,ROW(A1:OFFSET(A1,LEN(A10)-1,0)),1))) هو نفسه الكود {=SUM(VALUE(MID(A10,ROW(INDIRECT("1:"&LEN(A10))),1)))} هو في النهاية نفس الحل وجميل يكون في كذا طريقة للحل بس انا اشوف مهم عند وضع حل يكون مرفق بالشرح . وملاحظة انت وضعت معادلتين واحدة للموجب واواحدة للسالب (مثل ما هو موجود بموقع ميكروسوفت) بس الأفضل اعتقد , ممكن تستخدم دالةABS وتصير معادلة وحدة تنفع للموجب والسالب(يعني لايغرك ميكروسوفت ) {=SUM(VALUE(MID(ABS(A10),ROW(A1:OFFSET(A1,LEN(ABS(A10))-1,0)),1)))} تحياتي
أبو عادل قام بنشر مارس 12, 2009 قام بنشر مارس 12, 2009 جزاك الله كل خير اخي الكريم والشكر موصول للأخ نزاز سليمان على الأكواد الجميلة
Best قام بنشر مارس 14, 2009 قام بنشر مارس 14, 2009 طيب هذي {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 ) معلش سؤال ايه هو المرجع و كيف الدالة indirect بتاخذ نص و بترجعه كمرجع , النقطة دي خربطتني
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.