cellio

شرح دالة DATEDIF في إكسل: حساب الفرق بين تاريخين

تعلم كيفية استخدام دالة DATEDIF في إكسل لحساب السنوات والشهور والأيام بين تاريخين بدقة لحساب العمر ومدة الخدمة.

بقلم Ayoub Farid · · 2 دقائق قراءة

تُستخدم دالة DATEDIF لحساب عدد السنوات أو الأشهر أو الأيام الكاملة بين تاريخين في أي جدول بيانات. وهي الطريقة القياسية المعتمدة لحساب العمر ومدة خدمة الموظفين. ومن المثير للاهتمام أنها لا تظهر ضمن قائمة الإكمال التلقائي في إكسل، إلا أنها تعمل بكفاءة في جميع إصدارات البرنامج وكذلك في Google Sheets، مما يجعلها أداة أساسية عند كتابة معادلات إكسل المتقدمة.

الصيغة العامة (Syntax)

=DATEDIF(start_date, end_date, unit)
وحدة القياس (Unit)النتيجة
"y"عدد السنوات الكاملة
"m"عدد الأشهر الكاملة
"d"إجمالي عدد الأيام
"ym"عدد الأشهر المتبقية بعد استبعاد السنوات الكاملة
"md"عدد الأيام المتبقية بعد استبعاد الأشهر الكاملة
"yd"عدد الأيام المتبقية بعد استبعاد السنوات الكاملة

حساب العمر

لحساب العمر بالسنوات الكاملة بناءً على تاريخ الميلاد في الخلية B2:

=DATEDIF(B2,TODAY(),"y")

حساب سنوات وأشهر الخدمة

لدمج السنوات والأشهر في خلية واحدة لمعرفة مدة العمل بدقة:

=DATEDIF(B2,TODAY(),"y")&" years, "&DATEDIF(B2,TODAY(),"ym")&" months"

→ "4 years, 7 months"

تاريخ البدء يجب أن يسبق تاريخ الانتهاء

إذا كان تاريخ البدء (start_date) لاحقاً لتاريخ الانتهاء (end_date)، ستُرجع الدالة الخطأ #NUM!. لتفادي ذلك، تأكد من ترتيب التواريخ في النطاق المحدد أو استخدم دالة IFERROR لمعالجة الخطأ.

مشكلة الوحدة "md" الشائعة

أشارت شركة Microsoft رسمياً إلى أن استخدام المعامل "md" قد يعطي نتائج غير دقيقة في بعض الحالات عند اختلاف أطوال الأشهر. إذا كنت بحاجة إلى حساب الأيام المتبقية بدقة متناهية لأغراض قانونية أو لإعداد مسيرات الرواتب، يُفضل حسابها بطريقة بديلة، مثل: =end-EDATE(start,DATEDIF(start,end,"m")).

هل تحتاج لحساب الأيام فقط؟ استخدم الطرح المباشر

إذا كنت تريد حساب إجمالي الأيام بين تاريخين فقط، فلست بحاجة لاستخدام DATEDIF؛ يكفي طرح خلية البداية من خلية النهاية:

=C2-B2

أما إذا كنت ترغب في حساب أيام العمل الفعلية واستبعاد العطلات، فاستخدم دالة NETWORKDAYS.

الأسئلة الشائعة

لماذا لا تظهر دالة DATEDIF في قائمة إكمال الدوال التلقائي؟

تُعد دالة قديمة احتفظت بها مايكروسوفت لضمان التوافق مع البرامج السابقة (مثل Lotus 1-2-3)، لذا لا يقترحها إكسل تلقائياً أثناء الكتابة. اكتب اسم الدالة كاملاً وستعمل بشكل طبيعي.

كيف يمكنني حساب العمر بدقة في إكسل؟

يمكنك كتابة المعادلة =DATEDIF(birthdate,TODAY(),"y")، كما يمكنك مراجعة دليلنا التفصيلي حول حساب العمر في إكسل.

لماذا تُرجع دالة DATEDIF الخطأ #NUM!؟

يحدث هذا الخطأ دائماً عندما يكون تاريخ البدء أحدث أو أكبر من تاريخ النهاية.

هل تعمل دالة DATEDIF في Google Sheets؟

نعم، تعمل الدالة بالصيغة نفسها وتدعم جميع وحدات القياس المذكورة.

تابع القراءة