ठीक है, यहाँ एक समाधान है जो काम करता है लेकिन आपको मस्तिष्क क्षति की स्थापना कर सकता है। मैंने इसे एक बार में एक कदम बनाया था, एक सेट चीजों की गणना की जो तब अगली गणनाओं द्वारा उपयोग की गई थी। एक बार मेरे पास एक कार्यशील मॉडल होने के बाद, मैंने पीछे की ओर काम किया, सेल संदर्भों के लिए वास्तविक फ़ार्मुलों को प्रतिस्थापित किया ताकि सभी फ़ार्मुलों को केवल आपकी वास्तविक सूचियों के लिए संदर्भित किया जाए न कि मध्यवर्ती गणनाओं को। सूत्रों का कहना है। वास्तव में, पहला प्रयास उन उत्पादन सूत्रों का निर्माण करता है जो सेल क्षमता से अधिक थे। मैंने इसे दो तालिकाओं में विभाजित किया, पहला खिला दूसरा। तालिकाओं बहुत बड़ी हैं और आप पूरे तालिकाओं में दो दिशाओं में सूत्रों को पॉप्युलेट करने के लिए सही स्थानों की ओर इशारा करते हुए सभी सेल संदर्भ प्राप्त करने की कोशिश कर रहे हैं। इसलिए मैंने कुछ अप्रत्यक्ष संदर्भ जोड़े ताकि सूत्र केवल कॉपी और पेस्ट किए जा सकें और मैन्युअल सफाई के बिना काम करेंगे। दुर्भाग्य से, इसने कुछ बहुत बड़े फॉर्मूले तैयार किए।
मैं इसे एक स्प्रेडशीट पर विशिष्ट स्थानों में स्थित एक उदाहरण के रूप में समझाता हूँ। यदि आपको कहीं और टुकड़ों का पता लगाने की आवश्यकता है, तो पहले सेल में सभी पंक्ति और स्तंभ संदर्भों को संपादित करें और फिर तालिकाओं को पॉप्युलेट करने के लिए कॉपी और पेस्ट करें। अपनी स्वयं की पवित्रता के लिए, कुछ ज्ञात उदाहरणों को सेट करें ताकि आप यह सत्यापित कर सकें कि प्रत्येक तालिका में पंक्तियों और स्तंभों के पहले जोड़े पूरी चीज़ को आबाद करने से पहले काम कर रहे हैं। रोगनिरोधी एस्पिरिन की एक जोड़ी ले लो और हम शुरू करेंगे।
यह पंक्ति 1 (2,000 पंक्तियों) में शुरू होने वाले डेटा के साथ कॉलम ए में आपकी सूची ए पर आधारित है। पंक्ति 1 (30 पंक्तियों) में शुरू होने वाले डेटा के साथ J के माध्यम से सूची B स्तंभ H में है।
पहली तालिका L1 में शुरू होती है। यह तालिका सूची A अभिलेखों में सूची B प्रविष्टियों की स्थिति की सूची बनाती है। उदाहरण के लिए:
Position: 1 2 3 4 5 6
So if a List A record contains: 1 3 3 5 7 9
and a List B record contains: 1 3 7
the entry in this table will be: 1 2 5 (stored as a single number: 125)
यदि सूची बी रिकॉर्ड सूची ए रिकॉर्ड से मेल नहीं खाती है, तो सेल में एक # एन / ए होगा। इस तालिका का लेआउट इस प्रकार है:
[L] [M] [N] [O]
[1] <=======List B Row========>
[2] List A Row 1 2 3 ...
[3] 1
[4] 2
[5] 3
...
आपको वास्तव में पंक्ति संख्याओं को स्तंभ M के पंक्ति 2 में AP के माध्यम से स्तंभ L के रूप में और स्तंभ L में पंक्ति लेबल के रूप में रखने की आवश्यकता है। ये सूत्र सूत्र के रूप में उपयोग होते हैं। 30 डेटा कॉलम हैं, सूची बी प्रविष्टियों में से प्रत्येक पंक्ति के लिए एक, और आपके पास 2,000 पंक्तियाँ होंगी, जो सूची A में प्रविष्टियों का प्रतिनिधित्व करती है, पंक्ति 3 से शुरू होती है। तालिका के प्रत्येक कक्ष में सूची B प्रविष्टि बनाम सूची A प्रविष्टि प्रदर्शित होती है। । यह M3 का सूत्र है:
=MATCH(INDIRECT("H"&M$2),$A1:$F1,0)&MATCH(INDIRECT("H"&M$2),$A1:$F1,0)
+MATCH(INDIRECT("I"&M$2),INDIRECT(ADDRESS($L3,MATCH(INDIRECT("H"&M$2),$A1:$F1,0)+1, , )&":$F"&$L3),0)&MATCH(INDIRECT("H"&M$2),$A1:$F1,0)
+MATCH(INDIRECT("I"&M$2),INDIRECT(ADDRESS($L3,MATCH(INDIRECT("H"&M$2),$A1:$F1,0)+1, , )&":$F"&$L3),0)
+MATCH(INDIRECT("J"&M$2),INDIRECT(ADDRESS($L3,MATCH(INDIRECT("H"&M$2),$A1:$F1,0)
+MATCH(INDIRECT("I"&M$2),INDIRECT(ADDRESS($L3,MATCH(INDIRECT("H"&M$2),$A1:$F1,0)+1, , )&":$F"&$L3),0)+1, , )&":$F"&$L3),0)
मैंने इसे और अधिक पठनीय बनाने के लिए सूत्र को तोड़ दिया है, लेकिन यह सब एक सूत्र है। सत्यापित करें कि आपके पास यह N3 में N4 के माध्यम से कुछ नमूना डेटा के साथ काम कर रहा है और फिर तालिका को भरने के लिए कॉपी और पेस्ट करें।
दूसरी तालिका AR1 में शुरू होती है। इस तालिका को उसी तरह संरचित किया गया है:
[AR] [AS] [AT] [AU]
[1] <=======List B Row========>
[2] List A Row 1 2 3 ...
[3] 1
[4] 2
[5] 3
...
यह तालिका पहले की तरह काम करती है - प्रत्येक सेल एक सूची बी रिकॉर्ड बनाम एक सूची ए रिकॉर्ड के परिणामों का प्रतिनिधित्व करता है। इस तालिका में आपका शेष भाग है। इसलिए उदाहरण में मैंने पहली तालिका के लिए दिया, शेष 359 होगा:
So if a List A record contains: 1 3 3 5 7 9
and a List B record contains: 1 3 7
the remainder is: 3 5 9
सेल AS3 में जाने वाला सूत्र है:
=IF(ISNA(M3),"",IF(ISERROR(FIND(COLUMN(INDIRECT("a"&$AR3)),M3)),INDIRECT("a"&$AR3),"")&
IF(ISERROR(FIND(COLUMN(INDIRECT("b"&$AR3)),M3)),INDIRECT("b"&$AR3),"")&
IF(ISERROR(FIND(COLUMN(INDIRECT("c"&$AR3)),M3)),INDIRECT("c"&$AR3),"")&
IF(ISERROR(FIND(COLUMN(INDIRECT("d"&$AR3)),M3)),INDIRECT("d"&$AR3),"")&
IF(ISERROR(FIND(COLUMN(INDIRECT("e"&$AR3)),M3)),INDIRECT("e"&$AR3),"")&
IF(ISERROR(FIND(COLUMN(INDIRECT("f"&$AR3)),M3)),INDIRECT("f"&$AR3),""))
इस तालिका के प्रत्येक सेल में या तो शेष या एक अशक्त वर्ण समाहित होगा यदि कोई मेल नहीं था।
आप प्रत्येक सूची A रिकॉर्ड के परिणामों का सारांश प्राप्त करना चाहते थे। चूंकि तालिका की प्रत्येक पंक्ति एक सूची रिकॉर्ड का प्रतिनिधित्व करती है, इसलिए सारांश तालिका की प्रत्येक पंक्ति के अंत में जा सकता है। तालिका के 30 स्तंभ स्तंभ BV पर समाप्त होते हैं, इसलिए परिणाम स्तंभ BW में होते हैं। BW3 का सूत्र होगा:
=AS3&IF(ISBLANK(AS3),""," ")&AT3&IF(ISBLANK(AT3),""," ")& ... &BV3&IF(ISBLANK(BV3),""," ")
यहां सभी 30 शब्द दिखाने के बजाय, यह सिर्फ पहले दो और आखिरी को दर्शाता है। बाकी को जोड़ने के लिए उसी पैटर्न का पालन करें। यह प्रत्येक मैच के परिणामों को संक्षिप्त करके परिणाम स्ट्रिंग बनाता है। यदि किसी कक्ष में कोई मान है, तो यह अगले मान से पहले एक स्थान जोड़ता है। यदि आप एक अलग परिसीमन चाहते हैं, तो अंतरिक्ष को किसी अन्य स्थान पर बदलें, जैसे अल्पविराम स्थान। सभी पंक्तियों के लिए स्तंभ BW नीचे इस सूत्र की प्रतिलिपि बनाएँ।
यह शायद परिणामों के लिए सबसे उपयोगी जगह नहीं है। एक बार आपके पास सब कुछ काम करने के बाद आप चीजों को इधर-उधर कर सकते हैं। दरअसल, यदि आप कुछ भी स्थानांतरित करते हैं, तो आपके पास सेल संदर्भों की बड़े पैमाने पर सफाई हो सकती है। यह अधिक समझ में आता है कि जो आउटपुट आप किसी अन्य स्थान पर चाहते हैं, उसे बनाएं और सेल संदर्भों का उपयोग करें जो पहले से सेट है।