Excel-VLOOKUP बनाम INDEX/MATCH-कौन सा बेहतर है?



indexing (1)

मैं समझता हूं कि प्रत्येक विधि का उपयोग कैसे करें: VLOOKUP (या HLOOKUP ) बनाम INDEX / MATCH

मैं व्यक्तिगत प्राथमिकता के संदर्भ में उनके बीच मतभेदों की तलाश कर रहा हूं, लेकिन मुख्य रूप से निम्नलिखित क्षेत्रों में:

  1. क्या ऐसा कुछ है जो एक विधि ऐसा कर सकती है जो दूसरा नहीं कर सकता है?

  2. कौन सा सामान्य रूप से अधिक कुशल है (या यह स्थिति पर निर्भर करता है)?

  3. एक विधि बनाम दूसरे का उपयोग करने के लिए कोई अन्य लाभ / नुकसान

नोट : मैं यहाँ अपने प्रश्न का उत्तर दे रहा हूँ, लेकिन यह देखने के लिए कि क्या किसी और के पास अन्य जानकारियां हैं जिनके बारे में मैंने नहीं सोचा था


मैं व्यावहारिक रूप से हर स्थिति में INDEX / MATCH का उपयोग करना पसंद करता हूं क्योंकि यह कहीं अधिक लचीला है और लुकअप टेबल कितनी बड़ी है, इस पर निर्भर करता है।

एकमात्र समय जब मैं VLOOKUP का उपयोग करके वास्तव में सही ठहरा सकता हूं, वह बहुत सीधे-फॉरवर्ड टेबल के लिए है जहां कॉलम इंडेक्स संख्या गतिशील है, हालांकि इस मामले में, INDEX / MATCH भी समान रूप से व्यवहार्य है।

मैं नीचे दो तरीकों के बीच विस्तृत अंतर प्रदर्शित करने के लिए कुछ विशिष्ट उदाहरण दूंगा।

INDEX / MATCH बाईं ओर (या कहीं और आप चाहें) देख सकते हैं

यह शायद INDEX / MATCH साथ-साथ VLOOKUP की सबसे बड़ी VLOOKUPVLOOKUP केवल दाईं ओर देख सकता है, यदि आवश्यक हो तो INDEX / MATCH किसी भी रेंज से देख सकता है।

नीचे दिए गए उदाहरण को VLOOKUP साथ पूरा नहीं किया जा सकता है।

INDEX / MATCH में छोटी सेल रेंज (इस प्रकार दक्षता में वृद्धि) का उपयोग करने की क्षमता है

नीचे दिए गए उदाहरण पर विचार करें। इसे किसी भी विधि से पूरा किया जा सकता है।

ये दोनों सूत्र ठीक काम करते हैं। हालाँकि, चूंकि VLOOKUP सूत्र में INDEX / MATCH सूत्र की तुलना में बड़ी सीमा है, यह अनावश्यक रूप से अस्थिर है।

यदि B1:G4 में कोई भी सेल बदलता है, तो VLOOKUP फॉर्मूला पुनर्गणना चाहिए (क्योंकि B1:G4 सीमा A1:H4 भीतर है) भले ही B1:G4 में किसी भी सेल को बदलने से सूत्र के परिणाम पर कोई असर नहीं पड़ेगा। यह INDEX / MATCH लिए कोई समस्या नहीं है क्योंकि इसके सूत्र में B1:G4 की सीमा नहीं है।

फिक्स्ड col_index_number के साथ VLOOKUP का उपयोग करना खतरनाक है

एक निश्चित कॉलम इंडेक्स नंबर के साथ मैं जो मुख्य मुद्दा देख रहा हूं वह यह है कि यह अपडेट नहीं होगा क्योंकि पूर्ण कॉलम डाले जाने पर यह होना चाहिए। निम्नलिखित उदाहरण पर विचार करें:

यह सूत्र तब तक ठीक काम करता है जब तक कि लुकअप टेबल के भीतर कॉलम नहीं डाला जाता है। उस स्थिति में, सूत्र मान को बाईं ओर रखेगा जहाँ यह होना चाहिए। नीचे देखें, एक कॉलम डाले जाने के बाद परिणाम।

इसके बजाय निम्नलिखित VLOOKUP सूत्र का उपयोग करके वास्तव में इसे कम किया जा सकता है:

