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

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

قام بنشر

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

 

الى السادة اعضاء منتدانا الكرام اليكم اليوم شرح محاكاة الدالة DateDif  با المعادلات و الاكواد.

 

بالنسبة المحاكلة بالاكواد عملت دالة بسيطة اسميتها DateGap

 

في الصورة ادناه تم الاعتماد على الدلة DateDif  كمعيار لقياس مدى دقة المعادلات و الدلة DateGap

 

3qI9Bo.jpg

 

 

اولا المعادلات و الصيغ

 

على افتراض ان التاريخ الاول هو A1  و التاريخ الثاني A2 فأن:

 

1 - لايجاد الفرق بين التاريخين باليوم و الشهر و السنين معا

 

الايام

=IF(DAY($A$2)>=DAY($A$1),DAY($A$2)-DAY($A$1),DAY($A$2)+DAY(EOMONTH($A$2,-1))-DAY($A$1))

الاشهر

=MOD(IF(DAY($A$2)>=DAY($A$1),(YEAR($A$2)-YEAR($A$1))*12 + MONTH($A$2)-MONTH($A$1),(YEAR($A$2)-YEAR($A$1))*12 + MONTH($A$2)-MONTH($A$1)-1),12)

السنوات

=TRUNC(IF(DAY($A$2)>=DAY($A$1),(YEAR($A$2)-YEAR($A$1))*12 + MONTH($A$2)-MONTH($A$1),(YEAR($A$2)-YEAR($A$1))*12 + MONTH($A$2)-MONTH($A$1)-1)/12)

2 - ايجاد الفرق الكلي بالايام و الاشهر و السنوات

 

الفرق الكلي بالأيام

=A2-A1

الفرق الكلي بالأشهر

=IF(DAY($A$2)>=DAY($A$1),(YEAR($A$2)-YEAR($A$1))*12 + MONTH($A$2)-MONTH($A$1),(YEAR($A$2)-YEAR($A$1))*12 + MONTH($A$2)-MONTH($A$1)-1)

الفرق الكلي بالسنوات

=TRUNC(IF(DAY($A$2)>=DAY($A$1),(YEAR($A$2)-YEAR($A$1))*12 + MONTH($A$2)-MONTH($A$1),(YEAR($A$2)-YEAR($A$1))*12 + MONTH($A$2)-MONTH($A$1)-1)/12)

ثانيا بالكود - الدلة DateGap

 

1 - لايجاد الفرق بين التاريخين باليوم و الشهر و السنين معا

 

 

الايام

=dategap($A$1,$A$2,"md")

الاشهر

=dategap($A$1,$A$2,"ym")

السنوات

=dategap($A$1,$A$2,"y")

2 - ايجاد الفرق الكلي بالايام و الاشهر و السنوات

 

الفرق الكلي بالأيام

=dategap($A$1,$A$2,"d")

الفرق الكلي بالأشهر

=dategap($A$1,$A$2,"m")

الفرق الكلي بالسنوات

=dategap($A$1,$A$2,"y")

الملاحظة

=====

 

الدلة DateGap  تولد اخطا:

 

1 - خطأ التاريخ الاول اكبر من التاريخ الثاني 

DATEGAP_WRONG_DATE_ORDER

2 - خطأ معامل الدالة .. (المعمل يجب ان يكن احدى القيم التالية: y m d md ym) 

DATEGAP_WRONG_OPERATOR

يمكنك تحميل الدلة و المثال من الملف المرفق

 

 

اسال الله تعالى ان يتقبل منى ومنكم صالح الاعمال

DateGap DateDif الفروقات بين التواريخ.zip

  • Like 2
  • Thanks 1
قام بنشر

بارك الله فيك أخي الغالي أبو تراب

وجزيت خيراً على الروائع التي تقدمها كل يوم

صراحة أعمال في منتهى الجمال والروعة ..

اسمح لي أن أطرح سؤالاً ..ما الداعي لاستحداث الدالة DateGap مع أنها نفس وظيفة الدالة DateDif ؟؟ ونفس النتائج واحدة ونفس الهيكلة في الاستخدام واحدة ؟؟ سؤال محيرني

قام بنشر

 

بارك الله فيك أخي الغالي أبو تراب

وجزيت خيراً على الروائع التي تقدمها كل يوم

صراحة أعمال في منتهى الجمال والروعة ..

اسمح لي أن أطرح سؤالاً ..ما الداعي لاستحداث الدالة DateGap مع أنها نفس وظيفة الدالة DateDif ؟؟ ونفس النتائج واحدة ونفس الهيكلة في الاستخدام واحدة ؟؟ سؤال محيرني

 

 

هلا و غلا بالاخ العزيز ياسر ... جزاك الله خيرا على كلماتك الطيبة

 

اولا و على حسب علمي ان الدالة DateDif تعمل بشكل جيد في جميع اصدارات الاكسل و ان كان هناك مشاكل في Excel 2007 SP2 (ماعندي الاصدار لهذا ما اقدر أأكد) الا ان الدالة غير موثقة و لا تضهر ك Tipعند كتابتها في الخلية.

 

