كيف تجد أول أو آخر رقم موجب أو سالب في Excel؟
عند التعامل مع عمود يحتوي على أرقام تتضمّن قيمًا موجبة وسالبة، قد تجد نفسك بحاجةٍ متكررة إلى تحديد أول أو آخر رقم موجب أو سالب في النطاق بسرعة. ويُعدّ هذا الأمر مفيدًا بشكل خاص في تحليل البيانات، وكشف الاتجاهات، أو تحديد نقاط إدخال معيّنة ضمن مجموعات بيانات ضخمة. ويعتبر الاعتماد على الفحص اليدوي في هذه الحالات غير فعّال وعرضةً للخطأ. لحسن الحظ، يوفّر Excel عدة طرق عملية لتبسيط هذه المهمة، تتيح لك استخراج القيم الدقيقة التي تحتاجها باستخدام الصيغ أو الأتمتة. فيما يلي مجموعة من الحلول المصممة لتلبية سيناريوهات متنوعة، بما في ذلك الأساليب المتقدمة المثالية للمهام المتكررة أو الواسعة النطاق.
العثور على الرقم الموجب/السالب الأول باستخدام صيغة مصفوفة
العثور على الرقم الموجب/السالب الأخير باستخدام صيغة مصفوفة
ماكرو VBA للعثور على الرقم الموجب/السالب الأول/الأخير
العثور على الرقم الموجب/السالب الأول باستخدام صيغة مصفوفة
لاستخراج الرقم الموجب أو السالب الأول من سلسلة قيم، يمكنك استخدام صيغ مصفوفة في Excel. هذه الطريقة مثالية للمستخدمين الذين يحتاجون إلى حل سريع لمجموعات بيانات معتدلة الحجم، ويشعرُون بالراحة في التعامل مع الصيغ—خاصةً في البيئات التي تكون فيها الإضافات أو ماكروهات VBA مقيدة. ونظرًا لأن النهج القائم على المصفوفة يتجدد تلقائيًا عند تغيُّر البيانات الأصلية، فهو خيارٌ ممتاز للقوائم الديناميكية. إليك كيفية تنفيذه:
1. حدد خلية فارغة، ثم أدخل صيغة المصفوفة التالية للحصول على أول رقم موجب:
=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0)) هنا، يشيرA2:A18 إلى قائمة البيانات التي تريد البحث فيها. تقوم هذه الصيغة بتحديد أول خلية في النطاق تحتوي على قيمة أكبر من 0، ثم تُعيد محتوى تلك الخلية. انظر لقطة الشاشة التالية:

2. بعد كتابة الصيغة، اضغط علىCtrl + Shift + Enter معًا، بدلًا من الضغط على مفتاح Enter فقط. سيؤدي ذلك إلى تنفيذ صيغة المصفوفة بشكل صحيح وإرجاع أول رقم موجب من قائمتك، كما هو موضح في المثال أدناه:

