كيفية حساب النسبة المئوية بين تاريخين في Excel؟
عند إدارة المشاريع الجارية أو مراقبة تقدم المهام المجدولة في Excel، من الضروري غالبًا حساب نسبة الفترة الزمنية التي انقضت بناءً على التاريخ الحالي. يتيح لك ذلك تقييم ما إذا كانت المشاريع متقدمة أم على المسار الصحيح أم متأخرة عن الجدول الزمني بتمثيل الوقت المنقضي كنسبة مئوية من إجمالي المدة المخططة. على سبيل المثال، قد يكون لديك ورقة عمل تحتوي على مهام، لكل منها تواريخ بداية ونهاية خاصة بها. ستحتاج إلى معرفة، اعتبارًا من اليوم، النسبة المئوية للوقت المخطط لكل مهمة التي قد انقضت. ستقودك هذه التعليمات عبر طرق عملية لتحقيق ذلك في Excel، وستوضح كيفية أتمتة تحديث النسب المئوية للتقدم، وكذلك كيفية تسليط الضوء بصريًا على المهام بناءً على هذه النتائج باستخدام التنسيق الشرطي.
تُظهر لقطة الشاشة التالية قائمة مهام عينة مع تاريخ البدء وتاريخ الانتهاء والنسبة المئوية المحسوبة المطلوبة للإكمال:
- حساب النسبة المئوية للإكمال بين تاريخين باستخدام صيغة
- رمز VBA – أتمتة حساب النسبة المئوية لتحديث ديناميكي عبر الصفوف والتواريخ
حساب النسبة المئوية للإكمال بين تاريخين باستخدام صيغة
لحساب النسبة المئوية لإكمال المهمة بين تاريخين، يمكنك استخدام صيغة تعتمد على وظائف DATEDIF وTODAY في Excel. هذا النهج مناسب عندما يكون لديك عدد قليل من المهام ولا تتغير مجموعة البيانات بشكل متكرر.
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%، ويقلل من مئات النقرات بالماوس لك كل يوم!
