كيفية البحث عن قيمة وإرجاع عدة قيم مطابقة في Excel؟

يتناول هذا الدليل كيفية البحث عن قيمة وإرجاع عدة قيم مطابقة في Excel كما هو موضح في لقطات الشاشة أدناه:
البحث عن قيمة وإرجاع عدة قيم مطابقة باستخدام صيغة صفيف
البحث عن قيمة وإرجاع عدة قيم مطابقة باستخدام صيغة صفيف
إليك صيغة صفيف طويلة يمكن أن تساعدك في البحث عن قيمة وإرجاع عدة قيم مطابقة.
1. أدخل القيمة التي تريد البحث عنها في خلية فارغة. انظر الصورة:
2. في الخلية المجاورة، اكتب هذه الصيغة =IF(ISERROR(INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$D$4,ROW($A$1:$A$7)),ROW(1:1)),2)),"",
INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$D$4,ROW($A$1:$A$7)),ROW(1:1)),2)) فيها، ثم اضغط على Shift + Ctrl + Enter معًا، ثم اسحب التعبئة التلقائية لملء الخلايا للأسفل حتى تظهر أول خلية فارغة. انظر الصورة:
ملاحظة: في الصيغة أعلاه، $A$1:$B$7 تشير إلى نطاق البيانات، $A$1:$A$7 تمثل نطاق العمود الذي تبحث فيه عن القيمة، $D$4 تشير إلى الخلية التي أدخلت فيها قيمة البحث في الخطوة1، و2 تعني البحث عن القيم المطابقة في العمود الثاني.
البحث عن قيمة وإرجاع عدة قيم مطابقة باستخدام تصفية
في Excel، يمكنك أيضًا استخدام ميزة التصفية لحل هذه المشكلة.
1. حدد نطاق العمود الذي تريد البحث فيه عن القيمة، ثم انقر على البيانات > تصفية. انظر الصورة:
2. بعد ذلك، انقر على زر السهم في أول خلية من النطاق الذي حددته، وحدد فقط القيمة التي تريد البحث عنها من القائمة المنسدلة. انظر الصورة:
3. انقر موافق، وستلاحظ أنه تم تصفية قيمة البحث والقيم المطابقة لها فقط.
البحث عن قيمة وإرجاع عدة قيم مطابقة باستخدام دالة معرفة
إذا كنت مهتمًا باستخدام الدالة المعرفة، يمكنك أيضًا حل المشكلة باستخدامها.
1. اضغط على مفاتيح Alt + F11 لفتح نافذة Microsoft Visual Basic For Applications.
2. انقر على Module > إدراج لإدراج نافذة Module، ثم انسخ الكود البرمجي VBA أدناه إلى النافذة.
VBA: البحث عن قيمة وإرجاع عدة قيم مطابقة.
Function MyVlookup(pWorkRng As Range, pRng As Range, pColumnIndex As Integer, Optional pType As String = "v")
'Updateby20140827
Dim xRow As Single
Dim xCol As Single
Dim arr() As Variant
ReDim arr(0)
For i = 1 To pRng.Rows.Count
If pWorkRng = pRng.Cells(i, 1) Then
arr(UBound(arr)) = pRng.Cells(i, pColumnIndex)
ReDim Preserve arr(UBound(arr) + 1)
End If
Next
If pType = "h" Then
xCol = Range(Application.Caller.Address).Columns.Count
For i = UBound(arr) To xCol
arr(UBound(arr)) = ""
ReDim Preserve arr(UBound(arr) + 1)
Next
ReDim Preserve arr(UBound(arr) - 1)
MyVlookup = arr
Else
xRow = Range(Application.Caller.Address).Rows.Count
For i = UBound(arr) To xRow
arr(UBound(arr)) = ""
ReDim Preserve arr(UBound(arr) + 1)
Next
ReDim Preserve arr(UBound(arr) - 1)
MyVlookup = Application.WorksheetFunction.Transpose(arr)
End If
End Function
3. أغلق النافذة، ثم اكتب هذه الصيغة في خلية =MyVlookup(A10,$A$2:$B$7,2) (A10 تشير إلى قيمة البحث، $A$2:$B$7 تشير إلى نطاق البيانات، و2 تعني رقم فهرس العمود). ثم اضغط على مفاتيح Shift + Ctrl + Enter. بعد ذلك، اسحب مقبض التعبئة لأسفل الخلايا، وضع المؤشر في شريط الصيغة، واضغط على Shift + Ctrl + Enter مرة أخرى.
نصيحة: إذا كنت تريد إرجاع القيم في خلايا أفقية، يمكنك كتابة هذه الصيغة =MyVlookup(A10, $A$2:$B$7,2, "h").
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!