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

the formula is too long


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

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

المطلوب 
1:
اذا كان الزوج A2,A3 يساوي G2,G3
يكون الناتج A4
بشرط ان لا يكون احد الازواج B2,B3 ; C2,C3 ; D2,D3
مساويا للزوج G2,G3
وفي حال كان الزوج B2,B3 يساوي G2,G3
يكون الناتج ايضا A4 و لكن بشرط ان يكون A4=B4
و هكذا .. لكل من C , D
2 :
في حال كان الزوج B2,B3 يساوي G2,G3 وكان 
 A4 لا يساوي B4 عندها نناقش الحالتين بنفس الطريقة
مرة مع i4 = A4 و اخرى مع H4 = B4 كلا في خلية منفصلة
علما ان القيمة هي اما (1 او 2)
3:
في حال فشل الشرط الاول اي كان الزوج A2,A3 لا يساوي G2,G3
عندها ننظر الى الزوج التالي B2,B3 و نكرر ذات العملية
( في حال كان B2 = G2 و B3 = G3 الناتج B4 بشرط .... )

اختصرت العملية حتى الخلية D لسهولة الشرح و لكن طالما هناك قيمة في احد الخلايا E,F,G,H,I ....  يتم مناقشتها 

New Microsoft Office Excel Worksheet.rar

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

السلام عليكم

أخي العزيز

بغض النظر عن الموضوع ومدي الاستفادة منه

 

ولكني نصحتك باستخدام النطاقات المسماة لتقليل حجم المعادلة وبصراحة لم اكن أتخيل ان المعادلة قد تصل إلي 3,110 حرف في طولها كما بالمرفق الذي رفعته أنت

 

علي أية حال

وبدون الدخول بالتفاصيل ، قمت بتسمية المجالات التالية

A ="Two Answear"
B ="Next"
C_1 =AND(ورقة2!$A14=ورقة2!$G14,ورقة2!$A15=ورقة2!$G15)
C_2 =AND(ورقة2!$B15>0,ورقة2!$B16>0)
C_3 =AND((ورقة2!$A16=ورقة2!$B16),(ورقة2!$A17=ورقة2!$B17))
C_4 =ورقة2!$A19=ورقة2!$B19
C_5 =AND(ورقة2!$C18>0,ورقة2!$C19>0)
C_6 =AND((ورقة2!$A19=ورقة2!$C19),(ورقة2!$A20=ورقة2!$C20))
C_7 =AND(ورقة2!$E20>0,ورقة2!$E21>0)
C_8 =AND((ورقة2!$A21=ورقة2!$D21),(ورقة2!$A22=ورقة2!$D22))
C_9 =AND((ورقة2!$A22=ورقة2!$E22),(ورقة2!$A23=ورقة2!$E23))
D_1 =ورقة2!$A25=ورقة2!$E25
D_2 =AND(ورقة2!$D24>0,ورقة2!$D25>0)
D_3 =ورقة2!$A27=ورقة2!$C27
D_4 =AND((ورقة2!$A26=ورقة2!$C26),(ورقة2!$A27=ورقة2!$C27))
D_5 =AND(ورقة2!$C27>0,ورقة2!$C28>0)
D_7 =IF(D_1,ورقة2!$A30,A)
D_8 =IF(C_9,D_7,B)
D_9 =IF(C_7,D_8,ورقة2!$A32)
E_1 =IF(C_8,N_1,D_9)
E_2 =IF(D_2,E_1,D_9)
E_3 =IF(D_3,E_2,A)
E_4 =IF(D_4,E_3,E_2)
E_5 =IF(D_5,E_4,E_2)
N_1 =IF(C_4,D_9,A)
X ="New Start For B"

مما جعل المعادلة في الخلية G4 تقل من الشكل الأول

=IF(AND(A2=G2,A3=G3),IF(AND(B2>0,B3>0),IF(AND((A2=B2),(A3=B3)),IF(A4=B4,IF(AND(C2>0,C3>0),IF(AND((A2=C2),(A3=C3)),IF(A4=C4,IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),"Two Answear"),IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4))),IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4))),"Two Answear"),IF(AND(C2>0,C3>0),IF(AND((A2=C2),(A3=C3)),IF(A4=C4,IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),"Two Answear"),IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4))),IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)))),IF(AND(C2>0,C3>0),IF(AND((A2=C2),(A3=C3)),IF(A4=C4,IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),"Two Answear"),IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4))),IF(AND(D2>0,D3>0),IF(AND((A2=D2),(A3=D3)),IF(A4=D4,IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4),"Two Answear"),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)),IF(AND(E2>0,E3>0),IF(AND((A2=E2),(A3=E3)),IF(A4=E4,A4,"Two Answear"),"Next"),A4)))),"New Start For B")

إلي الشكل التالي

=IF(C_1,IF(C_2,IF(C_3,IF(C_4,IF(C_5,IF(C_6,E_3,E_2),E_2),A),E_5),E_5),X)

وقد تم تطبيقها بالورقة الثانية

مما سيحفزك لفهم هذه الطريقة والتي تجعل حتي المراجعة علي المعادلة أسهل

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

New Microsoft Office Excel Worksheet_NEW.rar

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

الباشمهندس طارق ..

أنا لم أفهم ديناميكية المعادلة في الأساس .. أعتقد أنه لو فهمناها يمكن عمل دالة UDF تسهل عليه العمل بشكل كبير

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

 

أنا لم أفهم ديناميكية المعادلة في الأساس .. أعتقد أنه لو فهمناها يمكن عمل دالة UDF تسهل عليه العمل بشكل كبير

 

 

 