تلميح:لاسترداد الرقم السالب الأول بدلاً من ذلك، استخدم ببساطة هذه الصيغة (تذكر الضغط على)Ctrl + Shift + Enterبعد الكتابة):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0)) في كلتا الصيغتين، يؤدي تغيير الشرط ()>0 للأرقام الموجبة،<0 للأرقام السالبة) إلى استهداف نوع الرقم المطلوب. يُرجى ملاحظة أن صيغ المصفوفة لا تدعم مراجع الخلايا الفارغة، لذا تأكد من أن نطاق بياناتك خالٍ من الخلايا الفارغة للحصول على نتائج متسقة. إذا كانت جميع الأرقام إما موجبة أو سالبة، فقد تُرجع الصيغة خطأً—فكّر في استخدام دالةIFERROR لإخفاء الأخطاء وعرض رسالة مخصصة بدلاً منها.
ملاحظة:في إصدارات Excel الحديثة (Office 365 وExcel 2021 والإصدارات الأحدث)، قد لا تحتاج إلى استخدامCtrl + Shift + Enter؛ فقد يكفي الضغط علىEnter بفضل دعم المصفوفات الديناميكية.
العثور على الرقم الموجب/السالب الأخير باستخدام صيغة مصفوفة
إذا كان هدفك هو تحديد القيمة الموجبة أو السالبة الأخيرة في عمود، فيمكنك استخدام صيغة مصفوفة مختلفة. يناسب هذا النهج تحليل الاتجاهات النهائية بسرعة أو تحديد أحدث نقطة بيانات لنوع معين تحديد النوع. لاحظ أن هذه الطريقة تعكس تحديثات البيانات ديناميكيًا، وهو أمر قيّم بشكل خاص عند إلحاق أرقام جديدة بالقائمة بانتظام.
1. حدد خلية فارغة بجانب عمود البيانات الخاص بك، ثم أدخل صيغة المصفوفة التالية لإيجاد آخر رقم موجب:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)) تعمل هذه الصيغة بالاستفادة من سلوك دالةLOOKUP في إرجاع آخر تطابق رقمي تم العثور عليه بالنسبة لرقم كبير جدًّا. هنا، تقوم الصيغةIF($A$2:$A$18 >0, $A$2:$A$18) بتصفية الأرقام الموجبة فقط، ثم تُرجع دالةLOOKUP آخر ظهور لها. انظر التوضيح أدناه:

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

