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

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

قام بنشر

السلام عليكم

دى معادلى لحساب تاريخ احالة للمعاش وفقا لقاعدة معينة

=IF(AND(D2>=DATE(YEAR(D2);1;1);D2<=DATE(YEAR(D2);6;30));DATE(YEAR(D2);6;30);IF(AND(D2>=DATE(YEAR(D2);7;1);D2<=DATE(YEAR(D2);9;30));D2;DATE(YEAR(D2)+1;6;30))

واريد المعادلة على الاكسس

فارجو الافادة

قام بنشر

وعليكم السلام 🙂

 

الظاهر فيه خطأ في معادلتك ، فلما الصقتها في الاكسل اعطاني خطأ !!

 

على العموم ، الظاهر معادلتك تكون هكذا في الاكسس:

بطريقة iif والتي لا انصحك بها ، لأنك ما بتعرف كوعك من بوعك ، ولا بتقدر تعمل تعديل عليها :

dim myDate as date

myDate = IIf(D2 >= DateSerial(Year(D2), 1, 1) And D2 <= DateSerial(Year(D2), 6, 30), DateSerial(Year(D2), 6, 30), IIf(D2 >= DateSerial(Year(D2), 7, 1) And D2 <= DateSerial(Year(D2), 9, 30)), D2, DateSerial(Year(D2) + 1, 6, 30))

 

 

وبطريقة if السهلة الفهم والتعديل :


Dim myDate As Date

If D2 >= DateSerial(Year(D2), 1, 1) And D2 <= DateSerial(Year(D2), 6, 30) Then
    myDate = DateSerial(Year(D2), 6, 30)

ElseIf D2 >= DateSerial(Year(D2), 7, 1) And D2 <= DateSerial(Year(D2), 9, 30) Then
    myDate = D2

Else
    myDate = DateSerial(Year(D2) + 1, 6, 30)

End If

 

جعفر

  • Like 2
قام بنشر
3 ساعات مضت, medofgf said:

عندى تاريخ احالة للمعاش وفقا للاتى

يعنى اللى تاريخ احالتة للمعاش  اعتبارا من 2020/6/30 حتى 2020/9/30يكتب تاريخ الاحالة الفعلى

 واللى يحال اعتبار من 2020/10/1 حتى 2021/6/30 يكتب تاريخ الاحالة 2021/6/30

 

اخي الفاضل ، المعادلة التي وضعتها لك هي نفس طلبك هذا ، وخليني اشرحها لك:

myDate = تاريخ احالة المعاش
D2 = خ =  تاريخ اليوم / او تاريخ المقارنة = 2021 

Dim myDate As Date

If D2 >= DateSerial(Year(D2), 1, 1) And D2 <= DateSerial(Year(D2), 6, 30) Then
  اذا خ بين 1/1/2021 و 30/6/2021
  اذن تاريخ احالة المعاش = 30/6/2021
    myDate = DateSerial(Year(D2), 6, 30)

ElseIf D2 >= DateSerial(Year(D2), 7, 1) And D2 <= DateSerial(Year(D2), 9, 30) Then
  اذا خ بين 1/7/2021 و 30/9/2021
  اذن تاريخ احالة المعاش = خ
    myDate = D2

Else
  اذا خ غير عن الشروط اعلاه
     اذن تاريخ احالة المعاش =  30/6/2022 وهي السنة التالي
    myDate = DateSerial(Year(D2) + 1, 6, 30)

End If

 

جعفر

 

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

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

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

Important Information