إجمالي مرات مشاهدة الصفحة

السبت، 16 أبريل 2016

إيجاد القيمة المفلترة Display Filtered Value

السلام عليكم ورحمة الله وبركاته

أقدم لكم طريقتين لإيجاد أو إظهار القيمة المفلترة في نطاق ، أي القيمة التي تمت التصفية على أساسها.
بفرض أن لدينا النطاق A1:A20 به مجموعة من الأسماء وتمت تصفية أو فلترة النطاق على أساس اسم محدد وليكن Yasser ، والمطلوب أن يظهر هذا الاسم في خلية.
الطريقة الأولى باستخدام معادلة صفيف (أي بعد الإدخال يجب الضغط على
Ctrl + Shift + Enter)
:
 =IFERROR(INDEX(A2:A20,MATCH(1,(SUBTOTAL(3,OFFSET(A2:A20,ROW(A2:A20)-MIN(ROW(A2:A20)),0,1)))*(A2:A20<>""),0)),"")  

الطريقة الثانية باستخدام دالة معرفة :
والدالة المعرفة User Defined Function يمكن استخدامها كدوال الإكسيل العادية أو يمكن استخدامها واستدعائها من إجراء فرعي آخر داخل مشروع محرر الأكواد
الدالة المعرفة UDF بالشكل التالي ، وتوضع في موديول عادي
Function FilterCriteria(Rng As Range) As String
    Dim Filter As String
    
    Filter = ""
    On Error GoTo Finish
    
    With Rng.Parent.AutoFilter
        If Intersect(Rng, .Range) Is Nothing Then GoTo Finish
        With .Filters(Rng.Column - .Range.Column + 1)
            If Not .On Then GoTo Finish
            Filter = .Criteria1
            
            Select Case .Operator
            Case xlAnd
                Filter = Filter & " AND " & .Criteria2
            Case xlOr
                Filter = Filter & " OR " & .Criteria2
            End Select
        End With
    End With
    
Finish:
    FilterCriteria = Filter
End Function

ويمكن استخدامها في ورقة العمل بوضع المعادلة التالية في أي خلية :

 =MID(FilterCriteria(A2:A20),2,LEN(FilterCriteria(A2:A20)))  

وهذه صورة من الملف المرفق حيث يتم تصفية النطاق بشرط الاسم Yasser ، فتظهر القيمة المفلترة في الخلية C1 باستخدام معادلة الصفيف ، و في الخلية E1 باستخدام الدالة المعرفة.

إعداد / ياسر خليل أبو البراء

هناك تعليق واحد:

  1. .انضم إلى eToro وقُد ثورة التكنولوجيا المالية

    اكتشف eToro شبكة التداول الاجتماعي الرائدة في العالم حيث يحقق ملايين المستخدمين أرباحًا عن طريق نسخ تصرفات التداول التي يقوم بها أفضل المتداولين.

    ردحذف