لإرجاع الرقم السالب الأخير، استخدم صيغة المصفوفة التالية بدلاً من ذلك، مع الضغط أيضًا علىCtrl + Shift + Enter:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18)) إذا لم يتم العثور على أي قيمة موجبة أو سالبة، فستُرجع الصيغة خطأً ()#N/A). وللتعامل مع مثل هذه الحالات بلطف، غلّف الصيغة بدالةIFERROR. على سبيل المثال:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found") من المهم تجنّب التنسيقات التي تحتوي على خلايا مدمجة أو مزيج من النصوص والأرقام في نطاقك، إذ قد تؤدي إلى تعطيل نتائج حساب الصيغة. لذا، تأكد دائمًا من سلامة بياناتك قبل تطبيق هذه الطرق لتحقيق أقصى درجات الدقة.
ماكرو VBA للعثور على الرقم الموجب/السالب الأول/الأخير
إذا كنت بحاجةٍ متكررةٍ إلى تحديد الرقم الموجب أو السالب الأول أو الأخير ضمن نطاقات متعددة أو مجموعات بيانات ضخمة، فإن أتمتة هذه المهمة باستخدام ماكرو VBA توفر وقتك الثمين وتقلل الأخطاء اليدوية بشكل كبير. يمكّنك هذا الحل من البحث داخل النطاق المحدد واسترجاع القيمة المطلوبة فورًا، مما يجعله الخيار الأمثل للمعالجة الدفعية والمهام التحليلية المتكررة. ويُعد نهج VBA مثاليًا خصوصًا في السيناريوهات التي تتطلب معايير معقدة أو سير عمل مخصص، رغم أنه يتطلب معرفةً أساسيةً بأدوات المطور في Excel.
1. انقر علىDeveloper > Visual Basic لفتح نافذةMicrosoft Visual Basic for Applications. بعد ذلك، في محرر VBA، انقر علىInsert > Module، ثم انسخ الكود التالي إلى الوحدة الجديدة:
Sub FindFirstOrLastPosNegNumber()
Dim rng As Range
Dim cell As Range
Dim result As Variant
Dim firstPos As Variant, firstNeg As Variant
Dim lastPos As Variant, lastNeg As Variant
Dim selType As String
On Error Resume Next
Set rng = Application.InputBox("Select the data range", "KutoolsforExcel", Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
selType = Application.InputBox("Type 'FirstPos' for first positive, 'FirstNeg' for first negative, 'LastPos' for last positive, or 'LastNeg' for last negative:", "KutoolsforExcel", "FirstPos", Type:=2)
If selType = "" Then Exit Sub
firstPos = Empty
firstNeg = Empty
lastPos = Empty
lastNeg = Empty
' Find first positive and first negative
For Each cell In rng
If IsNumeric(cell.Value) Then
If firstPos = Empty And cell.Value > 0 Then
firstPos = cell.Value
End If
If firstNeg = Empty And cell.Value < 0 Then
firstNeg = cell.Value
End If
If cell.Value > 0 Then
lastPos = cell.Value
End If
If cell.Value < 0 Then
lastNeg = cell.Value
End If
End If
Next cell
Select Case UCase(selType)
Case "FIRSTPOS"
result = firstPos
Case "FIRSTNEG"
result = firstNeg
Case "LASTPOS"
result = lastPos
Case "LASTNEG"
result = lastNeg
Case Else
result = "Invalid input"
End Select
If IsEmpty(result) Then
MsgBox "No matching value found in the selected range.", vbInformation, "KutoolsforExcel"
Else
MsgBox "Result: " & result, vbInformation, "KutoolsforExcel"
End If
End Sub 2. لتنفيذ الماكرو، اضغط علىF5(أو انقر على زر)
Run)، ثم اتبع الخطوات التالية:
- سيعرض لك مربع حوار يطلب منك تحديد نطاق الأرقام الخاص بك (مثلًا، A2:A18).
- بعد ذلك، أدخل نوع البحث الخاص بك: اكتبFirstPos للعثور على أول رقم موجب، أوFirstNeg لأول رقم سالب، أوLastPos لآخر رقم موجب، أوLastNeg لآخر رقم سالب (غير حساس لحالة الأحرف).
- بعد إدخال اختيارك وتأكيده، ستظهر النتيجة في مربع رسالة.
نصائح:
- يمكن لهذه الـ macro معالجة أي نطاق متصل من الأرقام يحدده المستخدم، مما يوفّر مرونة فائقة في تخطيط البيانات.
- إذا لم يتطابق النوع المحدد مع أي رقم في النطاق، فستتلقى إشعارًا بدلاً من ظهور خطأ.
- تأكد من تفعيل وحدات الماكرو (Macros) في برنامج Excel لديك لتشغيل كود VBA.
- إذا احتوت بياناتك على قيم غير رقمية، فسيتم تجاهلها تلقائيًا بواسطة الـ macro أثناء المعالجة.
استكشاف الأخطاء وإيجاد الحلول:بالنسبة إلى جميع الحلول، تأكد دائمًا من أن نطاق تحديده يحتوي على النطاق المطلوب ولا يشمل العناوين. وإذا كنت تستخدم نطاقات كبيرة، ففكّر في تقليل حجمها لتجنب التأخير في الحسابات أو تراجع الأداء، خاصةً عند استخدام صيغ المصفوفة أو الماكرو.
إذا وجدت نفسك تؤدي هذه المهمة مرارًا أو رغبت في مزيد من التخصيص، ففكّر في دمج معايير متعددة ضمن ماكروك الخاص أو إنشاء زر مخصص لوصولٍ أسهل. احفظ عملك دائمًا قبل تجربة أي نصوص VBA جديدة، واختبرها على نسخ احتياطية إذا كنت جديدًا في عالم البرمجة.
مقالات ذات صلة:
كيف تجد القيمة الأولى أو الأخيرة الأكبر من X في Excel؟
كيف تجد القيمة الأعلى في صفٍ ما، ثم تُرجع عنوان العمود المقابل لها في Excel؟
كيف يمكنك العثور على القيمة الأعلى في Excel وإرجاع القيمة الموجودة في الخلية المجاورة لها؟
كيف تجد القيمة العظمى أو القيمة الدنيا وفقًا لمعايير محددة في Excel؟
أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في 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.
- حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
- برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل