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

- حساب نسبة الإنجاز بين تاريخين باستخدام صيغة
- رمز VBA – أتمتة حساب النسبة المئوية لتحديث ديناميكي عبر الصفوف والتواريخ
حساب نسبة الإنجاز بين تاريخين باستخدام صيغة
لحساب نسبة إنجاز المهمة بين تاريخين، يمكنك استخدام صيغة تعتمد على دوال Excel DATEDIF وTODAY. يناسب هذا الأسلوب الحالات التي يكون فيها عدد المهام محدودًا ولا تتغير مجموعة البيانات الخاصة بك بشكل متكرر.
1. أدخل الصيغة التالية في خلية فارغة ضمن الصف الذي تريد عرض النتيجة فيه (على سبيل المثال، في الخلية)D2):
=(DATEDIF(B2,TODAY(),"d")+1)/(DATEDIF(B2,C2,"d")+1) شرح المعاملات:
B2 هي الخلية التي تحتوي على تاريخ بدء المهمة، وC2 هي الخلية التي تحتوي على تاريخ انتهائها. تُرجع الدالةTODAY() تلقائيًا تاريخ اليوم، لذا تحسب الصيغة عدد الأيام المنقضية منذ بدء المهمة مقسومًا على المدة الكاملة المقررة لها.
2. بعد إدخال الصيغة، اسحب مقبض التعبئة لأسفل لنسخها إلى جميع الصفوف المطلوبة. وسيعرض كل صف بعد ذلك نسبة إنجاز مهمته الحالية استنادًا إلى تاريخ اليوم. ويوضّح المثال أدناه كيفية تطبيق ذلك على عدة مهام:

3. حدد جميع الخلايا المحسوبة. انتقل إلى علامة التبويبالصفحة الرئيسية، ثم انقر على زرنمط النسبة المئويةفي مجموعةالرقملعرض القيم كنسب مئوية بدلًا من الأعداد العشرية. ويمكنك ضبط عدد المنازل العشرية بشكل إضافي باستخدام أزرارزيادة المنازل العشريةوإنقاص المنازل العشريةللحصول على الدقة المفضلة.

تحذيرات:هذا الأسلوب مرن جدًّا، لكن تأكد من أن جميع خلايا التواريخ منسَّقة كتواريخ فعلية في Excel؛ وإلا فقد تظهر أخطاء أو قيم غير صحيحة.
إذا كنت ترغب في أن تتجدّد النتائج تلقائيًا كل يوم، فإن دالةTODAY()تضمن أن تعكس النسبة التقدم الحالي كلما أُعيد حساب المصنف أو فُتح. ومع ذلك، احذر: إذا أشرت إلى قيم ثابتة تم إدخالها يدويًا (بدلًا من استخدام)TODAY())، فستحتاج إلى تحديث تلك التواريخ بنفسك مع مرور الوقت.
رمز VBA – أتمتة حساب النسبة المئوية لتحديث ديناميكي عبر الصفوف والتواريخ
إذا كانت ورقتك تحتوي على العديد من المهام التي تمتلك تواريخ بدء وانتهاء محددة، فيمكنك استخدام VBA لحساب نسبة التقدم تلقائيًا لكل مهمة بناءً على تاريخ اليوم. يُعدّ هذا الأسلوب مثاليًا عندما تريد تحديث تقدم المهام ديناميكيًا عبر الصفوف دون الحاجة إلى إدخال الصيغ يدويًا. يقوم الماكرو باجتياز كل صف، ويقارن تاريخ اليوم بتاريخ بدء المهمة وتاريخ انتهائها، ثم يحسب الوقت المنقضي كنسبة مئوية من المدة الإجمالية. بعد ذلك، يُدخل الناتج في عمود مخصص، ليمنحك لمحة سريعة عن مدى تقدم كل مهمة.
1. اضغطAlt + F11 لفتح محررMicrosoft Visual Basic for Applications. في محرر VBA، انتقل إلىإدراج > وحدة نمطيةلإنشاء وحدة جديدة، ثم الصق الكود التالي فيها:
Sub UpdateTaskCompletionPercent()
'Updated by Extendoffice 20250724
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim StartDateCol As String, EndDateCol As String, PercentCol As String
Dim startDate As Variant, endDate As Variant, todayDate As Date
Dim pct As Double
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
' Adjust these column letters as needed
StartDateCol = "B"
EndDateCol = "C"
PercentCol = "D"
todayDate = Date
lastRow = ws.Cells(ws.Rows.Count, StartDateCol).End(xlUp).Row
For i = 2 To lastRow ' Skip header
startDate = ws.Cells(i, StartDateCol).Value
endDate = ws.Cells(i, EndDateCol).Value
If IsDate(startDate) And IsDate(endDate) Then
If endDate >= startDate Then
If todayDate < startDate Then
pct = 0
ElseIf todayDate >= endDate Then
pct = 1
Else
pct = (todayDate - startDate + 1) / (endDate - startDate + 1)
End If
ws.Cells(i, PercentCol).Value = pct
ws.Cells(i, PercentCol).NumberFormat = "0.00%"
Else
ws.Cells(i, PercentCol).Value = "Invalid dates"
End If
Else
ws.Cells(i, PercentCol).Value = "Date error"
End If
Next i
End Sub 2. بعد إدخال الكود، اضغطF5(أو انقر على زر)
التشغيل) لتنفيذ البرنامج النصي. ستقوم هذه العملية التلقائية بتعبئة عمود النسبة المئوية (D) فورًا لكل صف استنادًا إلى التواريخ الحالية.
ملاحظات واستكشاف الأخطاء وإصلاحها:
- إذا كنت تحتفظ ببيانات مهامك في أعمدة مختلفة، فعدّل
StartDateColوEndDateColوPercentColفي الكود لتتناسب مع تخطيط ورقتك. - إذا عرض البرنامج النصيّ«خطأ في التاريخ»أو«تواريخ غير صالحة»، فتحقق من وجود صفوف فارغة، أو إدخالات تواريخ غير صحيحة، أو تواريخ بدء/انتهاء متداخلة أو غير صحيحة.
- يضمن هذا الأسلوب دقة حسابات نسبتك وتحديثها باستمرار لجميع المهام، خاصةً بعد إجراء تعديلات جماعية على البيانات أو عند الاستيراد من مصادر خارجية.
يُعد حل VBA هذا حلاً عمليًا لإعدادات البيانات المتكررة والإبلاغ الآلي، خاصةً عندما يكون النسخ اليدوي للصيغ غير فعّال.
مقالات أخرى ذات صلة بالنسب المئوية:
- حساب السعر الأصلي من خصم النسبة المئوية
- عادةً، في حياتنا اليومية، نجد بعض المنتجات معروضة بخصومات في مراكز التسوق. إذا كان لديك سعر البيع بعد الخصم ونسبة الخصم كما هو موضح في لقطة الشاشة التالية، فكيف يمكنك حساب السعر الأصلي لهذا المنتج في Excel؟
- حساب النسبة المئوية للسنة أو الشهر المنقضي
- افترض أن لديك قائمة تواريخ في ورقة عمل، وترغب الآن في حساب النسبة المئوية للسنة أو الشهر التي انقضت أو المتبقية بناءً على تاريخ معيّن. كيف يمكنك إنجاز هذه المهمة في Excel؟
- حساب النسبة المئوية لقيم «نعم» و«لا» من قائمة
- كيف يمكنك حساب النسبة المئوية لنصوص «نعم» و«لا» ضمن نطاق خلايا في ورقة عمل Excel؟ قد يساعدك هذا المقال في تنفيذ هذه المهمة بسهولة وفعالية.
- إنشاء مخطط يعرض كلًا من النسبة المئوية والقيمة
- من السهل إضافة النسبة المئوية أو القيمة إلى مخطط الشريط، ولكن هل سبق أن حاولت إنشاء مخطط شريطي في Excel يعرض كلاً من القيمة والنسبة المئوية معًا؟
- استخدام COUNTIF لحساب النسبة المئوية في Excel
- على سبيل المثال، لدي تقرير ملخص لورقة بحثية، وهناك ثلاث خيارات: A وB وC، وأريد الآن حساب النسبة المئوية لكل خيار من هذه الخيارات الثلاثة. أي أنني أحتاج إلى معرفة ما النسبة المئوية التي يمثلها الخيار A من بين جميع الخيارات. في هذا المقال، سأشرح لك كيفية الحصول على النسبة المئوية لخيار محدد ضمن نطاق معين.
أفضل أدوات إنتاجية المكتب
Kutools لـ Excel يحل معظم مشكلاتك، ويزيد إنتاجيتك بنسبة 80%
- محرر متعدد الأسطر فائق الكفاءة من شريط الصيغة (يمكّنك من تحرير أسطر نصية متعددة والمعادلات بسهولة)؛وضع القراءة (ليُسهّل عليك قراءة وتحرير عدد كبير من الخلايا)؛لصق إلى نطاق التصفية...
- نسخ صفوف أو أعمدة تحتوي على خلايا مدمجةمع الاحتفاظ بالبيانات؛ تقسيم محتوى الخلايا؛دمج خلايا الصفوف المكررة وحساب المجموع أو المتوسط... منع إدخال قيم مكررة في الخلايا؛مقارنة النطاقات...
- تحديد الصفوف المكررة أو الفريدة؛تحديد الصفوف الفارغة (جميع الخلايا فارغة)؛البحث المتقدم والعثور على المشابهعبر العديد من ملفات العمل؛ تحديد عشوائي...
- إدخال محتوى متعدد الخلايا من النسخ الدقيقدون تغيير مراجع الصيغ؛إنشاء مراجع تلقائيةلأوراق عمل متعددة؛إدراج رموز التعداد النقطي، ومربعات الاختيار والمزيد...
- احفظ الصيغ المفضلة وأدخلها بسرعة، والنطاقات، والرسوم البيانية، والصور؛شفر الخلايابكلمة مرور؛أنشئ قائمة بريد إلكترونيوأرسل رسائل البريد الإلكتروني...
- استخراج النص، وإضافة نص، وحذف الأحرف من موقع معين،وإزالة المسافات؛ وإنشاء إحصاءات صفحة البيانات وطباعتها؛والتحويل بين محتوى الخلايا والتعليقات...
- مرشح متقدم (لحفظ مخططات التصفية وتطبيقها على أوراق عمل أخرى)؛ترتيب متقدمحسب الشهر أو الأسبوع أو اليوم، والتكرار، وغير ذلك؛تصفية خاصةحسب التنسيق العريض أو المائل...
- ادمج ملفات العمل وأوراق العمل؛ واجمع الجداول استنادًا إلى العمود الرئيسي؛وقسّم البيانات إلى أوراق عمل متعددة؛وحَوِّل ملفات XLS وXLSX وPDF دفعةً واحدة...
- تجميع حسب جدول البيانات المحوريرقم الأسبوع، ويوم الأسبوع والمزيد... عرض الخلايا غير المؤمَّنة وقفل التحديدبألوان مختلفة؛تمييز الخلايا التي تحتوي على صيغة أو اسم...

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