Vlookup VBA का उपयोग कर कई शर्तें
निम्नलिखित डेटा तालिका पर विचार करें:
एक्सेल के भीतर मानक Vlookup फ़ंक्शन का निम्न स्वरूप है:
VLOOKUP ("" मार्क ", B6: G12", 2, FALSE)
जो "ब्राउन" लौटाएगा।
हालाँकि, यदि हम उपरोक्त तालिका में 2 या अधिक शर्तों जैसे प्रथम नाम, अंतिम नाम और आयु को देखना चाहते हैं तो क्या होगा? निम्नलिखित यूडीएफ हमें ऐसा करने की अनुमति देता है:
123456789101112131415161718192021222324252627282930313233343536373839 | फंक्शन थ्रीपैरामीटर वीलुकअप (डेटा_रेंज अस रेंज, कर्नल अस इंटीजर, पैरामीटर 1 वैरिएंट के रूप में, पैरामीटर 2 वैरिएंट के रूप में, पैरामीटर 3 वैरिएंट के रूप में) वैरिएंट के रूप में'चर घोषित करें'मंद सेलडिम करेंट_रो इंटीजर के रूप मेंDim No_Of_Rows_in_Range as Integerडिम No_of_Cols_in_Range as Integerमंद मिलान_पंक्ति के रूप में पूर्णांक'डिफ़ॉल्ट रूप से उत्तर को एन/ए पर सेट करें'थ्रीपैरामीटर वीलुकअप = सीवीईआर (xlErrNA)मैचिंग_रो = 0करंट_रो = 1No_Of_Rows_in_Range = Data_Range.Rows.CountNo_of_Cols_in_Range = Data_Range.Columns.Count'जांचें कि क्या कर्नल श्रेणी में स्तंभों की संख्या से अधिक है'अगर (कर्नल > No_of_Cols_in_Range) तोथ्रीपैरामीटर वीलुकअप = सीवीईआर (xlErrRef)अगर अंतअगर (कर्नल <= No_of_Cols_in_Range) तोकरनाअगर ((Data_Range.Cells(Current_Row, 1).Value = Parameter1) और _(Data_Range.Cells(Current_Row, 2).Value = Parameter2) और _(Data_Range.Cells(Current_Row, 3).Value = Parameter3) तबमैचिंग_रो = करंट_रोअगर अंतकरंट_रो = करंट_रो + 1लूप तक ((Current_Row = No_Of_Rows_in_Range) या (Matching_Row 0))अगर मैचिंग_रो 0 तोThreeParameterVlookup = Data_Range.Cells(Matching_Row, Col)अगर अंतअगर अंतअंत समारोह |
इसमें निम्नलिखित सिंटैक्स है:
तीन पैरामीटर वी लुकअप (डेटा_रेंज, कर्नल, पैरामीटर 1, पैरामीटर 2, पैरामीटर 3)
कहा पे:
• Data_Range डेटा की रेंज है
• आवश्यक कॉलम के लिए कर्नल एक पूर्णांक है
• Parameter1, Parameter2 और Parameter3 क्रमशः पहले तीन कॉलम के मान हैं
ताकि:
=ThreeParameterVlookup(B6:G12,6,"Mark",,"Brown",7) "टॉलवर्थ" लौटाएगा क्योंकि यह "मार्क", "ब्राउन" और 7 पर एक मैच है और 6 वें कॉलम का संदर्भ है
ध्यान दें कि यह फ़ंक्शन (गतिशील) नामित श्रेणियों के साथ भी काम करेगा:
=ThreeParameterVlookup(named_range,6,"Adrian",,"White",7) "Chessington" लौटाएगा जहां हमने "Named_Range" नामित रेंज सेट की है।
यदि एक्सेल एक मैच का पता नहीं लगा सकता है तो डिफ़ॉल्ट रूप से "एन / ए" वापस कर दिया जाता है। वास्तव में, फ़ंक्शन प्रारंभ में N/A का मान मान लेता है और फिर केवल तभी बदलता है जब उसे सटीक मिलान मिलता है।
साथ ही यदि कर्नल का मान स्तंभों की संख्या से अधिक है तो एक संदर्भ त्रुटि उत्पन्न होती है।
इस ट्यूटोरियल के लिए .XLSM फ़ाइल डाउनलोड करने के लिए, यहाँ क्लिक करें