KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

كيف تحسب العمر بدقة بالسنوات والأشهر والأيام انطلاقًا من تاريخ الميلاد في Excel؟

المؤلفالشمستاريخ التعديل

في العديد من السيناريوهات العملية—مثل إدارة الموارد البشرية، وسجلات الرعاية الصحية، وقواعد بيانات الطلاب، وأنظمة العضوية—يُعد حساب عمر الفرد بدقة بالسنوات والأشهر والأيام بناءً على تاريخ ميلاده أمرًا بالغ الأهمية. إذا كانت لديك قائمة بتواريخ الميلاد في Excel، فقد تحتاج إلى تحديد العمر الدقيق لكل شخص بسرعة، سواء بصيغة مفصلة تعرض السنوات والأشهر والأيام، أو كقيمة عشرية أو عدد صحيح. ويُسهم ذلك في رفع دقة البيانات لدعم أهداف مثل التحقق من الأهلية، وتطبيق السياسات، ومتابعة المعالم الزمنية بدقة. وفي هذا المقال، ستجد عدة طرق فعّالة لأداء هذه الحسابات في Excel بكفاءة وسهولة.
حساب العمر بالسنوات والأشهر والأيام

جدول المحتويات

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

احسب العمر كعدد عشري من تاريخ الميلاد

احسب العمر كعدد صحيح من تاريخ الميلادفكرة جيدة3

رمز VBA - أتمتة حساب العمر عبر مجموعة بيانات كبيرة باستخدام ماكروهات مخصصة

طرق Excel المدمجة الأخرى - استخدم Power Query لحساب العمر عن طريق تحويل البيانات


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

إحدى الطرق العملية لحساب العمر بدقة—والتي تُستخدم على نطاق واسع في إعداد التقارير واتخاذ قرارات الأهلية—هي اعتماد صيغة تُظهر عدد السنوات والأشهر والأيام بين تاريخ الميلاد وتاريخ مرجعي معيّن (غالبًا يكون تاريخ اليوم). وتُعد هذه الطريقة مثالية للسيناريوهات التي يكتسب فيها تحديد المدى الزمني الدقيق أهمية بالغة، مثل المناسبات السنوية أو شروط القبول أو حساب الاستحقاقات.

حدد الخلية التي تريد أن يظهر فيها نتيجة العمر، ثم أدخل هذه الصيغة:

=DATEDIF(A2،$F$2،«Y»)&« سنة، »&DATEDIF(A2،$F$2،«YM»)&« شهرًا، »&DATEDIF(A2،$F$2،«MD»)&« يومًا»

بعد إدخال الصيغة، اضغطEnter. بعد ذلك، يمكنك استخدام مقبض الملء التلقائي في Excel لسحب الصيغة لأسفل وتعبئة الصفوف الإضافية حسب الحاجة.

في هذه الصيغة، يشيرA2 إلى الخلية التي تحتوي على تاريخ الميلاد، ويجب أن يحتويF2 على التاريخ المرجعي (مثل تاريخ اليوم). يوفّر هذا الهيكل تقسيمًا دقيقًا، لذا تأكد من أن كلا الخليتين منسقتين كتواريخ. إذا ظهر خطأ#NUM!، فقد يعني ذلك أن تاريخ الميلاد لاحقٌ للتاريخ المرجعي، فراجِع مدخلاتك مجددًا.
تطبيق صيغة لحساب العمر بالسنوات والأشهر والأيام


احسب العمر كعدد عشري من تاريخ الميلاد

عندما تحتاج إلى عرض العمر كعدد عشري—مثلًا في التقارير الإحصائية، أو لتجميع الأعمار بسرعة، أو لتحديد حدود الأهلية—فإن الصيغة المختصرة تكون الخيار الأمثل. إذ تُعطيك هذه الطريقة عمرًا دقيقًا مثل "24.11"، مما يسهّل تحليل البيانات أو تصفية النتائج بكفاءة.

حدد الخلية التي تريد أن يُعرض فيها العمر العشري، ثم أدخل الصيغة التالية:

=DATEDIF(A2,$F$2,«Y»)&"."&DATEDIF(A2,$F$2,«YM»)

اضغطEnter لتأكيد الصيغة، ثم اسحب مقبض الملء لأسفل لتطبيقها تلقائيًا على الصفوف الأخرى.

كما في الطريقة السابقة،A2 هو تاريخ ميلادك وF2 يجب تعيينه كتاريخ حالي أو مرجعي. تأكد من تنسيق خلايا التواريخ بشكل صحيح. وعلى الرغم من أن هذه الطريقة مباشرة وتسهّل العمل مع البيانات الرقمية، إلا أنها لا تأخذ الأيام في الاعتبار—فإذا كنت بحاجة إلى هذا المستوى من التفصيل، فاستخدم طريقة التقسيم الكاملة بدلاً من ذلك.
تطبيق صيغة لحساب العمر كرقم عشري


