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

شرح ايجاد الفرق بين تاريخين بالمعادلات و الاكواد (محاكاة الدلة DateDif)


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

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

 

الى السادة اعضاء منتدانا الكرام اليكم اليوم شرح محاكاة الدالة 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

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

تفضل 

 

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

 

 

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

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

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

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

 

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

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

تفضل 

 

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

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

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

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

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

 

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

 

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

 

 

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

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

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

 

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

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

 

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

 

Ai0ddL.jpg

  • 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