بصراحة الأخ شرح طلبه اكثر من مرة
ولأن الطلب غير تقليدي ، فلم أنساه
 
 
بداية 
=IF(C_1,IF(C_2,IF(C_3,IF(C_4,IF(C_5,IF(C_6,E_3,E_2),E_2),A),E_5),E_5),X)
يمكن فهمها كالتالي
=IF(شرط_1,IF(شرط_2,IF(شرط_3,IF(شرط_4,IF(شرط_5,IF(شرط_6,E_3,E_2),E_2),A),E_5),E_5),X)

الموضوع أن الأرقام بالعمودين A,B تؤثر بطريقة شائكة في النتيجة التي بالعمود G وذلك بعد الصف الثاني حيث يفترض أن الصفان الأولييان مجرد بداية

وبالتفصيل يمكنك مراجعة مواضيعه فقد شرح الطلب أكثر من مرة (هو أو غيره لاأذكر)

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

سؤالي هل يمكن أن ينتهي أمر مثل هذا الطلب بعمل دالة معرفة .؟؟؟ أنا لو قدرت أفهم كويس ممكن أحاول أساعده ببناء دالة بس حاسس الموضوع غير مفهوم بالنسبة لي على الإطلاق .. طبعا قدراتي العقلية لا تضاهي أبدا قدراتك العقلية يا باشمهندس طارق ربنا يخليك لينا ولا يحرمنا من وجودك يا أحلى باشمهندس

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

السلام عليكم 
جزاكم الله خيرا اخواني الكرام و بارك الله بكم
استاذي الكريم المهندس طارق عند اتباعي ما تفضلت به من تسمية النطاقات اصبحت الطريقة اسهل بكثير
و لكن واجهتني مشكلة "Two Answear" حيث و بعد ظهور هذه الدالة يجب مناقشة الامرمن جديد بخليتين جديدتين و كل واحدة تحتوي على رقم 1 او 2
و طبعا في حال قمنا بمعالجة الحالة الاولى (رقم 1) في خلية جديدة , هنا اصبح لدينا ايضا امكانية ل "Two Answear" جديدة مع كل حل جديد
هل هذه تقتصر على ملف Macro ؟

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

 

اخواني الاكارم

حاولت بعدة طرق و لكن على مايبدو طلبي يتحقق مع ملف Vpa

وللاسف ليس لدي خبرة كافية

مرفق ملف اخواني الكرام ,, و هذا توضيح لألية العمل 

المطلوب 
1:
اذا كان الزوج A2,A3 يساوي G2,G3
يكون الناتج A4
بشرط ان لا يكون احد الازواج B2,B3 ; C2,C3 ; D2,D3
مساويا للزوج G2,G3
وفي حال كان الزوج B2,B3 يساوي G2,G3
يكون الناتج ايضا A4 و لكن بشرط ان يكون A4=B4
و هكذا .. لكل من C , D
2 :
في حال كان الزوج B2,B3 يساوي G2,G3 وكان 
 A4 لا يساوي B4 عندها نناقش الحالتين بنفس الطريقة
مرة مع i4 = A4 و اخرى مع H4 = B4 كلا في خلية منفصلة

علما ان القيمة هي اما (1 او 2)

3:
في حال فشل الشرط الاول اي كان الزوج A2,A3 لا يساوي G2,G3
عندها ننظر الى الزوج التالي B2,B3 و نكرر ذات العملية
( في حال كان B2 = G2 و B3 = G3 الناتج B4 بشرط .... )

اختصرت العملية حتى الخلية D لسهولة الشرح و لكن طالما هناك قيمة في احد الخلايا E,F,G,H,I ....  يتم مناقشتها 

 

اخواني الاعزاء 

الحل يتطلب كود VPA , ان امكن المساعدة جزاكم الله خيرا 

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

أخي الحبيب عبد المنعم حقيقة أنا لم أفهم الشروط التي تريدها ..

ممكن نبدأ واحدة واحدة .. يعني مثلا قسم الشروط جزء جزء ..بمعنى آخر نحل المشكلة بالتقسيم

ويا ريت يا ريت شكل النتائج المطلوبة ..معلش ارفق ملف تاني وارفق شكل النتائج اللي إنت عايزها يمكن نحاول نساعدك :smile:

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

أخي الحبيب عبد المنعم حقيقة أنا لم أفهم الشروط التي تريدها ..

ممكن نبدأ واحدة واحدة .. يعني مثلا قسم الشروط جزء جزء ..بمعنى آخر نحل المشكلة بالتقسيم

ويا ريت يا ريت شكل النتائج المطلوبة ..معلش ارفق ملف تاني وارفق شكل النتائج اللي إنت عايزها يمكن نحاول نساعدك :smile:

شكرا لك اخي العزيز على المداخلة الطيبة

تفضل الملف  :smile:

1.rar

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

لا أخفي عليك .. الفكرة صعبة جدا ..

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

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

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

أول محاولة . هشتغل بالأكواد حسب ما شرحت وواحدة واحدة ممكن نطور الكود بحيث يتسع لكل الشروط بإذن الله

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

Test ConditionsA.rar

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

أخي عبد المنعم لم أفهم الشرط الجديد يا ريت توضح الشرط هنا مش في الملف ، حتى يتضح الكلام لأن صندوق النص مش بيظبط الكلام

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

اخي العزيز .. في خانة البيانات دائما لدينا احدى القيمتين 1 أو 2
في حال كان لدينا في خانة النتائج F كلمة Two Answer
عندها نستبدلها باحدى القيمتين الاساسيتين ,, اما 1 او 2

ليصبح لدينا في الكود قيمة عددية و يتمم الكود عمله
فنفرض وجود G3 = 1 ( و عندها نوجد قيمة G4 وفقا لقيم F2 + G3 )
و نفرض وجود H3 = 2 ( و عندها نوجد قيمة H4 وفقا لقيم F2 + H3 )

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

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