क्या आप Google शीट में यूनिअन का चयन कर सकते हैं?


10

मुझे Google शीट एक ऐसे फॉर्म से जुड़ी हुई है जो एक ही विषय पर तीन अलग-अलग लोगों से एक ही फॉर्म का उपयोग करके और तीन बार संपादन करके उत्तर एकत्र करता है। इससे एक शीट बनती है जिसमें तीन कॉलम होते हैं जिसमें तीन लोग स्थित होते हैं।

मुझे एक ऐसा दृश्य / प्रश्न तैयार करना होगा जो उन तीन कॉलमों को लेता है और उन्हें एक दूसरे के नीचे रखता है, और एक दूसरे के बगल में नहीं। एक डेटाबेस में मैंने नीचे क्वेरी की तरह कुछ किया होगा, मैंने अपनी 'शीट' tblMain कहा है, और संबंधित चार कॉलम (मुझे विषय आईडी की भी आवश्यकता है) कहा है।

tblMain:

ID        RALocation        RBLocation        RCLocation

प्रश्न:

Select ID, RALocation as Location, 'RA' as Role from tblMain
Union
Select ID, RBLocation as Location, 'RB' as Role from tblMain
Union
Select ID, RCLocation as Location, 'RC' as Role from tblMain

क्या किसी को पता है कि क्या Google Sheets में ऐसा करने का कोई तरीका है? मुझे एक से अधिक शीट बनाने का मन नहीं है और फिर उन्हें अंत में जोड़ रहा हूं, लेकिन मैं यह करने के लिए थोड़ा अटक गया हूं।


क्या पंक्तियों की संख्या निश्चित है या यह समय के साथ बदल जाएगी?
रूबेन

जवाबों:


3

मैं दो संस्करणों की पेशकश करता हूं, इस पर निर्भर करता है कि क्या रिक्त कोशिकाओं को रखा जाना चाहिए। मूल विचार समान है:

  1. एक ऐसा पात्र चुनें जो आपकी तालिका में निहित न हो (जैसे, एक विदेशी यूनिकोड वर्ण जो सुलभ हो CHAR)।
  2. JOINप्रत्येक तीन कॉलम के लिए कमांड में इसका उपयोग करें ।
  3. बीच में चरित्र को जोड़ने, परिणामों को समेटना।
  4. SPLIT एक ही चरित्र द्वारा संक्षिप्त स्ट्रिंग।
  5. TRANSPOSE परिणाम।

उदाहरण के लिए:

=TRANSPOSE( SPLIT( JOIN(CHAR(57344),A1:A) &CHAR(57344)& JOIN(CHAR(57344),B1:B) &CHAR(57344)& JOIN(CHAR(57344),C1:C), CHAR(57344) ) )

जहां शामिल होने / बंटवारे के लिए, मैंने चरित्र को चुना CHAR(57344), जो निजी उपयोग के लिए नामित है और इसलिए किसी भी मान्य इनपुट में मौजूद नहीं होना चाहिए।

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

रिक्त स्थान को संरक्षित करने के लिए, मैं जैकब जान तुइस्ट्रा के उत्तर का पालन करता हूं सिवाय इसके कि मैंने अंतरिक्ष के बजाय एक और निजी उपयोग यूनिकोड का उपयोग किया (जो जानता है, शायद आपके पास कुछ कोशिकाएं हैं जिनमें सिर्फ एक स्थान होता है और आप उन्हें रखना चाहते हैं)। इसमें दो अतिरिक्त चरण शामिल हैं: पहले की तरह सब कुछ शामिल होने के बाद, मैं द्वारा SUBSTITUTEप्रतिस्थापित करने के लिए उपयोग करता हूं , फिर पहले की तरह विभाजित हो जाता हूं , और खाली स्ट्रिंग द्वारा प्रतिस्थापित किया जाता है।CHAR(57344)CHAR(57344)&CHAR(57345)CHAR(57345)

=TRANSPOSE( ARRAYFORMULA(SUBSTITUTE( SPLIT( SUBSTITUTE(...joins... , CHAR(57344),CHAR(57344)&CHAR(57345)), CHAR(57344) ), CHAR(57345), "")))

पूर्ण परिणाम इस तरह दिखता है (ध्यान दें कि अब मैं निर्दिष्ट करता हूं कि डेटा की अंतिम पंक्ति कहां है):

=TRANSPOSE( ARRAYFORMULA(SUBSTITUTE( SPLIT( SUBSTITUTE(JOIN(CHAR(57344),A1:A9) &CHAR(57344)& JOIN(CHAR(57344),B1:B9) &CHAR(57344)& JOIN(CHAR(57344),C1:C9), CHAR(57344),CHAR(57344)&CHAR(57345)), CHAR(57344) ), CHAR(57345), "" )))

एक और चेतावनी: Google पत्रक में तार लंबाई में 50000 वर्णों से अधिक नहीं हो सकते। यदि आपका डेटा काम करने के लिए स्ट्रिंग-आधारित दृष्टिकोण के लिए बहुत बड़ा है, तो एक स्क्रिप्ट का उपयोग करें ( यह एक अच्छी जगह है)।


यह एक इलाज का काम करता है, और मैं उन्हें सही परिणाम प्राप्त करने के लिए जोड़ सकता हूं। केवल एक चीज जो अब मैं करने की कोशिश कर रहा हूं, वह है कि इसे NULL मानों का सम्मान करने और उन्हें खींचने के लिए, यह पता चलता है कि आपके FILTER की आवश्यकता नहीं थी, यदि यह NULL मान पाता है, तो यह उन्हें बाहर ले जाएगा। किसी भी विचार कैसे मैं इसे नल का सम्मान करने के लिए मिलता है?
ऐनीबी

1
दरअसल, "अन्य उत्तर" इस ​​समय एक आंशिक उत्तर है। अन्य विकल्पों के अलावा, प्रासंगिक लापता हिस्सा यूनिअन-चयन दृष्टिकोण के बजाय एम्बेडेड सरणियों का उपयोग करने के तरीके के बारे में है।
Ruben

2
आश्चर्यजनक। हमें शायद पायलट को देखने के लिए स्क्रिप्ट देखनी होगी, लेकिन अभी के लिए मुझे काफी कुछ करना है। यहाँ के लोग वास्तव में मददगार हैं, आप सभी का धन्यवाद!
ऐनीबी


2

संक्षिप्त जवाब

Google पत्रक एक बहुत शक्तिशाली उपकरण है जिसके पास UNION-SELECT के समान परिणाम प्राप्त करने के लिए कई विकल्प हैं।

वैकल्पिक

एंबेडेड सरणियाँ

SPLIT-TRANSPOSE-JOIN-CHAR का उपयोग करने का एक विकल्प एम्बेडेड सरणियों का उपयोग करना है। इस पद्धति का एक फायदा यह है कि इसके लिए स्ट्रिंग्स के निर्माण / विघटन की आवश्यकता नहीं होती है, इसलिए यह वर्णों की संख्या की सीमा प्रासंगिक नहीं है।

एंबेडेड सरणी

छनन

उपरोक्त का उपयोग उन मामलों के लिए फिल्टर () के साथ संयोजन में किया जा सकता है जिनके लिए फ़िल्टर करने की आवश्यकता होती है जो UNION-SELECT का समान व्यवहार करते हैं। उदाहरण

={Filter(A1:B2, B1:B2=2);Filter(D1:E2, E1:E2=6);Filter(G1:H2, H1:H2=12)}

इसके अलावा QUERY () के संयोजन में इस्तेमाल किया जा सकता है लेकिन इसके परिणामों में हेडर लाइन शामिल है। शीर्ष लेख से छुटकारा पाने के तरीके के बारे में जानने के लिए Google स्प्रेडशीट क्वेरी के परिणाम में पंक्ति से छुटकारा पाएं

मूल्यों का एक स्तंभ कैसे बनाएं

मानों का एक स्तंभ बनाने के लिए ट्रांसपोज़-स्प्लिट-रिपोर्ट का उपयोग करें।

={Transpose(Split(REPT("RA,",6),","))}

इसके अलावा QUERY () का उपयोग मूल्यों के एक स्तंभ को बनाने के लिए किया जा सकता है, लेकिन हेडर पंक्ति को हटाने से सूत्र अधिक जटिल हो सकता है। इसका उपयोग केवल तभी करें जब स्ट्रिंग लंबाई की सीमाएँ समस्याएँ पैदा करें।

एंबेडेड एरेज़ और ट्रांसपोज़-स्प्लिट-रिप्प का उपयोग करके समाधान

मान लें कि सीमा tblMain A1: D7 है, जहां A1: D1 टेबल हेडर है, और डेटा A2: D7 में है।

={{"ID";A2:A7;A2:A7;A2:A7},
{"Location";B2:B7;C2:C7;D2:D7},{"Role";
Transpose(Split(REPT("RA,",6),","));
Transpose(Split(REPT("RB,",6),","));
Transpose(Split(REPT("RC,",6),","))}}

संदर्भ

Google स्प्रेडशीट सरणियों को लागू करना - StackOverflow


आपको मुझसे अधिक उत्तर पढ़ने होंगे;) मुझे इस बारे में अभी तक कोई आधिकारिक सहायता लेख नहीं मिला। मुझे पता है कि Google उत्पाद फ़ोरम और इंटरनेट पर ऐसे धागे हैं, जो उस संदर्भ की तरह हैं जिसे मैंने पहले ही शामिल किया था।
रुबेन

इसके लिए धन्यवाद, मैं वर्तमान में अंतिम समाधान देख रहा हूं, मुझे लगता है कि यह हमारे पायलट के लिए बहुत अच्छा करेगा!
ऐनीबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.