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

طرح تواريخ (باليوم) وتحديد مدد


Omar_Kreem

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

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

رمضان كريم

********

لدى ملف به مجموعة تواريخ لكل موظف ..

وأريد استخراج فارق الأيام (عن طريق الكود )

بحيث :

نطرح أولا أصغر تاريخ من الحقل

(Dates) - (d1)

ثم

لو عدد الأيام أقل من 365 ، يتم طرح

(Dated)-(d2)

ولو عدد الأيام يساوى أو أكبر من 365 يوم يكون الناتج صفر

وذلك لكل موظف على حدى.

 

ddff.rar

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

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

مرحبا اخي الكريم

لمعرفة فرق الايام بين تاريخين نستخدم دالة DateDiff

وتطبيق الدالة على ماتريد سنتسخدم شرط IIF يكون كالتالي

IIf(DateDiff("d";[D1];[DateS])<365;DateDiff("d";[D2];[Dated]);0)

ddff.rar

تحياتي

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

شكراً جزيلاً لحضرتك أستاذ/ محمد

سأعيد صياغة السؤال

أولا - أريد طرح أول تاريخ لكل موظف من الحقلين التاليين 

(Dates) - (d1)

ثانياً - نطرح

(DateD)-(DateS)

لو كان الناتج أصغر من 365

يتم طرح

(DateD)-(d2)

ولو عدد الأيام يساوى أو أكبر من 365 يوم يكون الناتج صفر

وذلك لكل موظف على حدى

 

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

مرحبا اخي الكريم

اذن نقوم بطرح (Dates) - (d1) اولا ثم نطرح النائج من (DateD)-(d2)

فاذا كان الناتج اقل من 365 يتم وضع ناتج طرح (DateD)-(d2)

وإلا تكون النتيجة صفر

هكذا

iif((DateDiff("d";[D1];[DateS])-DateDiff("d";[DateS];[Dated]))<365;DateDiff("d";[D2];[Dated]);0)

ddff.rar

تحياتي

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

أخى الكريم :

أعتذر لحضرتك .. ولكن سأفكر بطريقة أخرى

أريد طرح كل صف بشكل مستقل من التاريخين

(DateD)-(DateS)

حتماً ستكون النتيجة أما 365 أو 366 أو أصغر من ذلك.

***********************

ثم نطرح أصغر تاريخ (فقط) من Dates لكل موظف من

DateS - D1

************************

ثم

إذا كانت نتيجة طرح

(DateD)-(DateS)

فلو كان عدد الأيام يساوى أو أكبر من 365 يوم يكون الناتج صفر .. وإن كان أصغر من ذلك يتم طرح

(DateD)-(d2)

*******************************

الفكرة إن نتيجة طرح

(DateD) , (DateS)

نتيجة ثابتة ويتم تغييرها بحسب تغير

D1, D2

فضلا أنظر للصورة والصف المظلل بالأحمر

Clip.jpg

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

في ٢٥‏/٤‏/٢٠٢١ at 10:33, محمد أبوعبدالله said:

مرحبا اخي الكريم

اذن نقوم بطرح (Dates) - (d1) اولا ثم نطرح النائج من (DateD)-(d2)

فاذا كان الناتج اقل من 365 يتم وضع ناتج طرح (DateD)-(d2)

وإلا تكون النتيجة صفر

هكذا


iif((DateDiff("d";[D1];[DateS])-DateDiff("d";[DateS];[Dated]))<365;DateDiff("d";[D2];[Dated]);0)

ddff.rar 12.88 kB · 9 downloads

تحياتي

اخي الكريم استخدم معادلة اخي @محمد أبوعبدالله

استخدمها في الاستعلام و ستعطي النتيجة لجميع السجلات

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

  • 2 weeks later...

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

رجاء التعديل على الكود ليعطى نفس نتائج الاستعلام....

ddff2.rar

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

أعتذر عن الأخطاء التى وردت بالمرفق السابق

الكود يعطى نتائج مختلفة تماما عما تعطيه الدالة فى الاستعلام.. فى حقل Expr3

كما أن التواريخ التى تتدرج من الكود فى جدول Rased  التواريخ فى 31/12/1899

رجاء التعديل على الكود ليعطى السنة الحقيقة ، والنتائج الصحيحة لطرح التواريخ

ddff22.rar

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

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