
सामान्य सूत्र
(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))
सारांश
मापदंड के साथ एक सीमा में सबसे लंबी स्ट्रिंग खोजने के लिए, आप INDEX, MATCH, LEN और MAX के आधार पर एक सरणी सूत्र का उपयोग कर सकते हैं। दिखाए गए उदाहरण में, F6 में सूत्र है:
(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))
जहाँ "नाम" नाम की श्रेणी C5: C14 है, और "वर्ग" नाम सीमा B5: B14 है।
नोट: यह एक सरणी सूत्र है और इसे नियंत्रण + शिफ्ट + दर्ज के साथ दर्ज किया जाना चाहिए।
स्पष्टीकरण
इस सूत्र का मूल MATCH फ़ंक्शन है, जो आपूर्ति किए गए मानदंडों का उपयोग करके सबसे लंबे स्ट्रिंग की स्थिति का पता लगाता है:
MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)
नोट मैच प्रकार के लिए शून्य की आपूर्ति करके एक सटीक मैच करने के लिए MATCH की स्थापना की जाती है। मूल्य देखने के लिए, हमारे पास:
LEN(names)*(class=F5)
LEN फ़ंक्शन परिणाम की एक सरणी (लंबाई) लौटाता है, एक सूची में प्रत्येक नाम के लिए जहां सेल F5 से कक्षा = "ए":
(5;6;8;6;6;0;0;0;0;0)
यह प्रभावी रूप से कक्षा बी के सभी को छानता है, और मैक्स फ़ंक्शन फिर सबसे बड़ा मूल्य, 8 लौटाता है।
लुकअप सरणी बनाने के लिए, हम उसी दृष्टिकोण का उपयोग करते हैं:
LEN(names)*(class=F5)
और एक ही परिणाम प्राप्त करें:
(5;6;8;6;6;0;0;0;0;0)
LEN और MAX के चलने के बाद, हमारे पास इन मूल्यों के साथ MATCH फॉर्मूला है:
MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))
MATCH ने सूची में 8 की स्थिति, 3, जो INDEX में इस तरह से फीड की है:
=INDEX(names,3)
अंत में, INDEX ने मूल्य को नामों की तीसरी स्थिति में वापस लौटा दिया , जो "जोनाथन" है।