احسب العمر كعدد صحيح من تاريخ الميلاد

إذا كان هدفك الحصول على عمرك كعددٍ صحيح—وهو ما يُستخدم غالبًا لتحديد الأهلية في التعليم أو التأمين أو التحكم في الوصول—فإن النتيجة الصحيحة للعمر تكون كافية وغالبًا ما تُطلب. ويُبسّط Kutools لـ Excel هذه العملية عبر دالة مخصصة تُسمى «حساب العمر بناءً على تاريخ الميلاد»، مما يوفّر عليك عناء إدخال صيغ معقدة يدويًّا. وهذا مفيدٌ بشكل خاص عند التعامل مع قوائم طويلة أو عند الحاجة إلى إجراء هذا الحساب مرارًا وتكرارًا.

Kutools لـ Excelيقدّم أكثر من 300 ميزة متقدمة لتبسيط المهام المعقدة، مما يعزز الإبداع والكفاءة.مدمج مع إمكانات الذكاء الاصطناعي، يقوم Kutools بأتمتة المهام بدقة، مما يجعل إدارة البيانات سهلة بلا جهد.معلومات تفصيلية عن Kutools لـ Excel...         نسخة تجريبية مجانية...

بعدالتثبيت المجانيKutools لـ Excel، اتبع الخطوات التالية:

1. حدد الخلية التي تريد أن يظهر فيها العمر المحسوب، ثم انقرKutools > مساعد الصيغة > مساعد الصيغة.
انقر على ميزة Formula Helper من Kutools

2. في مربع حوارمساعد الصيغة، اخترحساب العمر بناءً على تاريخ الميلادمن قسمحدد صيغة، ثم حدد الخلية التي تحتوي على تاريخ الميلاد لمربع النصDate، ثم انقرOK.
اختر صيغة حساب العمر بناءً على تاريخ الميلاد وعيّن المعاملات

3. ستحصل الآن على العمر كعددٍ صحيح؛ اسحب مقبض الملء لأسفل حسب الحاجة لتطبيقه على الخلايا الأخرى. تجنّب هذه الطريقة أخطاء الإدخال اليدوي وتبسّط المهام المتكررة لحساب العمر.
تم حساب العمر كعدد صحيح

تلميح:إذا أردت تحديث العمر تلقائيًا مع مرور الوقت، فتأكد من ضبط التاريخ المرجعي على=TODAY() في Excel.


رمز VBA - أتمتة حساب العمر عبر مجموعة بيانات كبيرة باستخدام ماكروهات مخصصة

عندما تحتاج إلى معالجة آلاف السجلات وحساب العمر بدقة بالسنوات والأشهر والأيام لكلٍّ منها، قد يصبح سحب الصيغ يدويًّا عملية تستغرق وقتًا طويلاً. يتيح لك ماكرو VBA أتمتة حساب العمر لعمودٍ كامل دفعة واحدة، مما يوفّر لك جهدًا كبيرًا في المهام المتكررة ويضمن اتساق النتائج—حتى لو كانت قائمة تواريخ الميلاد الخاصة بك تتغيّر باستمرار. هذه الطريقة مثالية أكثر للمستخدمين المتقدمين المتمرسين في البرمجة أو الذين يديرون تحديثات بيانات ضخمة.

1. انقرDeveloper > Visual Basic لفتح نافذة Microsoft Visual Basic for Applications. بعد ذلك، انقرInsert > Module وأدخل الكود التالي في الوحدة النمطية:

Function AgeYMD(ByVal dob As Date, ByVal refDate As Date) As String
'Updated by Extendoffice 20250902
    Dim y As Long, m As Long, d As Long
    Dim t As Date

    If Not IsDate(dob) Or Not IsDate(refDate) Or refDate < dob Then
        AgeYMD = "Invalid date"
        Exit Function
    End If

    ' Years
    y = Year(refDate) - Year(dob)
    If DateSerial(Year(refDate), Month(dob), Day(dob)) > refDate Then y = y - 1

    ' Move dob forward by y years
    t = DateAdd("yyyy", y, dob)

    ' Months
    m = DateDiff("m", t, refDate)
    If DateAdd("m", m, t) > refDate Then m = m - 1

    ' Move temp forward by m months
    t = DateAdd("m", m, t)

    ' Days (now always >= 0)
    d = refDate - t

    AgeYMD = y & " Years, " & m & " Months, " & d & " Days"
