संपादित करें: @ScottCraner के हालिया उत्तर ने "de-संदर्भित" का उपयोग किया INDEX()
सूत्र और उनके जवाब ने मुझे इस समस्या पर एक और दरार लेने का फैसला किया। मेरे पास एक ही दृष्टिकोण (असफल) की कोशिश की थी इससे पहले कि दूसरी बार पूरी तरह से काम किया। मैं नीचे दिए गए समाधान का वर्णन करूँगा।
De-संदर्भित INDEX () सूत्र के बारे में पृष्ठभूमि:
शॉन, आपने सरणी सूत्रों का उपयोग करने के लिए एक सराहनीय प्रयास किया है जो आपको करने की आवश्यकता है। आपके द्वारा एक्सेल को हैंडल करने के तरीके से संबंधित समस्याएं हैं। कुछ सूत्र सरणियों को तर्क के रूप में उपयोग कर सकते हैं और कुछ में नहीं।
मैंने इसमें कुछ खुदाई की और मैंने एक्सेल में सरणियों का उपयोग करने के बारे में कुछ बहुत ही विचित्र, रहस्यमय बातें सीखीं INDEX()
वह सूत्र जो मुझे पहले नहीं पता था। यह समझने के लिए कि यह सूत्र कैसे काम करता है, चलो अंत में शुरू करते हैं।
अंतिम सूत्र जो आपका सूत्र करेगा वह 2D सारणी से आपके तालिका 2 के तीन (बंद) मान है।
INDEX(array,row_num,col_num)
एक 2 डी सरणी से एक भी मान वापस कर सकते हैं, और यह एक संपूर्ण स्तंभ या पंक्ति भी लौटा सकता है। ऐसा लगता है चाहिए मूल्यों की एक सूची वापस करने में सक्षम होने के लिए। तो चलिए इसे टेस्ट करते हैं।
यह सूत्र (एक संपूर्ण दुनिया में) वह राशि लौटाएगा जिसे आप तालिका 2 से देख रहे हैं:
=SUM(INDEX(G4:K8,{3,2,3},{5,4,3}))
पंक्ति 3, कॉलम 5 प्लस पंक्ति 2, कॉलम 4 प्लस पंक्ति 3, कॉलम 3 से तत्वों को जोड़ना चाहिए यह नहीं है , यह सिर्फ 1.67 देता है जो संदर्भित पहला तत्व है।
ऑनलाइन खोज करने से संदर्भ उत्पन्न होते हैं (एक सहित) StackOverflow पर यहाँ ) ये कहा INDEX()
एक सरणी लौटाएगा, लेकिन केवल अगर आप de-संदर्भ सूत्र (यह "विचित्र" भाग है)। "पुरालेख" भाग ऐसा करने का तरीका है। यह "डी-संदर्भित" सूत्र है:
=SUM(INDEX(G4:K8,N(IF(1,{3,2,3})),N(IF(1,{5,4,3}))))
यह सूत्र सही उत्तर देता है: 4.67।
सूत्र में, IF()
1 के रूप में व्यवहार करता है True
, इसलिए यह संख्याओं की सरणी, और N()
यदि वे संख्याएँ हैं, तो संख्याओं का सरणी लौटाता है, जो वे हैं। सूत्र को सही ढंग से बनाने के लिए IF () और N () की आवश्यकता क्यों है, किसी का अनुमान नहीं है। में स्कॉट का सूत्र , उसे 1 से अपनी सरणी (यह एक सीमा संदर्भ थी) भी गुणा करना पड़ा।
लेकिन, अब हमारे पास एक सूत्र है जो सही उत्तर देता है। और उम्मीद है, हम सभी को करना है सरणी स्थिरांक को आपके अन्य डेटा का उपयोग करके गणना की गई सरणियों से बदलना है।
नई जानकारी यहां से शुरू होती है।
उपर्युक्त सूत्र में row_num के लिए {3,2,3}
, हमें चुने हुए फलों की किस्मों से जुड़े F4: F8 में प्रतिशत तीव्रता के पदों की आवश्यकता है। सबसे पहले, हम सेब के पदों की एक सरणी प्राप्त करेंगे G12:G16
अपनी तालिका 3:
=MATCH(B3:B5,G12:G16,0)
यह एक सरणी सूत्र है और इसके साथ दर्ज किया जाना चाहिए CTRL खिसक जाना दर्ज बल्कि सिर्फ दर्ज ।
यह सूत्र तालिका 3 के कॉलम G में तालिका 1 से Apple किस्मों की सूची को देखता है और उनके पदों की एक सरणी देता है।
यदि आप सूत्र पट्टी में सूत्र का चयन करते हैं और F9 को हिट करते हैं, तो आप देखेंगे मूल्य सूत्र सरणी है {1,3,4}
तालिका 3 के कॉलम G में सेब की स्थिति।
अब हमें उन पदों से जुड़े पीआई की आवश्यकता है। इस INDEX()
सूत्र कॉलम H में दिखता है और उपर्युक्त सरणी को row_num के रूप में उपयोग करता है। यहाँ, row_num को "de-संदर्भित" होना चाहिए:
=INDEX(H12:H16,N(IF(1,MATCH(B3:B5,G12:G16,0))))
यह सूत्र सरणी देता है {0.97,0.98,0.97}
सेब के PI के। अब तक सब ठीक है। अगला हम उस सरणी का उपयोग लुकअप मानों के रूप में करते हैं MATCH()
सूत्र जो F4 में दिखता है: F8, आपकी तालिका 2 का PI इंडेक्स:
=MATCH(INDEX(H12:H16,N(IF(1,MATCH(B3:B5,G12:G16,0)))),F4:F8,0)
यह सूत्र सरणी देता है {3,2,3}
, और वे अंतिम सूत्र के लिए जरूरी row_num हैं।
अगला हमें col_num की आवश्यकता है {5,4,3}
, जो कि Apple किस्मों में से प्रत्येक के लिए फलों की कुल संख्या है। हम इसे तालिका 3 से प्राप्त करेंगे, लेकिन पहले हमें सभी फलों की किस्मों के लिए फलों की कुल संख्या की गणना करने की आवश्यकता है। यह (गणना) सरणी उन योगों की एक सूची है:
(I12:I16*J12:J16)+K12:K16
Apple किस्मों के लिए कुल फल प्राप्त करने के लिए, हम उस सरणी का उपयोग करेंगे a INDEX()
, समान (डी-संदर्भित) row_num पहले की तरह:
=INDEX((I12:I16*J12:J16)+K12:K16,N(IF(1,MATCH(B3:B5,G12:G16,0))))
यह सूत्र सरणी देता है {5,4,3}
, और वे अंतिम फॉर्मूले के लिए आवश्यक col_num हैं।
यह सब एक साथ रखकर, NFPI की सूची है:
=INDEX(G4:K8,MATCH(INDEX(H12:H16,N(IF(1,MATCH(B3:B5,G12:G16,0)))),F4:F8,0),INDEX((I12:I16*J12:J16)+K12:K16,N(IF(1,MATCH(B3:B5,G12:G16,0))))
यह सूत्र सरणी देता है {1.67;2;1}
। वे सेब के लिए NFPI हैं, और अब हमें बस उन्हें जोड़ना है।
लेकिन अभी तक नहीं, पहले की देखभाल करने के लिए एक छोटी सी समस्या है। ऐप्पल की तीनों किस्में तालिका 3 में पाई जा सकती हैं, लेकिन ऑरेंज के लिए यह सच नहीं है। ऊपर दिए गए फॉर्मूले के साथ वापसी होती है #N/A
उनमें जहाँ छोटे ऑरेंज किस्म नहीं पाए जा सकते हैं। यह किसी भी समस्या का कारण नहीं बनता है जब तक कि यह मूल्यों को जोड़ने का समय नहीं आता है।
इसलिए राशि लेने से पहले, हम रूपांतरण करते हैं #N/A's
के साथ 0 ए IFERROR()
सूत्र। यहाँ अंतिम सूत्र है:
=SUM(IFERROR(INDEX(G4:K8,MATCH(INDEX(H12:H16,N(IF(1,MATCH(C3:C5,G12:G16,0)))),F4:F8,0),INDEX((I12:I16*J12:J16)+K12:K16,N(IF(1,MATCH(C3:C5,G12:G16,0))))),0))
यह सूत्र सेब के लिए 4.67 और संतरे के लिए 5.75 देता है।
शॉन, मुझे उम्मीद है कि यह अभी भी उपयोगी हो सकता है। लंबी देरी के लिए क्षमा करें।