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

(تمت الاجابة) طلب عمل معادلة أو كود لحساب أيام الراحات


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

المطلوب:

اريد عمل معادلة أو كود لحساب أيام الراحات (أو الاضافى) لكل عامل وذلك فى عمود Extra فى الشيت Data

وأيام الراحات هى أيام الجمعة والفترة تكون مثلا من 2011/12/19 إلى 2012/1/18

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

انظر المرفق

Extra_Req.rar

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

شكرا جزيلا أخى طارق

ولكن المعادلة بها خطأ

أنا غيرت التاريخ إلى " من 19/11/2011 إلى 18/12/2011 "

وعندى الشهر 30 والجمعه 4

وزودت أيام عامل ل 26 فأعطته المعادلة 5 راحات

والمفروض أنها تعطيه 4 فقط لأن أيام الجمعه هى 4 فى ذلك الشهر

حيث أنه عند زيادة أيام العامل عن 23 يعطى 4 أيام راحة فى هذه الحالة

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

لا أخي العزيز

طبعا أنت تعرف أن التغيير لايكون في المعادلات ولكن في الخلية الرئيسية H1

والتي سوف تغير تبعا في المعادلات

أنا جربت نفس الفرض

التاريخ إلى " من 19/11/2011 إلى 18/12/2011 "

وأنتجت المعادلات الشهر 30 والجمعه 4

راجع مود الحسابات لديك (غالبا ليس أوتوماتيك)

لتتغيره

File

Options

Formulas

Calculation Options

أول خيار

Automatic

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

ولكن أخى حضرتك لم تجرب أن تزيد أيام حضور أحد العاملين إلى 26 مثلا

وجرب النتيجة ستلاحظ أنه سيعطيه 5 أيام راحة ، كيف ذلك وايام الجمعه 4 فقط؟؟؟

وشكرا

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

لا لا لا لا لا لا

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

ولكن حضرتك ما فهمتش المطلوب جيدا

عندى لو أيام الجمعه 4 ، فتكون الراحات أكثر حاجة 4

أما لو أيام الجمعه 5 ، فتكون الراحات أكثر حاجة 5

هل وصل المطلوب

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

السلام عليكم

صحيح كلامك ، فهمت

ممكن تغير المعادلة في الخلية AI5

إلي

=MIN(IF($AH5<=5,0,IF($AH5<=13,1,IF($AH5<=20,2,IF($AH5<=23,3,IF($AH5=24,4,IF($AH5>=26,5,IF(AND($AH5=25,$AN$3=5,$AR$4=30),5,4))))))),$AN$3)

ثم تنسخها كمعادلة لباقي الخلايا

أو

تفضل المرفق

Extra_Req_TAREQ2.rar

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

الحمد لله

وصلنا إلى الحل

حل 10 على 10

شكرا لمجهودك معى أخى طارق

أرجو أن ترد على موضوعى الآخر بخصوص :

طلب انشاء يوزر فورم Attendance Roll

http://www.officena.net/ib/index.php?showtopic=39614&st=20

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

السلام عليكم

1- فكرة استعمال دالة min مع if

في حالة أن يكون بالشهر 4 جمعات مثلا والمعادلة انتجت 5 ينتج من MIN الأقل منهما

مثلا المعادلة =

MIN(A,B)

تنتج الأقل من A ، B

2- فكرة استخدام معادلة weekday فى هذا الموضوع

الدالة weekday تعطيها تاريخ فتأتي بترتيب اليوم بين أيام الأسبوع في هذا التاريخ

ولكنها تبدأ الأسبوع بيوم الأحد ، لذلك فيوم الأحد ينتج (1) ويوم الأثنين ينتج (2) ، ... ويوم السبت ينتج (6)

الرابط بين المعادلات جميعا في الخلايا (AO3:AQ3) هو أنك تحسب كم لأسبوع صحيح بين التاريخين

وبالتالي إذا كان عندك مثلا بين التاريخين 26 يوم فهذه 3 أسابيع كاملة يعني 3 جمعات

ويتبقي بعد القسمة علي 7 (26-21) خمسة أيام

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

بمعلومية ان الثلاثاء هو اليوم رقم 3 في الأسبوع وبإضافة 5 ينتج 8 (اكبر من 7) إذن نضيف يوم جمعة آخر

أما لو في نفس المثال بدأنا من يوم الأحد (رقم 1 في الأسبوع ) وبإضافة 5 ينتج 6 (اصغر من 7) إذن لانضيف يوم جمعة

ولو في نفس المثال بدأنا من يوم السبت (رقم 6 في الأسبوع في هذه الالة فقط نطرح 7 لأنه بدأ قبل يوم بداية الأسبوع فيكون اليوم رقمه (-1)) وبإضافة 5 ينتج 4 (اصغر من 7) إذن لانضيف يوم جمعة

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

شكرا أخى الكريم طارق

ولكن ألا تجد أخى أن هذه العمليات الحسابية صعبة شوية وصعب فهمها بالنسبة لأمثالى

كيف أصل أنا إلى هذه العبقرية؟؟؟؟

أنا توصلت لمعادلة (من أحد الأخوة فى المنتدى)الأخ " يحيى حسين " تقوم بحساب عدد أيام الجمعة بيت تاريخين وتريحنا من كل هذه المعادلات


=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(G11&":"&H11)))=6))

أيه رأيك أخى الكريم

ملحوظة أخى:

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

على العموم أخى :

شكرا على مجهودك الكبير هذا ، وأكثر الله من أمثالك وادخلك الله فسيح جناته

لمساعدتك لأمثالى من المحتاجين وأبناء السبيل هههههههه

السلام عليكم

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information