End Function

Sub CalculateAgesAllRows()
    Dim ws As Worksheet, lastRow As Long, birthCell As Range, resultCell As Range
    Dim refDate As Date, xTitleId As String
    xTitleId = "KutoolsforExcel"

    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Example prompt; default is today. Make sure you enter a valid date (e.g., 2025-09-02)
    refDate = Application.InputBox("Enter reference date (e.g., 2025-09-02)", _
                                   xTitleId, Date, Type:=1)

    For Each birthCell In ws.Range("A2:A" & lastRow)
        Set resultCell = ws.Cells(birthCell.Row, "B")
        If IsDate(birthCell.Value) Then
            resultCell.Value = AgeYMD(CDate(birthCell.Value), refDate)
        Else
            resultCell.Value = "Invalid date"
        End If
    Next birthCell
End Sub

2. انقر زرزر التشغيل التشغيل لتنفيذه. سيتم مطالبتك بإدخال تاريخ مرجعي (مثل تاريخ اليوم)، وبعد ذلك سيقوم الماكرو بكتابة العمر المحسوب لكل صف في العمود B، بجانب تاريخ الميلاد المقابل في العمود A.

نصائح:تأكد من أن العمود A يحتوي على تواريخ صالحة، مع وجود رأس الجدول في الصف الأول (ابتداءً من الخلية A2). إذا ظهرت النتائج كـ «Invalid date»، فتحقق من تنسيق التواريخ في عمود المصدر.

توفر أتمتة VBA كفاءةً عاليةً عند التعامل مع مجموعات البيانات الكبيرة أو التي يتم تحديثها بانتظام، لكنها تتطلب ملفات مُمكَّنة للماكرو وإعدادات مركز الثقة أن تكون مضبوطة بشكل صحيح. إذا كنت تفضّل تجنُّب استخدام الكود، ففكّر في استخدام Power Query كبديل خالٍ من البرمجة.


طرق Excel المدمجة الأخرى - استخدم Power Query لحساب العمر عن طريق تحويل البيانات

يقدّم Power Query نهجًا سهل الاستخدام وخاليًا من البرمجة لحساب العمر مباشرةً ضمن واجهة Excel الحديثة. فبمجرد تحميل جدولك الذي يحتوي على تواريخ الميلاد في Power Query، يمكنك إضافة عمود مخصص لحساب الأعمار بالسنوات والأشهر والأيام—بدون الحاجة إلى صيغ أو نسخ يدوي. وتُوصى هذه الطريقة بشدة للمستخدمين الذين يعملون مع بيانات مستوردة أو يحتاجون إلى تحويل بياناتهم وتحديث الحسابات بانتظام.

خطوات التنفيذ:

1. حدد جدول تواريخ الميلاد الخاص بك، ثم انتقل إلىData > From Table/Range لتحميل بياناتك في Power Query.

2. في محرر Power Query، حددAdd Column > Custom Column.

3. في مربع الصيغة، أدخل كود M التالي لحساب العمر بالسنوات:

Date.Year(DateTime.LocalNow()) - Date.Year([DateOfBirth])

استبدلDateOfBirth برأس عمودك حسب الحاجة.

استخدام صيغة لحساب السنوات في Power Query

لحساب تقسيم أكثر تفصيلًا(سنوات، أشهر، وأيام)، يمكنك إضافة أعمدة منفصلة باستخدام:

let
    Today   = Date.From(DateTime.LocalNow()),
    Birth   = Date.From([Birthday]), Years   = Date.Year(Today) - Date.Year(Birth) -
              (if Date.AddYears(Birth, Date.Year(Today)-Date.Year(Birth)) > Today then 1 else 0),
    AnchorY = Date.AddYears(Birth, Years),
    mDiff   = (Date.Year(Today)-Date.Year(AnchorY))*12 + (Date.Month(Today)-Date.Month(AnchorY)),
    Months  = if Date.AddMonths(AnchorY, mDiff) > Today then mDiff-1 else mDiff,
    AnchorM = Date.AddMonths(AnchorY, Months),
    Days    = Duration.Days(Today - AnchorM)
in
    Text.From(Years) & " years " & Text.From(Months) & " months " & Text.From(Days) & " days"
استخدام صيغة لحساب السنوات والأشهر والأيام في Power Query

4. انقرOK. تُنتج هذه الطريقة عمودًا يعرض العمر، أو السنوات والأشهر والأيام، بناءً على الكود الذي استخدمته.

4. ثم انقر علىClose & Load لإرجاع البيانات المحولة إلى ورقة العمل الخاصة بك.

