تعيد =DATEDIF(B2,TODAY(),"Y") العمر بالسنوات الكاملة لشخص وُلد في التاريخ الموجود في B2. تعدّ DATEDIF السنوات الكاملة بين تاريخين، وتوفر TODAY() التاريخ الثاني، لذا يزيد العمر سنة في كل عيد ميلاد.
| A | B | C | |
|---|---|---|---|
| 1 | Name | Born | Age |
| 2 | Ana | 1990-05-14 | 36 |
| 3 | Ben | 1985-11-30 | 40 |
| 4 | Chloe | 2001-02-28 | 25 |
| 5 | Dan | 1978-10-10 | 47 |
| 6 | Eva | 2010-07-04 | 16 |
تُحسب الأعمار في العمود C من تاريخ اليوم، لذا تتغير مع مرور السنة. غيّر تاريخ ميلاد في العمود B فيتبعه العمر المجاور له. للصيغة ثلاثة وسائط: تاريخ البداية (تاريخ الميلاد)، وتاريخ النهاية (اليوم)، والوحدة، "Y" للسنوات الكاملة.
العمر في تاريخ محدد
للحصول على العمر في يوم ثابت، مثل بداية العام الدراسي أو تاريخ عقد، ضع ذلك اليوم في خلية واستخدم الخلية بدلًا من TODAY(). ويُبقي الرمز $ في $F$2 المرجع على F2 عند سحب الصيغة إلى الأسفل.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Born | Age | As of | ||
| 2 | Ana | 1990-05-14 | 36 | 2026-10-01 | ||
| 3 | Ben | 1985-11-30 | 40 | |||
| 4 | Chloe | 2001-02-28 | 25 | |||
| 5 | Dan | 1978-10-10 | 47 | |||
| 6 | Eva | 2010-07-04 | 16 |
في 2026-10-01 عمر Ana هو 36 وعمر Dan هو 47: لم يحن بعد عيد ميلاده في 10 أكتوبر. غيّر F2 إلى 2026-10-10 فيبلغ Dan الثامنة والأربعين. وهذه الصيغة تعطي أيضًا النتيجة نفسها في كل مرة يُفتح فيها الملف، وهذا مهم عندما يدخل العمر في تقرير. راجع صفحة DATEDIF للوحدات الأخرى.
العمر بالسنوات والأشهر والأيام
في DATEDIF وحدات للأجزاء المتبقية بعد السنوات الكاملة: تعدّ "YM" الأشهر بعد آخر سنة كاملة، وتعدّ "MD" الأيام بعد آخر شهر كامل. اربط الثلاثة بالرمز & لكتابة العمر نصًا.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Born | Years | Months | Days | Age | As of |
| 2 | 1990-05-14 | 36 | 4 | 17 | 36 years, 4 months, 17 days | 2026-10-01 |
| 3 | 1978-10-10 | 47 | 11 | 21 | 47 years, 11 months, 21 days |
من 1990-05-14 إلى 2026-10-01 هي 36 سنة و4 أشهر و17 يومًا. وتنصح Microsoft بعدم استخدام الوحدة "MD" لأنها قد تعيد عددًا سالبًا أو خاطئًا من الأيام في بعض الحالات، مثل تاريخ ميلاد في اليوم 31. تحقق من رقم الأيام عندما يقع تاريخ الميلاد بين اليوم 29 واليوم 31.
حساب العمر دون DATEDIF
تعمل DATEDIF في كل إصدارات الاكسل لكنها غائبة عن قائمة الدوال وعن الإكمال التلقائي للصيغ، لذا يفضّل بعض الناس YEARFRAC. تعيد YEARFRAC(start,end,1) السنوات بين تاريخين رقمًا عشريًا، مع احتساب الطول الحقيقي لكل سنة (الأساس 1). وتحذف INT الكسر.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Born | As of | DATEDIF | YEARFRAC |
| 2 | 1990-05-14 | 2026-10-01 | 36 | 36 |
| 3 | 1978-10-10 | 2026-10-01 | 47 | 47 |
| 4 | 2010-07-04 | 2026-10-01 | 16 | 16 |
يتفق العمودان: 36 و47 و16. ودون INT، تعيد YEARFRAC للصف الأخير نحو 16.24، وهذا مفيد عندما تحتاج إلى العمر رقمًا عشريًا، كما في ورقة إحصاءات.
لماذا لا تقسم على 365
من الاختصارات الشائعة =INT((F2-B2)/365): عدد الأيام التي عاشها الشخص مقسومًا على أيام السنة. لكن السنوات الكبيسة تضيف يومًا كل أربع سنوات، لذا بعد بضعة عقود تصل الصيغة إلى العمر التالي قبل عيد الميلاد بأيام: قبل 12 يومًا في عيد الميلاد الثامن والأربعين.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Born | As of | Days lived | Divide by 365 | DATEDIF |
| 2 | 1990-05-14 | 2026-10-01 | 13289 | 36 | 36 |
| 3 | 1978-10-10 | 2026-10-01 | 17523 | 48 | 47 |
للشخص المولود في 1978-10-10، تقول القسمة على 365 إن عمره 48 في 2026-10-01، قبل تسعة أيام من عيد ميلاده الثامن والأربعين. وتقول DATEDIF إنه 47. القسمة على 365.25 تصلح معظم الصفوف لكنها تخطئ في بعض التواريخ، لذا استخدم DATEDIF أو YEARFRAC.
تمرين: العمر في أول يوم دراسي
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Born | Age | As of | |
| 2 | Ana | 2012-04-17 | 2026-09-01 |
دورك: في C2، احسب عمر Ana بالسنوات الكاملة في التاريخ الموجود في E2.
تغيّر الفحوص المخفية التاريخ في E2، لذا يجب أن تقرأه الصيغة.
لماذا يظهر العمر تاريخًا
إذا كتبت صيغة العمر في خلية تحتوي أصلًا على تاريخ، أو في عمود منسق كتواريخ، يُبقي الاكسل تنسيق التاريخ ويعرض 36 على شكل 1900-02-05 (اليوم السادس والثلاثون في نظام التاريخ في الاكسل؛ ومع الإعدادات الأمريكية يظهر 2/5/1900). الرقم الموجود تحته صحيح. حدد الخلايا واختر الصفحة الرئيسية > تنسيق الأرقام > عام (أو اضغط Ctrl+Shift+~، أو Control+Shift+~ على Mac) فيظهر العمر.
الأسئلة الشائعة
ما صيغة حساب العمر في الاكسل؟
=DATEDIF(B2,TODAY(),"Y")، مع تاريخ الميلاد في B2. تعدّ السنوات الكاملة من تاريخ الميلاد حتى اليوم، لذا يزيد العمر في يوم الميلاد نفسه، لا قبله.
كيف أحسب العمر في تاريخ محدد في الاكسل؟
ضع التاريخ في خلية واستخدمها بدلًا من TODAY(): تعطي =DATEDIF(B2,$F$2,"Y") العمر في التاريخ الموجود في F2. وتُبقي علامات $ الخلية F2 ثابتة عند سحب الصيغة إلى الأسفل.
كيف أحسب العمر في الاكسل دون DATEDIF؟
استخدم =INT(YEARFRAC(B2,TODAY(),1)). تعيد YEARFRAC السنوات بين التاريخين رقمًا عشريًا، وتُبقي INT السنوات الكاملة.
لماذا تعرض صيغة العمر تاريخًا مثل 1900-01-30؟
لأن الخلية منسقة كتاريخ، فيُعرض العمر 30 على أنه اليوم الثلاثون في تقويم الاكسل. حدد الخلية واضبط الصفحة الرئيسية > تنسيق الأرقام على عام.
لماذا القسمة على 365 خاطئة لحساب العمر؟
لأن السنوات الكبيسة تضيف يومًا كل أربع سنوات، فتحتسب =INT((TODAY()-B2)/365) عيد الميلاد قبل موعده ببضعة أيام: الشخص المولود في 1978-10-10 عمره 48 حسب تلك الصيغة في 2026-10-01، قبل تسعة أيام من بلوغه 48. أما DATEDIF فتعدّ السنوات التقويمية ولا تقع في هذا الخطأ.