= VLOOKUP("s",A1:H4,COLUMN(H1)-COLUMN(A1)+1,FALSE)

यदि स्तंभ डाला जाता है तो अब H1 स्वचालित रूप से I1 अपडेट हो जाएगा, इस प्रकार उसी कॉलम के संदर्भ को संरक्षित करना होगा। हालाँकि, यह पूरी तरह से अनावश्यक है क्योंकि INDEX / MATCH इसे इस समस्या के बिना नीचे दिए गए सूत्र के साथ पूरा कर सकता है।

= INDEX(H1:H4,MATCH("s",A1:A4,0))

मुझे लगता है कि यह एक असंभावित परिदृश्य है, लेकिन इसने मुझे हमेशा परेशान किया कि डिफ़ॉल्ट रूप से VLOOKUP एक निश्चित कॉलम इंडेक्स के आधार पर दिखता है, जो कॉलम डाले जाने पर स्वचालित रूप से अपडेट नहीं होता है। मेरे लिए, यह सिर्फ VLOOKUP फ़ंक्शन को अधिक नाजुक बनाने के लिए लगता है।

INDEX / MATCH केवल चर कॉलम अनुक्रमणिका को संभाल सकता है, लेकिन लंबा सूत्र

यदि स्तंभ अनुक्रमणिका संख्या स्वयं ही गतिशील है, तो यह वास्तव में एकमात्र मामला है जब मुझे लगता है कि VLOOKUP चीजों को थोड़ा सरल करता है, लेकिन फिर से INDEX / MATCH विकल्प केवल उतना ही अच्छा है, बस थोड़ा और अधिक भ्रमित है। नीचे दिए गए उदाहरण देखें।

INDEX / MATCH कई लुकअप के लिए अधिक कुशल है

(@Jffreyweir को धन्यवाद)

यदि एकल मिलान मान के लिए एकाधिक लुकअप मान आवश्यक हैं, तो मैच वैल्यू के साथ एक सहायक सेल होना बहुत अधिक कुशल है। इस तरह, प्रत्येक लुकअप सूत्र के लिए एक के बजाय केवल एक बार मैच की गणना की जानी चाहिए। नीचे उदाहरण देखें।

इस मैच वैल्यू का उपयोग तब उपयुक्त लुकअप मानों को वापस करने के लिए किया जा सकता है। नीचे उदाहरण देखें, (सूत्र को दाईं ओर खींचा गया है)।

मैच वैल्यू और इंडेक्स वैल्यू का यह मैनुअल "स्प्लिटिंग" VLOOKUP साथ एक विकल्प नहीं है क्योंकि मैच वैल्यू VLOOKUP में एक "आंतरिक" चर है और इसे एक्सेस नहीं किया जा सकता है।

INDEX / MATCH एक सीमा तक देख सकता है, एक और ऑपरेशन की अनुमति देता है

उदाहरण के लिए मान लें कि आप स्तंभ नाम के आधार पर किसी कॉलम में अधिकतम मान प्राप्त करना चाहते हैं।

आप उपयुक्त कॉलम को खोजने के लिए पहले MATCH का उपयोग कर सकते हैं, फिर उस पूरे कॉलम की सीमा को वापस करने के लिए INDEX , फिर उस रेंज का अधिकतम पता लगाने के लिए MAX का उपयोग कर सकते हैं।

नीचे उदाहरण देखें, H4 में सूत्र सेल G4 में निर्दिष्ट कॉलम नाम का अधिकतम मूल्य दिखता है। यह केवल VLOOKUP का उपयोग करके पूरा नहीं किया जा सकता है।

संक्षेप में

VLOOKUP , INDEX / MATCH रूप में सबसे अच्छा है, और कुछ स्थितियों में थोड़ा कम भ्रमित है। और सबसे बुरी तरह, VLOOKUP INDEX / MATCH तुलना में बहुत अधिक असुरक्षित और अस्थिर है।

यह भी ध्यान देने योग्य है कि यदि आप एकल मान के बजाय किसी श्रेणी को देखना चाहते हैं, तो INDEX / MATCH का उपयोग किया जाना चाहिए। VLOOKUP उपयोग किसी सीमा को देखने के लिए नहीं किया जा सकता है।

इन कारणों से, मैं आमतौर पर व्यावहारिक रूप से सभी स्थितियों में INDEX / MATCH को प्राथमिकता देता हूं।





vlookup