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

كيف تجد القيمة العظمى أو القيمة الدنيا ضمن نطاق تواريخ معيَّن (بين تاريخين) في Excel؟

المؤلفSiluviaتاريخ التعديل

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

لقطة شاشة تُظهر جدول إكسل يحتوي على تواريخ وقيم لحساب القيمة العظمى أو الصغرى ضمن نطاق تاريخي


العثور على القيمة العظمى أو القيمة الدنيا في نطاق التاريخ معيَّن باستخدام صيغ المصفوفة

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

افترض أن تواريخ قائمة ورقة العمل موجودة في العمود A (A5:A17)، والقيم المقابلة لها في العمود B (B5:B17)، مع تحديد تاريخ البداية في الخلية B1 وتاريخ الانتهاء في الخلية D1.

1. حدد الخلية الفارغة التي ترغب في عرض النتيجة بها (مثل E2).

العثور على القيمة العليا بين 1/7/2016 و1/12/2016:

2. أدخل الصيغة التالية في الخلية المحددة. بعد التعديل، اضغطCtrl+Shift+Enter (وليس Enter فقط)، ليتعرف Excel عليها كصيغة مصفوفة:

=MAX(IF((A5:A17=$B$1),B5:B17,""))

تتحقق هذه الصيغة من التواريخ الواقعة بين تاريخ البداية وتاريخ الانتهاء، وتحسب القيمة العظمى فقط بناءً على القيم الموجودة في الصفوف المطابقة.

لقطة شاشة تُظهر نتيجة إيجاد القيمة العظمى ضمن نطاق تاريخي باستخدام صيغة مصفوفة في إكسل

العثور على القيمة الدنيا بين 1/7/2016 و1/12/2016:

3. لإيجاد القيمة الصغرى ضمن نفس نطاق التاريخ، استخدم نهجًا مشابهًا. أدخل الصيغة التالية (ومجددًا، تأكّد بالضغط على)Ctrl+Shift+Enter):

=MIN(IF((A5:A17=$B$1), B5:B17, ""))

تعمل هذه الصيغة بنفس الطريقة، لكنها تُرجع القيمة الدنيا التي تطابق معايير التاريخ الخاصة بك.

لقطة شاشة تُظهر نتيجة إيجاد القيمة الصغرى ضمن نطاق تاريخي باستخدام صيغة مصفوفة في إكسل

ملاحظات:

  • في الأمثلة أعلاه، يُعدّA5:A17 النطاق الذي يحتوي على تواريخك، و$B$1 هو تاريخ البدء، و$D$1 هو تاريخ الانتهاء، بينما يمثلB5:B17 نطاق القيم التي ترغب في تقييمها. لا تنسَ تعديل هذه المراجع لتناسب بياناتك الفعلية!
  • تأكد من أن النطاقين اللذين تشير إليهما متساويان في الطول؛ وإلا فقد تُنتج الصيغة أخطاءً.
  • تأكد مرتين من أن إدخالات التواريخ لديك منسَّقة كتواريخ وليس كنص، وإلا فقد لا تعمل الصيغة بالشكل المتوقع.

نصائح:

  • إذا كنت تعمل مع Office 365 أو Excel 2021 أو الإصدارات الأحدث، فيمكنك استخدام دالتيMAXIFS وMINIFS لإجراء عمليات حسابية تعتمد على معايير بسهولة أكبر.
  • إذا أعادت الصيغة قيمة 0 أو خلية فارغة بشكل غير متوقع، فتأكد من أن نطاق التاريخ الذي حددته يتداخل مع تواريخ البيانات المتاحة، وافحص بدقة عن أي خلايا فارغة قد تكون غابت عن عينك.

شفرة VBA: العثور تلقائيًّا على القيمة العظمى أو القيمة الدنيا في نطاق تاريخ محدد

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

1. انتقل إلىالمطور > Visual Basic. في نافذة محرر VBA التي تظهر، انقرإدراج > وحدة نمطية (Module)، ثم انسخ والصق الشفرة التالية في الوحدة النمطية الجديدة:

