मानदंड के आधार पर मूल्य सूची


4

मेरे पास "DealSetup" नामक एक वर्कशीट पर एक टेबल है जो इस सरलीकृत संस्करण की तरह दिखता है:

   A           B
1  John Doe    1
2  Jane Doe    1
3  Mark Doe    2
4  Doug Doe    1
5  Mary Doe    2

मेरे पास "सूची" नामक एक वर्कशीट पर एक तालिका है जिसे मैं "डीलसेटअप" वर्कशीट से नामों को खींचना चाहूंगा। हालाँकि, मैं केवल स्तंभ B में मान के आधार पर नामों को सूचीबद्ध करना चाहता हूँ।

उदाहरण के लिए, "सूची" वर्कशीट पर, मैं "DealSetup" शीट को देखने के लिए किसी प्रकार के INDEX या सरणी फ़ंक्शन का उपयोग करना चाहता हूं और सभी को खींचता हूं जिनके कॉलम B का मान 1 है और उन्हें सूचीबद्ध करें। मुझे कोई ब्लैंक नहीं चाहिए, हालाँकि। इसे ऐसा दिखना चाहिए:

 EVERYONE WITH B COLUMN VALUE OF 1:  
   A  
1  John Doe
2  Jane Doe
3  Doug Doe

या इस तरह:

 EVERYONE WITH B COLUMN VALUE OF 2:  
   A  
1  Mark Doe
2  Mary Doe

मैं कुछ चीजों की कोशिश कर रहा हूं जिनमें कोई भाग्य नहीं है। यकीन नहीं है कि यहाँ से कहाँ जाना है, इसलिए किसी भी इनपुट की सराहना की जाएगी !!


उन्नत फ़िल्टर कार्यक्षमता देखें - यह इसके साथ किया जा सकता है (हालांकि पूरी तरह से स्वचालित रूप से नहीं)
पीटर अल्बर्ट

मैंने उन्नत फ़िल्टर की कोशिश की है, लेकिन इसके साथ समस्या यह है कि यह मूल्यों को कॉपी करता है, और मैं बस उन्हें गतिशील रूप से सूचीबद्ध करना चाहता हूं। धन्यवाद!
ढोलकिया ६११

क्या आप समर्थन स्तंभों का उपयोग कर सकते हैं?
पीटर अल्बर्ट

1
जब आप तालिका कहते हैं, तो क्या आपका मतलब है तालिका ऑब्जेक्ट या कक्षों में तालिका?
Raystafarian

"डायनामिकली" - किस तरह से? DealSetup शीट में नए मान जोड़ते समय ? या जब आप सूची पत्र पर मापदंड बदलते हैं ? इसके अलावा, VBA एक वैध समाधान है? मैक्रो जगह में पिछले नामित घटनाओं और उन्नत फ़िल्टर को फिर से लागू में से एक ने शुरू किया जा सकता है
nixda

जवाबों:


4

DealSetup!A$2:B$6आप में अपना डेटा मानते हुए इस सूत्र का उपयोग कर सकते हैंList!A2

=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1),ROWS(A$2:A2))),"")

CTRL+ SHIFT+ की पुष्टि करें ENTERऔर जहाँ तक आवश्यक हो और आगे तक कॉपी करें। जब आप नामों से बाहर निकलते हैं तो आप खाली हो जाते हैं।

मानदंड (1,2 आदि) में मान लेता है C1

संलग्न कार्यपुस्तिका देखें - C12 में बदलने का प्रयास करें

यदि नाम दोहराए गए हैं (निर्दिष्ट मानदंडों के भीतर) तो आपको बार-बार नाम मिलेंगे - प्रत्येक नाम को केवल एक बार दिखाने के लिए फार्मूला बनाया जा सकता है, अर्थात यह संस्करण

=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,IF(COUNTIF(A$1:A1,DealSetup!A$2:A$6)=0,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1)),1)),"")


-1

यदि आप फार्मूले के साथ एक समाधान चाहते हैं, तो आप निचले हिस्से में रिक्त स्थान रखने जा रहे हैं। फॉर्मूला बढ़ने वाली कोशिकाओं के बढ़ने और सिकुड़ने का कोई तरीका नहीं है क्योंकि आपकी सूची बदल जाती है। सूत्रों के साथ आपकी तालिका आपके कच्चे डेटा के समान ऊँचाई होनी चाहिए ताकि यह सुनिश्चित किया जा सके कि आपको कुछ भी याद नहीं है, अगर कहें, तो हर किसी के पास एक 1कॉलम है B। यदि आप जानते हैं कि ऐसा कभी नहीं होगा, तो आप Listवर्कशीट में पंक्तियों की संख्या कम कर सकते हैं लेकिन यह एक जोखिम है। यहाँ एक सूत्र है कि उन सभी को नीचे के रिक्त स्थान के साथ वापस कर देंगे। यह एक सरणी सूत्र है, इसलिए इसे Ctrl+ Shift+ के साथ दर्ज करें Enter: (बैरी Houdini पहले से ही एक समान समाधान प्रस्तुत किया है)

{=IFERROR(INDEX(DealSetup!$A:$A,SMALL(IF(DealSetup!$B:$B=1,ROW(DealSetup!$B:$B)),ROW())),"")}

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.