البحث في الموقع
Showing results for 'datedif'.
-
محتاج كود لاحتساب عدد الشهور من تاريخ معين
محمد هشام. replied to emad80's topic in منتدى الاكسيل Excel
Function CalculateAge(xDate As Range, AgeType As String) As Variant If IsEmpty(xDate) Or Not IsDate(xDate.Value) Then CalculateAge = "" Else Select Case AgeType Case "Days" CalculateAge = Date - xDate Case "Months" CalculateAge = (Year(Date) - Year(xDate)) * 12 + (Month(Date) - Month(xDate)) Case "Years" CalculateAge = Year(Date) - Year(xDate) If Month(Date) < Month(xDate) Or (Month(Date) = Month(xDate) And Day(Date) < Day(xDate)) Then CalculateAge = CalculateAge - 1 End If Case Else CalculateAge = "" End Select End If End Function العمر بالايام =CalculateAge(A2, "Days") العمر بالشهور =CalculateAge(A2, "Months") العمر بالسنوات =CalculateAge(A2, "Years") تحديث الدالة لتشمل حساب العمر بالايام - الشهور- السنوات وكدالك (العمر بالسنوات، الأشهر، والأيام) Function CalculateAge(xDate As Range, AgeType As String) As Variant If IsEmpty(xDate) Or Not IsDate(xDate.Value) Then CalculateAge = "" Else Dim todayDate As Date todayDate = Date Select Case AgeType Case "Days" CalculateAge = todayDate - xDate.Value Case "Months" CalculateAge = (Year(todayDate) - Year(xDate.Value)) * 12 + (Month(todayDate) - Month(xDate.Value)) Case "Years" CalculateAge = Year(todayDate) - Year(xDate.Value) If Month(todayDate) < Month(xDate.Value) Or (Month(todayDate) = Month(xDate.Value) And _ Day(todayDate) < Day(xDate.Value)) Then CalculateAge = CalculateAge - 1 End If Case "Full" Dim Years As Long, Months As Long, Days As Long Years = DateDiff("yyyy", xDate.Value, todayDate) If Month(todayDate) < Month(xDate.Value) Or (Month(todayDate) = Month(xDate.Value) And _ Day(todayDate) < Day(xDate.Value)) Then Years = Years - 1 End If Months = Month(todayDate) - Month(xDate.Value) If Months < 0 Then Months = Months + 12 End If Days = Day(todayDate) - Day(xDate.Value) If Days < 0 Then Days = Day(DateSerial(Year(todayDate), Month(todayDate), 0)) + Days End If CalculateAge = Years & " years, " & Months & " months, " & Days & " days" Case Else CalculateAge = "" End Select End If End Function لحساب العمر بالسنوات، الأشهر، والأيام =CalculateAge(A2, "Full") '============ بالمعادلات============== العمر بالسنوات =IF(A2="", "", DATEDIF(A2, TODAY(), "Y")) العمر بالسنوات والأشهر =IF(A2="", "", DATEDIF(A2, TODAY(), "Y") & " Years, " & DATEDIF(A2, TODAY(), "YM") & " Months") العمر بالسنوات والأشهر والأيام =IF(A2="", "", DATEDIF(A2, TODAY(), "Y") & " Years, " & DATEDIF(A2, TODAY(), "YM") & " Months, " & DATEDIF(A2, TODAY(), "MD") & " Days") احتساب عدد الايام او الشهور او السنوات من تاريخ معين.rar -
-
وعليكم السلام ورحمة الله تعالى وبركاته بعد معاينة النتيجة المتوقعة جرب وضع الصيغ التالية F2 =IF(OR(A2="احاله", A2="وفاه"), IF(DATEDIF(C2,D2,"y")>=5, 0, DATEDIF(C2,D2,"md")), DATEDIF(B2,E2,"md")) G2 =IF(OR(A2="احاله", A2="وفاه"), IF(DATEDIF(C2,D2,"y")>=5, 60, DATEDIF(C2,D2,"m")), DATEDIF(B2,E2,"m")) الفرق بين تاريخين لاكثر من شرط.xlsx
-
عندى سؤال فى الدالة datedif اريد ان احسب الفرق بين تاريخين بالايام فقط فمثلا من تاريخ 1/1/2022 حتى 31/12/2022 الذى اريده ان يحسب عدد ايام كل الشهور 20 يوم فقط ولايحسبها على انها 30 او 31 فهل من طريقة
-
السلام عليكم جميعا ورحمة الله وبركاته ألتمس مساعدتكم الطيبة المباركة فى هذا الملف لضبابية الموضوع بالنسبة لى حيث يحتوى المرفق التالى على الفرق بين تواريخ مختلفة بإستخدام دالة DATEDIF ناتج التاريخ الأول هو 72 شهر و 11 يوم وناتج التاريخ الثانى هو 24 شهر و 12 يوم أريد هنا معادلتان للحصول على فرق الناتجين أحدهما لفرق الأيام والأخرى لعدد الشهور على النحو الصحيح حيث أواجه مشكلة فى تحقيق ذلك برجاء الإطلاع على المرفق وجزاكم الله خيرا Book1.xlsx
-
تفضل أخي الكريم =A2 + IF(DATEDIF(A2; TODAY(); "m") >= 12; 30; IF(DATEDIF(A2; TODAY(); "m") >= 8; 20; IF(DATEDIF(A2; TODAY(); "m") >= 4; 10; 0))) لا تنسى وضع التاريخ في خلية A2 و ستظهر الزيادة في الخلية التي بها المعادلة
-
السلام عليكم ورحمة الله وبركاته الى السادة اعضاء منتدانا الكرام اليكم اليوم شرح محاكاة الدالة DateDif با المعادلات و الاكواد. بالنسبة المحاكلة بالاكواد عملت دالة بسيطة اسميتها DateGap في الصورة ادناه تم الاعتماد على الدلة DateDif كمعيار لقياس مدى دقة المعادلات و الدلة DateGap اولا المعادلات و الصيغ على افتراض ان التاريخ الاول هو 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
- 32 replies
-
- 3
-
-
-
هى أصلا الدالة مش موجودة ولكن اذا كتبتها ستقوم بعملها .. على الرغم أنك لم تقم برفع ملف للتوضيح , فعلى سبيل المثال اذا كان هناك تاريخ موجود بالخلية A2 والتاريخ الأخر بالخلية B2 ....فستكون المعادلة كالتالى : DATEDIF(start_date, end_date, unit) =DATEDIF(A2,B2,"Y") السنوات =DATEDIF(A2,B2,"YM") الشهور =DATEDIF(A2,B2,"MD") الأيام Unit Returns "Y" The number of complete years in the period. "M" The number of complete months in the period. "D" The number of days in the period. "MD" The difference between the days in start_date and end_date. The months and years of the dates are ignored. Important: We don't recommend using the "MD" argument, as there are known limitations with it. See the known issues section below. "YM" The difference between the months in start_date and end_date. The days and years of the dates are ignored "YD" The difference between the days of start_date and end_date. The years of the dates are ignored.
-
حسب فهمى للطلب =IF(G3="";"";INT(DATEDIF(G3;TODAY();"m")/4)*10) TESTT.xlsx
-
جرب هذا الكود اخي =IF(TODAY()>G3;INT((DATEDIF(G3; TODAY(); "m") / 4) * 10);"لم يأتي الموعد")
-
السلام عليكم ورحمة الله وبركاته نرجو من حضراتكم فضلاً المساعدة فى تعديل دالة DATEDIF لتحقيق الشروط المبينه بهذا المرفق على هذا النحو بالنسبة لحالات الإحاله أو الوفاه فلهما شرطين الأول لو الفرق بين التاريخين بالعمودين ال C و ال D أكبر من أو يساوى خمس سنوات فأعطى خمس سنوات فقط أى ستون شهرا أما لو الفرق بين التاريخين أقل من خمس سنوات فأعطى المدة الفعلية فقط كعدد أيام وشهور فقط أما بالنسبة للقائم بالعمل يجب الحصول على الفرق بين التاريخين بالعمودين ال B و ال E كعدد أيام وشهور فقط لقد حاولت تعديل المعادلتين فى العمودين ال F و ال G دون جدوى فهل من سبيل لإعادة النظر بفضل الله تعالى أولا ثم بفضلكم ثانيا شكرا لحسن إهتمامكم وجزاكم الله خيرا الفرق بين تاريخين لاكثر من شرط.xlsx
-
حاولت استخدام دالة datedif لكن الدالة لا تعمل معي في اكسل 2019 . ارجو المساعدة . B5 C5 20/12/2021 20/5/2020 =DATEDIF(B5,C5,"d") النتيجة #VALUE! =DATEDIF(B5,C5,"MD") النتيجة #VALUE!
-
السلام عليكم ورحمة الله وبركاته ارجو المساعدة باستخدام الدالة DATEDIF حيث انها لا تعمل لدي لا اعرف ما الخطاء مع العلم انني استخدم اوفيس 2010 =DATEDIF($F$2;$G$2;"md") =DATEDIF(F2,G2,"MD") =DATEDIF(F2;G2"MD") المطلوب عدد ايام الغياب بين الشهرين مثال 1/1/2020 1/1/2021 عدد الايام 365 يوم 0الفرق بين تاريخ.xlsx
-
جرب استعمال هذه المعادلة في الخلية G6 =IF(B6="","",IF(DATEDIF(D6,E6,"md")>=30,IF(DATEDIF(D6,E6,"ym")+1=12,0,DATEDIF(D6,E6,"ym")+1),DATEDIF(D6,E6,"ym"))) وهذه في الخلية F6 =IF(B6="","",IF(DATEDIF(D6,E6,"ym")+1=12,1,0))+DATEDIF(D6,E6,"y") بالتوفيق
-
وعليكم السلام ورحمة الله وبركاته يمكنك استخدام الدالة التالية في خلية E2: =DATEDIF(TODAY(),DATE(سنة المعينة, شهر المعين, يوم المعين),"d") حيث تقوم هذه الدالة بحساب عدد الأيام بين تاريخ اليوم وتاريخ المعين الذي تحدده في الصيغة. يمكنك استبدال "سنة المعينة" و"شهر المعين" و"يوم المعين" بالقيم المعينة التي تريدها.
-
معادلات datedif لاتعمل مع تاريخ قبل 1900 هل من حلول وسأضع مثال اشخاص.xlsx
-
مشكل لم أجد له حلا مع دالة Datedif ويتمثل في ارتياب يوم، مثلاً الفترة من 01/07/2019 إلى غاية 30/06/2020 تعتبر سنة كاملة إلا أن الدالة تقول 0 سنة 11 شهر و29 يوم فإذا قمنا بإضافة يوم في الدالة، سيقع خطأ في حسابات أخرى، مع ملاحظة أنها تعمل جيدا في حالات أخرى، والملاحظة الأخرى والله أعلم حسب التجربة، المشكل يتولد عند الأشهر ذات 30 يوماً ننتظر رأي الأساتذة والخبراء في هذا المنتدى الطيب أخي الكريم شكر على الإجابة، لكن سؤالي واضح وهو مثلا من الفترة تبدا من 1/2/2019 إلى غاية 28/2/2020 أي واحد سيقول لك هذا شهرلكن الإكسل يقول 27 يوم هنا الخلل جزاكم الله خيرا تواريخ.xlsx تواريخ.xlsx
-
السلام عليكم لما بستعمل الدالة datedif لحساب العمر بتعطى خطا فى عدد الايام هل هناك حل ومرفق ملف حساب العمر.xlsx
-
استخدم المعادلة التالية باعتبار أن الرقم القومي في الخلية B3 =DATEDIF(DATE(IF(LEFT(B3;1)*1=3;20;19)&MID(B3;2;2);MID(B3;4;2);MID(B3;6;2));TODAY();"y") حيث يتم تقسيم الرقم القومي إلى شهر وسنة وأيام وبعدها يتم طرحه من اليوم الحالي today واظهار الناتج بالسنة y
-
المطلوب معادلة لحساب جمع فترتين مختلفتين
Ali Mohamed Ali replied to محمد رسلان's topic in منتدى الاكسيل Excel
وعليكم السلام-تفضل بهذه المعادلة تصل لطلبك =DATEDIF(K8,L8,"y")+DATEDIF(K9,L9,"y")&"years;"&DATEDIF(K8,L8,"ym")+DATEDIF(K9,L9,"ym")&"months;"&DATEDIF(K8,L8,"md")+DATEDIF(K9,L9,"md")&"days" معادلة1 DATEDIF.xlsx- 1 reply
-
- 3
-
-
شاهد شرح الدالة بالفيديو
-
السلام عليكم ور حمة الله اكتب المعادلة التالية فى الخلية D4 ثم اسحب نزولا =DATEDIF($A4;$B4;"y") اما المعادلة التالية اكتبها فى الخلية E4 ثم اسحب نزولا =DATEDIF($A4;$B4;"ym") اما المعادلة الاخيرة اكتبها فى اى خلية تشاء =SUM(D4:D7;INT(SUM($E$4:$E$6)/12))&" Years,"& MOD(SUM($E$4:$E$6);12)&" Months,"