لنفكر في نسخة محسنة من الدالة VLOOKUP - VLOOKUP3، والتي تمنحنا الفرصة لاستبدال القيم عند تطابق شرطين. يمكن أن تكون هذه الوظيفة مفيدة في الحالات التي لا يكون لدينا فيها قيم فريدة في المجال الذي نحتاج إلى إجراء مجموعة عليه.
لنفترض أننا بحاجة إلى الانضمام إلى جدولين، ولكن ليس لدينا قيم فريدة:
كما ترون، لدينا مقترضون يحملون نفس الألقاب واتفاقيات الائتمان بنفس الأرقام. تتحد مع وظيفة عادية VLOOKUP ستكون مشكلة لأنها تطابق شرطًا واحدًا فقط في كل مرة وتم العثور على القيمة الأولى فقط.
دعونا نعيد VLOOKUP المعتاد لاستبدال القيم وفقًا لشرطين.
افتح القائمة الخدمة - ماكرو - المحرر Visual Basic , أدخل الوحدة الجديدة (قائمة طعام Inser - Module ) وانسخ نص هذا هناك المهام:
Function VLOOKUP3(Table1 As Range, _ SearchValue1 As Variant, _ Table2 As Range, _ SearchValue2 As Variant,_ ResultColumn As Range) 'moonexcel.com.ua Dim i As Integer For i = 1 To Table1.Rows.Count If Table1.Cells(i, 1) = SearchValue1 Then If Table2.Cells(i, 1) = SearchValue2 Then VLOOKUP3 = ResultColumn.Cells(i, 1) Exit For End If End If Next i End Function
أغلق المحرر Visual Basic والعودة إلى Excel.
في هذه اللحظة معالجات الوظائف في هذه الفئة تعريف المستخدم يمكنك العثور على وظيفة VLOOKUP3 الخاصة بنا واستخدامها. بناء جملة الدالة كما يلي:
=VLOOKUP3( النطاق1 ; searched_value1 ; النطاق2 ; searched_value2 ; النطاق الذي نستبدل القيم منه )
وذلك من أجل استبدال مبلغ القرض بشكل صحيح بالاسم الأخير ورقم الاتفاقية في الخلية E15 سوف تحتاج إلى إدخال:
=VLOOKUP3($A$2:$A$11; A15; $B$2:$B$11; B15; $C$2:$C$11)
ولا تنس أيضًا تثبيت النطاقات بعلامة الدولار ($) ، حتى لا نفوت النطاقات عند نسخ الصيغة (للإصلاح السريع، يمكنك أيضًا استخدام المفتاح F4).