Sub FindMaxMinInDateRange_Robust()
    Dim ws As Worksheet
    Dim dateRange As Range, valueRange As Range
    Dim startCell As Range, endCell As Range
    Dim startDate As Date, endDate As Date
    Dim i As Long
    Dim d As Date, v As Variant
    Dim hasHit As Boolean
    Dim maxV As Double, minV As Double
    Const TITLE As String = "KutoolsforExcel"
    
    On Error GoTo FailFast
    
    Set ws = ActiveSheet
    
    
    Set dateRange = Application.InputBox("Select the DATE range:", TITLE, Type:=8)
    If dateRange Is Nothing Then Exit Sub
    Set valueRange = Application.InputBox("Select the VALUE range (same rows as date range):", TITLE, Type:=8)
    If valueRange Is Nothing Then Exit Sub
    
    If dateRange.Rows.Count <> valueRange.Rows.Count Then
        MsgBox "Date range and value range must have the SAME number of rows.", vbExclamation, TITLE
        Exit Sub
    End If
    
   
    Set startCell = Application.InputBox("Select START date cell:", TITLE, Type:=8)
    If startCell Is Nothing Then Exit Sub
    Set endCell = Application.InputBox("Select END date cell:", TITLE, Type:=8)
    If endCell Is Nothing Then Exit Sub
    
    If Not IsDate(startCell.Value) Or Not IsDate(endCell.Value) Then
        MsgBox "Start/End cell must contain valid dates.", vbExclamation, TITLE
        Exit Sub
    End If
    
    startDate = CDate(startCell.Value)
    endDate = CDate(endCell.Value)
 
    If startDate > endDate Then
        Dim tmp As Date
        tmp = startDate: startDate = endDate: endDate = tmp
    End If
    

    For i = 1 To dateRange.Rows.Count
        If IsDate(dateRange.Cells(i, 1).Value) Then
            d = CDate(dateRange.Cells(i, 1).Value)
            If d >= startDate And d <= endDate Then
                v = valueRange.Cells(i, 1).Value
                If IsNumeric(v) And Not IsEmpty(v) Then
                    If Not hasHit Then
                        maxV = CDbl(v): minV = CDbl(v)
                        hasHit = True
                    Else
                        If CDbl(v) > maxV Then maxV = CDbl(v)
                        If CDbl(v) < minV Then minV = CDbl(v)
                    End If
                End If
            End If
        End If
    Next i
    
    If hasHit Then
        MsgBox "Max value in range: " & maxV & vbCrLf & _
               "Min value in range: " & minV, vbInformation, TITLE
    Else
        MsgBox "No rows matched the date range (or values were non-numeric).", vbExclamation, TITLE
    End If
    Exit Sub

FailFast:
    MsgBox "Something went wrong: " & Err.Description, vbExclamation, TITLE
End Sub

2. لتشغيل الماكرو، انقر على زرزر التشغيلالتشغيل في محرر VBA (أو اضغط)F5). بعد ذلك، اتبع التعليمات لتحديد نطاقات التواريخ والقيم، وإدخال تاريخ البداية وتاريخ الانتهاء. سيتم عرض القيمة العظمى والقيمة الدنيا الناتجتين عن الفترة الزمنية التي حددتها في مربع حوار.

نصائح:

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

طرق Excel المدمجة الأخرى: استخدام جدول PivotTable لتصفية البيانات وعرض القيمة العظمى/الصغرى حسب نطاق التاريخ

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

1. حدد جدولك (بما في ذلك التواريخ والقيم)، ثم انتقل إلى تبويبإدراجوانقر علىجدول PivotTable.

2. في مربع حوارإنشاء جدول PivotTable، اختر مكان وضع جدول PivotTable، ثم انقر علىموافق.

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

4.لتصفية البيانات حسب نطاق تاريخ معيّن، انقر على القائمة المنسدلة في تسميات الصفوف الخاصة بحقلالتاريخ، ثم اخترمرشحات التاريخ > بين...، وحدّد تاريخ البداية وتاريخ الانتهاء (مثلاً، من)2016/7/1 إلى2016/12/1)، ثم انقر علىموافق.

سيعرض جدول PivotTable الآن القيمة العظمى أو القيمة الدنيا لكل تاريخ ضمن النطاق المحدد. وإذا كنت بحاجة إلى أعلى قيمة أو أدنى قيمة واحدة فقط خلال تلك الفترة، فيمكنك تطبيق تصفية إضافية أو فحص النتيجة المُلخَّصة بصريًّا.

ملاحظات:

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

نصائح:

  • أضفشريحة تصفية (Slicer)إلى حقل التاريخ ()تحليل جدول PivotTable > إدراج شريحة تصفية) لتغيير النطاقات بشكل تفاعلي.
  • هل تبحث عن قيمة عظمى أو صغرى واحدة تمثّل كامل نطاق البيانات بعد التصفية؟ بعد إتمام التصفية، قم بفرز عمود القيم أو أضف حقل قيم ثانٍ وغيّره إلىالقيمة العظمى/القيمة الصغرى.
  • اجمع بينه وبينمخطط PivotChartللحصول على ملخص بصري يتجدد تلقائيًا مع كل تغيير في عوامل التصفية الخاصة بك.

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


مقالات ذات صلة:

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

🤖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 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل