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

مساعده فى معادله تواريخ


إذهب إلى أفضل إجابة Solved by سليم حاصبيا,

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

لدي شيت به

تاريخ بدايه - تاريخ نهايه - مبلغ شهري - اجمالي المده × المبلغ الشهري ---- لحد هنا تمام

فى خليتين تانيين فيهم السنتين وليكن 2016 و 2017 و 2018 و 2019 محتاج انزل اجمالي كل سنه لوحده

مرفق شيت لسهوله التعديل

test.xlsx

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

اخي @سليم حاصبيا

شكراً لك 

حيث انه مطلوب مني هذا الملف بالمعادله التى قمت انت بعملها ولكن ان يكون ناتج كل عام تحت العمود الخاص به حتى يمكن جمع الاعوام مع بعضها

واذا امكن شرح سريع للمعادله

 

test_monthly.xlsx

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

7 hours ago, سليم حاصبيا said:

تم التعديل كما تريد (صفحة Salim من هذا الملف )

 

شكراً لك اخي سليم

بالفعل هو المطلوب بس مع اضافه بسيطه لو امكن

يعنى رقم 1 انا دلوقتى ضفت المده من 2015 حتى 2023 فالناتج طلع فى العامود بتاع 2015 و 2023 وساب السنين اللى فى النص

ولو امكن شرح للمعادله بعد التعديل لأن متلخبط لان كل عامود معادلته غير التاني فمعرفتش اعدل عليها الفترات اللى محتاجها من والي

test_monthly.xlsx

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

On 7/8/2019 at 4:10 PM, ahmed_atoon said:

شكراً لك اخي @سليم حاصبيا

بالفعل هو المطلوب بس مع اضافه بسيطه لو امكن

يعنى رقم 1 انا دلوقتى ضفت المده من 2015 حتى 2023 فالناتج طلع فى العامود بتاع 2015 و 2023 وساب السنين اللى فى النص

ولو امكن شرح للمعادله بعد التعديل لأن متلخبط لان كل عامود معادلته غير التاني فمعرفتش اعدل عليها الفترات اللى محتاجها من والي

test_monthly.xlsx 13.87 kB · 0 downloads

 

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

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

في حال اختلاف عدد السنوات يلزم تغيير كل شيء

اليك هذا المثال

 

Mounth_Price.xlsx

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

2 hours ago, سليم حاصبيا said:

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

في حال اختلاف عدد السنوات يلزم تغيير كل شيء

اليك هذا المثال

 

Mounth_Price.xlsx 11.08 kB · 0 downloads

أعجز عن الشكر اخي @سليم حاصبيا

هذا هو المطلوب بالفعل لو امكن شرح سريع للمصفوفه

واستفسار المفروض ان فى رقم 2 التاريخ بدأ من 17-5-2015 والناتج طلع 40 المفروض يطلع 35 لو حسبنا شهر 5 كامل 

وشئ اخر هل ممكن ان يكون بتاريخ النهايه او البدايه اذا كان ايام الشهر اقل من او يساوي 15 منه يحتسب نصف شهر واذا كان اكبر من 15 يحتسب شهر كامل

اذا كان غير ممكن فشكراً جزيلا لتعب حضرتك معايا وانتظر شرح المصفوفه للتعلم منها

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

  • أفضل إجابة

بالنسبة للسؤال الاول (المفروض ان فى رقم 2 التاريخ بدأ من 17-5-2015 والناتج طلع 40 المفروض يطلع 35)

في رقم 2 

 البداية (سنة 2017)   الأشهر هي    5  /6  / 7 / 8  /  9 / 10 /11  / 12   أي ما مجموعه 8 أشهر  و ليس 7

بالنسبة للسؤال الثاني (المرفق صفحة Correction)  تم العمل على ان

  1- اذا كان تارخ البداية اكبر من 15  يحتسب  نصف الشهر    و    الا الشهر كاملاً

  2-اذا كان تاريخ النهاية اصغر من 15 يحتسب  نصف الشهر     و    الا الشهر كاملاً

كل هذا بواسطة المعادلات

اما اذا اردت الحل بواسطة الماكرو  تجد الحل في الصفحة vba_sh من نفس  الملف المرفق 

الكود

Option Explicit
Sub get_Salary()
Dim Annee%: Annee = [d1]
Dim arr_val()
Dim i%, ind%, t%
Dim def1 As Double, def2 As Double
Dim adrs1%, adrs2%
Dim m As Double, s As Double
Dim LRA%: LRA = Cells(Rows.Count, 1).End(3).Row
Dim St_year%, End_year
Dim cont%: cont = 1

Range("d2:Q" & LRA).ClearContents
 For i = 2 To LRA
  St_year = Year(Range("a" & i))
  End_year = Year(Range("B" & i))
  If Range("a" & i) > Range("B" & i) Then MsgBox "you an Error on range: " _
  & Range("a" & i).Resize(, 2).Address & Chr(10) & _
  "the start date < then  end One" & Chr(10) & _
  "please check your data and Rerun the Macro": Exit Sub
  If St_year = End_year Then
        ReDim arr_val(1 To 1)
        arr_val(1) = St_year
  Else
        For ind = 1 To End_year - St_year + 1
            ReDim Preserve arr_val(1 To ind)
             arr_val(ind) = St_year + cont - 1
            cont = cont + 1
        Next
  End If
  '=========================================
   If UBound(arr_val) = 1 Then
     adrs1 = Rows(1).Find(arr_val).Column
       Select Case Day(Range("a" & i))
            Case Is < 15: def1 = -0.5
            Case Else: def1 = 0.5
       End Select
        Select Case Day(Range("b" & i))
            Case Is < 15: def2 = 0
            Case Else: def2 = 1
        End Select
      m = Month(Range("b" & i)) - Month(Range("a" & i)) + def1 + def2 - 1
      Cells(i, adrs1) = Abs(m) * Range("c" & i)
   End If
  '=========================================
  '++++++++++++++++++++++++++++++++++++++++++++++
  If UBound(arr_val) <> 1 Then
    adrs1 = Rows(1).Find(arr_val(1), lookat:=1).Column
    adrs2 = Rows(1).Find(arr_val(UBound(arr_val)), lookat:=1).Column
    
    Select Case Day(Range("a" & i))
        Case Is < 15: m = 13 - Month(Range("a" & i))
        Case Else: m = 13 - Month(Range("a" & i)) - 0.5
    End Select
       Cells(i, adrs1) = m * Range("c" & i)
    '============================
    Select Case Day(Range("b" & i))
        Case Is < 15: m = Month(Range("b" & i)) - 0.5
        Case Else: m = Month(Range("b" & i))
    End Select
       Cells(i, adrs2) = m * Range("c" & i)
     For t = LBound(arr_val) + 1 To UBound(arr_val) - 1
       adrs1 = Rows(1).Find(arr_val(t)).Column
       Cells(i, adrs1) = 12 * Range("c" & i)
     Next
   End If
 
  Erase arr_val: cont = 1
  Next
  Columns("d:Q").AutoFit
End Sub

 

الملف مرفق

 

 

 

 

Mounth_Price_new.xlsm

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