ثانيا ال VBA لديها الدالة DateDIFF الا انها ليست بأمكانيات الدالة DateDif ... ولهذا اعتقد الدالة DateGap ممكن تكن بديل عن الدالة DateDIFF  عند استخدامها مع VBA.

 

تحياتي

 

 

تحياتي 

  • Like 1
قام بنشر

يامرحبا باخينا bedonada 

 

هل تستخدمون تقويم ام القرى ام التقويم الهجري العربي ... هناك فروقات بين التقويمين

 

مثلا بتاريخ اليوم 3 بناير 2015 نجد فرق يوم (وهذا ليس ثابتا)

 

8gtHh9.jpg

  • Like 1
قام بنشر

يامرحبا باخينا bedonada 

 

هل تستخدمون تقويم ام القرى ام التقويم الهجري العربي ... هناك فروقات بين التقويمين

 

مثلا بتاريخ اليوم 3 بناير 2015 نجد فرق يوم (وهذا ليس ثابتا)

 

8gtHh9.jpg

تقويم ام القرى ونجد الاكسل يعتمد في طرح التواريخ على اساس الميلادي وعند احتساب مكافاة نهاية الخدمة عند الاعتماد على المعادلة نجد انها تتجاهل بعض الايام (الفرق بين الميلادي والهجري)

وشكراً جزيلا لاهتمام حضرتك

قام بنشر

تقويم ام القرى غير مدعوم بشكل المطلوب و حتى لو استخدمت التقويم الهجري تبع الـ VBA  سيعطي فروقات قد تصل لـ 3 ايام

 

ما استطيع فعله لك هو محاولة الاستفاذة من خلية من خلاياء الاكسل في معرفة القيم الصحيحة لتواريخ تقويم ام القرى و تجد في الملف المرفق مثال.

 

لتحقيق ذلك عملت لك دالة على السريع تحسب لك الفروقات بتقويم ام القرى مع الاخذ بالاعتبار التالي:

 

1 - لا يمكن استخدام الدالة في اي من خلاياء الاكسل و لكن بالطبع يمكنك استخدامها في كود ال VBA

2 - الدالة تحسب الفرق بالايام (md) و الاشهر (ym) و السنوات (y) و لكن لن تعطي الفرق الكلي بالايام (d) و الفرق الكلي بالاشهر (m).. لم اكتب الكود بعد لهما.

3 - المعيار الذي استخدمته لتقويم مدى صحة الدالة هو الحساب اليدوي ولهذا ارجوا من كل من استخدمها ان يخبرنا اذا كان هناك خطأ. 

 

بالتوفيق

 

 

طرح التاريخ بتقويم ام القرى.zip

  • Like 2
قام بنشر

الاستاذ bedonada ,و الاستاذ حليم .. شكرا جزيلا على مروركم العطر و كلماتكم الطيبة

 

ان شاء الله اذا اسعف الوقت ساكمل الدالة ببقية الخيارات

 

تحياتي

قام بنشر

هلا باخي ساهر

 

يمكنك استخدام الدالة NetworkDays لهذا الغرض...

 

لا تنسى ضبط اعدادات الويندوز على ان اول ايام الاسبوع هو الاحد

 

للتوضيح اكثر انظر الصورة

 

ملاحظة

======

الدالة ايضا يمكنها ان تخصم الاجازات اذا مررت لها مدى الاجازات في الوسيط الثالث للدالة

 

 

q9jgjl.jpg

  • Like 1
قام بنشر

اخي الفاضل ابو تراب ماشاء الله عملك جدا رائع وادى الغرض بس هل فيه امكانية ان تاريخ التعين بدل خليه يكون اكثرمن خلية (عمود كامل) وايضا بالنسبة للفروق (يوم - شهر - سنة)

طرح التاريخ.rar

قام بنشر

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

ربنا يتقبل منا ومنكم صالح الاعمال

 

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

قام بنشر (معدل)

تفضل 

 

ارجوا التاكد من صحة الفروقات....الدالة مازالت في طور التطوير

اخي الفاضل ابو تراب جزاك الله خير عملك جدا رائع اعجز عن الشكر 

ولكن الملف تقيل جدا في العمل وعند اجراء ادراج اونسخ الملف يطلب ريستارت

تم تعديل بواسطه abdalla farouk
قام بنشر

جميل استاذ عبدالله .. شكرا لك على المعلومات

 

جرب الكود التالي و خبرنا

 

الدالة كما قلت مازالت في طور التطوير و نحتاج ان نحسن من كفائها.

 

 

تعديل الكود بدل خلية عمود V1.zip

  • Like 1
قام بنشر

اهلا و سهلا استاذ ساهر .. شرفنا مرورك العطر

 

بالمناسبة تذكرت سؤالك عن حساب ايام العمل، الدالة الصحيحة هى Networkdays.INTL في الصورة ادناه اعطيت لك مثال بحساب ايام العمل بدون خصم الاجازات او مع خصمها

استاذ ابو تراب جزاك الله خير على هذا العمل الرائع

 

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

 

Ai0ddL.jpg

  • Like 1
قام بنشر

اخى واستاذى الحبيب 

ابوتراب

 

ما شاء الله عليك روعه والله 

فعلا خد العيش من خبازه 

تقبل تحياتى

  • 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.

×
×
  • اضف...

Important Information