كيفية استخراج جميع السجلات بين تاريخين في Excel؟
عند العمل مع كميات كبيرة من البيانات الموقوتة في Excel، قد تحتاج غالبًا إلى استخراج أو تصفية جميع السجلات التي تقع بين تاريخين محددين. على سبيل المثال، قد ترغب في تحليل المعاملات ضمن فترة فواتير، أو مراجعة الحضور لشهر معين، أو ببساطة فحص الإدخالات المسجلة ضمن نطاق تاريخ مخصص. البحث يدويًا ونسخ كل صف ذي صلة يمكن أن يكون مرهقًا ومعرضًا للأخطاء، خاصة مع زيادة حجم البيانات. استخراج جميع السجلات بين تاريخين بكفاءة لا يوفر لك وقتًا وجهدًا كبيرًا فحسب، بل يقلل أيضًا من احتمالية فقدان إدخالات مهمة أو إدخال الأخطاء أثناء التعامل مع البيانات.
![]() | ![]() | ![]() |
أدناه، ستجد عدة طرق عملية لاستخراج جميع السجلات بين تاريخين في Excel. لكل طريقة سيناريوهات تطبيقها ومزاياها الخاصة، بدءًا من الاستخراج باستخدام الصيغ (لا حاجة لإضافات)، إلى استخدام Kutools لـ Excel للراحة المتزايدة، إلى استخدام الكود البرمجي VBA وفلتر Excel المدمج - مما يوفر حلول مرنة لمختلف الاحتياجات وتفضيلات المستخدمين.
استخراج جميع السجلات بين تاريخين باستخدام الصيغ
استخراج جميع السجلات بين تاريخين باستخدام Kutools لـ Excel
استخدام VBA لاستخراج السجلات بين تاريخين
استخدام فلتر Excel لاستخراج السجلات بين تاريخين
استخراج جميع السجلات بين تاريخين باستخدام الصيغ
لاستخراج جميع السجلات بين تاريخين في Excel باستخدام الصيغ، يمكنك اتباع الخطوات التالية. هذا الحل مفيد بشكل خاص عندما ترغب في تحديث ديناميكي: كلما تغيرت مجموعة البيانات الأصلية أو شروط التاريخ، يتم تحديث النتائج تلقائيًا. ومع ذلك، إذا كنت أقل دراية بالصيغ المصفوفة، قد يبدو الإعداد الأولي معقدًا بعض الشيء. إذا كانت مجموعة البيانات كبيرة جدًا، قد يؤدي هذا الأسلوب إلى أداء حساب أبطأ.
1. قم بإعداد ورقة عمل جديدة، على سبيل المثال Sheet2، حيث ستُحدد حدود التاريخ وستعرض السجلات المستخرجة. أدخل تاريخ البدء والانتهاء المطلوبين في الخلايا A2 وB2 على التوالي. لوضوح أكبر، يمكنك إضافة عناوين في A1 وB1 (مثل "تاريخ البدء" و"تاريخ الانتهاء").
2. في الخلية C2 من Sheet2، أدخل الصيغة التالية لحساب عدد الصفوف في Sheet1 التي تحتوي تواريخ تقع ضمن النطاق المحدد:
=SUMPRODUCT((Sheet1!$A$2:$A$22>=A2)*(Sheet1!$A$2:$A$22<=B2))
بعد إدخال الصيغة، اضغط Enter. يساعدك هذا في فهم عدد الإدخالات التي تطابق شرط التصفية، مما يجعل من السهل معرفة عدد النتائج المتوقعة.
ملاحظة: في هذه الصيغة، يشير Sheet1 إلى ورقة البيانات الأصلية؛ $A$2:$A$22 هو عمود التاريخ في بياناتك. قم بتعديل هذه المراجع حسب الحاجة لبياناتك. A2 وB2 هما خليتا تاريخ البدء والانتهاء.
3. لعرض السجلات المتطابقة، حدد خلية فارغة حيث تريد أن تبدأ القائمة المستخرجة (على سبيل المثال، في Sheet2، الخلية A5). أدخل الصيغة المصفوفة التالية:
=IF(ROWS(A$5:A5)>$C$2,"",INDEX(Sheet1!A$2:A$22,SMALL(IF((Sheet1!$A$2:$A$22>=$A$2)*(Sheet1!$A$2:$A$22<=$B$2),ROW(Sheet1!A$2:A$22)-ROW(Sheet1!$A$2)+1),ROWS(A$5:A5))))
بعد كتابة الصيغة، اضغط Ctrl + Shift + Enter (بدلاً من الضغط فقط على Enter) لجعلها تعمل كصيغة مصفوفة. ثم استخدم مقبض التعبئة لسحبها أفقيًا عبر العديد من الأعمدة كما لديك بيانات، وأسفل بحيث يتم عرض جميع الصفوف المتطابقة. استمر في السحب حتى ترى فراغات، مما يعني أن جميع البيانات المتطابقة تم استخراجها.
نصائح:
- إذا حصلت على أصفار، فهذا يعني أنه لا يوجد المزيد من السجلات المتطابقة للإرجاع. ببساطة توقف عن السحب أكثر.
- يمكن تعديل الجزء INDEX(...) من الصيغة لاستخراج أعمدة أخرى. قم بتغيير العمود المشار إليه في الجزء Sheet1!A$2:A$22 إذا كنت ترغب في إرجاع حقول أخرى.
- يمكن توسيع هذه الصيغة للعمل مع معايير متعددة أو لاستخراج الصفوف بأكملها (عن طريق تكرار الصيغة في كل عمود).
4. قد تظهر بعض نتائج التاريخ كأرقام ذات 5 أرقام (أرقام تسلسل Excel). لتحويلها إلى تنسيق تاريخ مقروء، حدد الخلايا المقابلة، انتقل إلى Home التبويب، افتح قائمة التنسيق المنسدلة، واختر Short Date. سيجعل هذا البيانات المستخرجة أكثر وضوحًا وسهولة في الاستخدام.
احتياطات:
- تأكد من أن جميع إدخالات التاريخ في بياناتك الأصلية هي بالفعل بصيغة تاريخ، وليس مخزنة كنص. وإلا فإن الصيغة قد لا تعمل كما هو متوقع.
- قم بتعديل نطاقات المصفوفة إذا تغير حجم بياناتك.
- إذا رأيت أخطاء #NUM! أو #N/A، تحقق من تواريخ الإدخال الفارغة أو عدم الاتساق في بياناتك المصدر.
استخراج جميع السجلات بين تاريخين باستخدام Kutools لـ Excel
إذا كنت تفضل حلاً أكثر انسيابية وتفاعلية، يمكن لميزة تحديد الخلايا المحددة في Kutools لـ Excel مساعدتك في استخراج الصفوف الكاملة المطابقة لنطاق تاريخك بنقرات قليلة، مما يقلل من الحاجة إلى الصيغ أو الإعدادات اليدوية. هذا مناسب بشكل خاص للمستخدمين الذين يتعاملون غالبًا مع مهام تصفية معقدة أو يقومون بعمليات دفعية على مجموعات بيانات كبيرة، حيث يقلل من فرص أخطاء الصيغ ويُسرع سير العمل.
بعد تثبيت Kutools لـ Excel، يرجى اتباع الخطوات أدناه: (تنزيل مجاني الآن لـ Kutools لـ Excel!)
1. أولاً، حدد نطاق مجموعة البيانات التي ترغب في تحليلها واستخراجها منها. بعد ذلك، انقر Kutools > تحديد > تحديد الخلايا المحددة من شريط Excel. يفتح هذا نافذة حوار لاختيار متقدم.
2. في نافذة حوار تحديد الخلايا المحددة:
- حدد خيار "الصف بأكمله" لتحديد الصفوف الكاملة المتطابقة.
- قم بتعيين شرط التصفية: اختر أكبر من وأقل من في قوائم التصفية المنسدلة لعمود التاريخ الخاص بك.
- أدخل يدويًا تاريخ البدء والانتهاء في مربعات النص (تأكد من أن التنسيق يطابق بياناتك).
- تأكد من اختيار المنطق "و" بحيث يتم تطبيق الشرطين معًا في نفس الوقت.

3. انقر موافق. سيقوم Kutools على الفور بتحديد جميع الصفوف التي يتواجد فيها عمود التاريخ ضمن النطاق المحدد. بعد ذلك، اضغط Ctrl + C لنسخ الصفوف المحددة، اذهب إلى ورقة فارغة أو موقع جديد، واضغط Ctrl + V لصق النتائج المستخرجة.
نصائح واحتياطات:
- الطريقة باستخدام Kutools لا تتطلب تغيير بياناتك الأصلية أو كتابة أي صيغ.
- إذا كان لديك تنسيقات تاريخ غير متسقة، قم بمراجعة نتائج الاختيار قبل النسخ.
- استخدم الميزة للتصفية المتكررة أو المهام الدفعية - كرر الخطوات بسرعة لنطاقات تاريخ مختلفة.
- إذا لم تظهر الميزة في إصدار Kutools الخاص بك كما هو موضح، قم بالتحديث إلى أحدث إصدار لتحقيق أفضل توافق.
تحليل السيناريو: هذه الطريقة مثالية للمستخدمين الذين يديرون قوائم تحتوي على العديد من الأعمدة أو لأولئك الذين يحتاجون إلى استخراج السجلات الكاملة بشكل متكرر بناءً على حدود تاريخ متغيرة.
كود VBA - استخدام ماكرو لتصفية جميع الصفوف بين تاريخين محددين تلقائيًا
إذا كان سير عملك غالباً يشمل استخراج البيانات بين تاريخين وتريد أتمتة العملية بالكامل، يمكن أن يكون استخدام ماكرو VBA خيارًا ذكيًا. باستخدام VBA، يمكنك مطالبة المستخدمين بتحديد عمود التاريخ، وإدخال تواريخ البدء والانتهاء، وتصفية الصفوف المتطابقة ونسخها تلقائيًا إلى ورقة جديدة. هذا النهج يوفر الجهد اليدوي ويقلل من الأخطاء، ولكنه يتطلب تمكين الماكرو وبعض المعرفة بمحرر Visual Basic.
إليك كيفية إعداد مثل هذا الماكرو:
1. انقر فوق Developer > Visual Basic لفتح محرر VBA. في نافذة Microsoft Visual Basic for Applications الجديدة، انقر فوق Insert > Module، ثم قم بنسخ ولصق الكود التالي في الوحدة:
Sub ExtractRowsBetweenDates_Final()
'Updated by Extendoffice
Dim wsSrc As Worksheet
Dim wsDest As Worksheet
Dim rngTable As Range
Dim colDate As Range
Dim StartDate As Date
Dim EndDate As Date
Dim i As Long
Dim destRow As Long
Dim dateColIndex As Long
Dim cellDate As Variant
Set wsSrc = ActiveSheet
Set rngTable = Application.InputBox("Select the data table (including headers):", "KutoolsforExcel", Type:=8)
If rngTable Is Nothing Then Exit Sub
Set colDate = Application.InputBox("Select the date column (including header):", "KutoolsforExcel", Type:=8)
If colDate Is Nothing Then Exit Sub
On Error GoTo DateError
StartDate = CDate(Application.InputBox("Enter the start date (yyyy-mm-dd):", "KutoolsforExcel", "", Type:=2))
EndDate = CDate(Application.InputBox("Enter the end date (yyyy-mm-dd):", "KutoolsforExcel", "", Type:=2))
On Error GoTo 0
On Error Resume Next
Set wsDest = Worksheets("FilteredRecords")
On Error GoTo 0
If wsDest Is Nothing Then
Set wsDest = Worksheets.Add
wsDest.Name = "FilteredRecords"
rngTable.Rows(1).Copy
wsDest.Cells(1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsDest.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
End If
destRow = wsDest.Cells(wsDest.Rows.Count, 1).End(xlUp).Row + 1
dateColIndex = colDate.Column - rngTable.Columns(1).Column + 1
For i = 2 To rngTable.Rows.Count
cellDate = rngTable.Cells(i, dateColIndex).Value
If IsDate(cellDate) Then
If cellDate >= StartDate And cellDate <= EndDate Then
rngTable.Rows(i).Copy
wsDest.Cells(destRow, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsDest.Cells(destRow, 1).PasteSpecial Paste:=xlPasteFormats
destRow = destRow + 1
End If
End If
Next i
Application.CutCopyMode = False
wsDest.Columns.AutoFit
MsgBox "Filtered results have been added to '" & wsDest.Name & "'.", vbInformation
Exit Sub
DateError:
MsgBox "Invalid date format. Please enter dates as yyyy-mm-dd.", vbExclamation
End Sub
2. لتشغيل الماكرو، انقر فوق الزر (Run) أو اضغط F5.
ثم اتبع التعليمات لإنجاز الخطوات:
- حدد جدول البيانات (بما في ذلك العناوين) عند ظهور مربع الإدخال الأول، حدد الجدول بالكامل بما في ذلك صف العنوان. انقر موافق.
- حدد عمود التاريخ (بما في ذلك العنوان) عند ظهور مربع الإدخال الثاني، حدد فقط عمود التاريخ بما في ذلك العنوان. انقر موافق.
- أدخل تواريخ البدء والانتهاء سيُطلب منك إدخال تاريخ البدء (التنسيق: yyyy-mm-dd، على سبيل المثال، 2025-06-01)ثم أدخل تاريخ الانتهاء (على سبيل المثال، 2025-06-30)انقر موافق بعد كل واحد.
سيتم إنشاء ورقة عمل باسم FilteredRecords تلقائيًا (إذا لم تكن موجودة بالفعل). سيتم نسخ الصفوف المتطابقة (حيث يتواجد التاريخ بين تواريخ البدء والانتهاء) إلى تلك الورقة. وسيتم إلحاق أي صفوف متطابقة جديدة أسفل النتائج الموجودة في كل مرة تقوم فيها بتشغيل الماكرو.
استكشاف الأخطاء وإصلاحها:
- إذا لم يحدث شيء بعد التشغيل، تحقق من النطاقات المحددة – النطاقات غير الصالحة أو الحوار الملغاة سيؤدي إلى إنهاء الماكرو.
- تأكد من أن إدخالات عمود التاريخ هي تواريخ Excel حقيقية؛ إذا تم تخزينها كنص، قم بتحويلها أولاً لتصفية دقيقة.
تحليل السيناريو: هذا الحل VBA ذو قيمة خاصة للمهام المتكررة، أو سير العمل المتقدم، أو عند مشاركة حل شبه تلقائي مع مستخدمين غير تقنيين - فقط قم بتعيين زر لسهولة تشغيل أكبر.
طرق Excel المدمجة الأخرى - استخدم ميزة الفلتر المدمجة في Excel
بالنسبة للمستخدمين الذين يفضلون أسلوبًا بسيطًا وتفاعليًا دون كتابة صيغ أو أكواد، تقدم ميزة الفلتر المدمجة في Excel طريقة سريعة لعرض واستخراج الصفوف بين تاريخين. هذا مثالي للمهام العرضية، أو الفحص البصري، أو عندما تحتاج إلى العمل مباشرة مع واجهة ورقة العمل. ومع ذلك، فإنه لا يقدم تحديثات تلقائية إذا تغيرت معايير التاريخ أو البيانات – تحتاج إلى تكرار الخطوات لكل جلسة فلترة جديدة.
إليك كيفية استخدامها:
- حدد نطاق بياناتك، مع التأكد من تضمين عناوين الأعمدة.
- انتقل إلى تبويب Data في الشريط، ثم انقر فوق Filter. ستظهر سهام منسدلة صغيرة بجانب كل عنوان.
- انقر فوق السهم لعمود التاريخ واختر Date Filters > Between....
- في مربع الحوار، أدخل تواريخ البدء والانتهاء المطلوبة. تأكد من أن التنسيق يطابق تنسيق تاريخ بياناتك.
- انقر موافق. ستبقى الصفوف ذات التواريخ في النطاق المحدد مرئية فقط.
- حدد جميع الصفوف المرئية، اضغط Ctrl + C للنسخ، اذهب إلى منطقة فارغة أو ورقة أخرى، واضغط Ctrl + V للصق النتائج المصفاة.
نصائح واحتياطات:
- هذه الطريقة هي الأفضل لفحص سريع وبصري أو استخراج عشوائي.
- إذا كان عمود التاريخ يستخدم تنسيقات غير متسقة، قم بتصحيحها مسبقًا لضمان عمل الفلتر بدقة.
- تذكر مسح الفلتر عند الانتهاء لعرض مجموعة البيانات الكاملة مرة أخرى.
- الصفوف المصفاة تكون مخفية، ولم يتم حذفها – تبقى بياناتك الأصلية سليمة.
تحليل السيناريو: فلتر Excel المدمج هو الأنسب للجداول ذات الحجم المعتدل وعندما تحتاج إلى معاينة أو نسخ مجموعات فرعية بسرعة دون حفظ الصيغ أو الماكرو.
استكشاف الأخطاء وإصلاحها وملاحظات الخلاصة:
- تأكد دائمًا من أن خلايا التاريخ لديك مُنسَّقة بشكل متسق عبر ورقة العمل لجميع الحلول للعمل بشكل صحيح.
- عند استخدام الصيغ أو VBA، قم بضبط إشارات الأعمدة والنطاقات لتتناسب مع هيكل ورقة العمل الفعلي لتجنب أخطاء الفهرسة أو الإشارات.
- لتحسين الأداء على مجموعات البيانات الكبيرة جدًا، عادةً ما تقدم Kutools أو التصفية المدمجة نتائج أسرع وهي أقل عرضة لتجاوز حدود الذاكرة/الحساب المفرطة مقارنة بالصيغ المصفوفة الموسعة.
- إذا واجهت فراغات غير متوقعة أو سجلات مفقودة في النتائج، قم بمراجعة شروط التاريخ، نطاقات الإدخال، وتنسيقات البيانات للتأكد من أنها مضبوطة كما هو مطلوب.
عرض توضيحي: استخراج جميع السجلات بين تاريخين باستخدام Kutools لـ Excel
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!