كيفية استخراج جميع السجلات بين تاريخين في 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
أفضل أدوات زيادة الإنتاجية لمجموعة Office
عزز مهاراتك في Excel مع Kutools لـ Excel، وتمتع بكفاءة غير مسبوقة. يقدم Kutools لـ Excel أكثر من300 ميزة متقدمة لتعزيز الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يجلب تجربة التبويبات إلى Office، ويجعل عملك أسهل بكثير
- فعّل تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint
- افتح وأنشئ مستندات متعددة في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ جديدة.
- يمنحك زيادة إنتاجية تصل إلى50% ويوفر عليك مئات النقرات يومياً!