ملاحظات واستكشاف الأخطاء وإصلاحها:

  • يتعامل Power Query مع مجموعات البيانات الكبيرة بكفاءة، ويُعيد الحساب تلقائيًا عند التحديث.
  • إذا احتوى عمود تاريخ الميلاد على إدخالات غير صالحة أو فارغة، فتأكد من تنظيف البيانات قبل إنشاء أعمدة مخصصة.
  • تأكد من مراجعة أسماء الأعمدة وضبط الصيغ بما يتوافق معها.

يُعد Power Query الحل المثالي للمستخدمين الذين يبحثون عن أداة ديناميكية وقابلة لإعادة الاستخدام دون الحاجة إلى كتابة صيغ Excel أو ماكرو. ومع ذلك، قد لا يكون متاحًا في إصدارات Excel الأقدم من 2016 أو في Excel Online (حسب مجموعة الميزات المتاحة).


استكشاف الأخطاء والاقتراحات:
بغض النظر عن طريقة حساب العمر التي تختارها، تأكد دائمًا من أن خلايا المصدر منسَّقة كتواريخ، وراجع المنطق مرتين إذا ظهرت نتائج غير متوقعة (مثل أعمار سالبة أو أخطاء في القيم). عند استخدام الصيغ، لن يتم تحديث تواريخ المرجع الثابتة تلقائيًا مع مرور الوقت، لذا استخدم=TODAY() للحفاظ على تحديث الأعمار باستمرار. تعد حلول VBA وPower Query الخيار الأمثل للتقارير المتقدمة أو الواسعة النطاق أو التي تتطلب تحديثًا دوريًّا. قيِّم احتياجاتك بدقة لتحديد الأنسب لسير عملك. ولا تنسَ دائمًا حفظ ملفك قبل تطبيق أي ماكرو أو تحويلات شاملة، واحتفظ بنسخة احتياطية عند الحاجة لتجنب فقدان البيانات أو إدخال تغييرات غير مقصودة.


أفضل أدوات الإنتاجية لمكتبتك

🤖KUTOOLS AI مساعد: ثوّر تحليل البيانات استنادًا إلى:التنفيذ الذكي   |  إنشاء الكود|  إنشاء الصيغ المخصصة  |  تحليل البيانات وإنشاء المخططات البيانية|  استدعاء الوظائف المحسنة
الميزات الشائعة:البحث، التمييز أو وضع علامة على المكررات   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |  التقريب بدون استخدام الصيغة...
بحث متقدم:VLookup متعدد المعايير  |  VLookup متعدد القيم  |   VLookup عبر أوراق متعددة   |   مطابقة غامضة....
قائمة منسدلة متقدمة:إنشاء قائمة منسدلة بسرعة   |  قائمة منسدلة تابعة   |  قائمة منسدلة متعددة الاختيار....
مدير الأعمدة:إضافة عدد محدد من الأعمدة|نقل الأعمدة|تبديل حالة ظهور الأعمدة المخفية|مقارنة النطاقات والأعمدة...
ميزات مميزة:التركيز على الشبكة   |  عرض التصميم   |شريط الصيغ المحسن   | مدير الدفتر والورقة   |  مكتبة الموارد(نص تلقائي)|  أداة اختيار التاريخ   |  تجميع ورقات العمل  |  تشفير/فك تشفير الخلايا   | إرسال رسائل البريد الإلكتروني حسب القائمة   |  مرشح متقدم   |   تصفية خاصة(تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...) ...
أفضل 15 مجموعات الأدوات:12 أدواتالنصوص(إضافة نص،حذف الأحرف المحددة، ...)|   50+أنواعالمخططات البيانية(مخطط جانت، ...)|   40+ صيغعملية(حساب العمر بناءً على تاريخ الميلاد، ...)|   19 أدواتالإدراج(إدراج رمز QR،إدراج صورة من المسار، ...)|   12 أدواتالتحويل(تحويل إلى كلمات،تحويل العملة، ...)|   7 أدواتدمج وتقسيم(دمج متقدم للصفوف،تقسيم الخلايا، ...)|... وأكثر من ذلك
استخدم Kutools باللغة التي تفضلها – يدعم الإنجليزية والإسبانية والألمانية والفرنسية والصينية و40+ لغات أخرى!

عزِّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.يقدّم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...


يجلب Office Tab واجهة ذات علامات تبويب إلى Office، ويجعل عملك أسهل بكثير

  • تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
  • افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
  • يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!

جميع الإضافات من Kutools في برنامج تثبيت واحد!

Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.

ExcelWordOutlookTabsPowerPoint
  • حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
  • برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
  • يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
  • تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل