Google शीट में QUERY के साथ ARRAYFORMULA का उपयोग कैसे करें


11

मेरे पास एक क्वेरी है जिसे सूची में प्रत्येक पंक्ति के लिए चलाने की आवश्यकता है। एकल पंक्ति के लिए लिखे जाने पर यह अच्छी तरह से काम करता है:

QUERY(MaraRankData,
  "select J,I,H,G,F,E where 
    A='"&E3&"' and 
    B='"&B3&"' and 
    C="&C3&" and 
    D="&D3&"",
  0
)

इच्छानुसार डेटा की एक पंक्ति को आउटपुट करता है। लेकिन जब मैं इसे ARRAYFORMULA में लपेटता हूं, तब भी यह केवल एक पंक्ति को कई के बजाय आउटपुट करता है:

=ARRAYFORMULA(
  QUERY(MaraRankData,
    "select J,I,H,G,F,E where 
      A='"&E3:E&"' and 
      B='"&B3:B&"' and 
      C="&C3:C&" and 
      D="&D3:D&"",
    0)
)

Google पत्रक कोई त्रुटि नहीं दे रहे हैं, इसलिए मुझे नहीं पता कि मैं क्या गलत कर रहा हूं। मैं अपनी QUERY के साथ काम करने के लिए ARRAYFORMULA कैसे प्राप्त कर सकता हूं इसलिए मुझे हर पंक्ति पर सूत्र को दोहराना नहीं है?


एक Arrayformula के साथ एक क्वेरी () सूत्र को लपेटने के बारे में लाल रेड वाइन द्वारा टिप्पणी का समर्थन करने के लिए। किसी भी प्रकार के फॉर्मूले को लपेटना अनावश्यक है जो पहले से ही एक प्रकार का परिणाम देता है। I "फिल्टर", यूनिक, "" ट्रांसपोज़, "आदि के लिए एरियरफॉर्मुला को लागू न करें
एक्सजीला

1
इसके अलावा, जब आप क्वेरी का उपयोग कर सकते हैं, तो अधिकांश समय फ़िल्टर सूत्र काम करेगा। मुझे यकीन है कि आप अपनी समस्या को आसान तरीके से हल कर सकते हैं।
Xzila

@Xzila यदि आपके पास ऐसा करने का कोई तरीका है filter, तो कृपया एक उत्तर दें: मुझे इस तरह के समाधान में दिलचस्पी होगी।

2
=FILTER({E:E,F:F,G:G,H:H,I:I,J:J},A3:A=E3:E)पहला भाग सिर्फ घुंघराले कोष्ठक में स्तंभों को फिर से क्रमबद्ध करने के लिए है। दूसरा इसलिए है क्योंकि A से E एकमात्र स्तंभ की तरह प्रतीत होता है जो B के रूप में दिखाई देता है, C स्वयं को देखता है, आदि वास्तव में हालांकि एक डेटा सेट अच्छा होगा, और शायद समस्या पर अधिक स्पष्टीकरण। शायद मुझे समझ में नहीं आता।
Xzila

जवाबों:


10

arrayformula(query(...))संयोजन समर्थित नहीं है; queryकिसी सरणी को संसाधित करने या क्वेरी स्ट्रिंग की एक सरणी निष्पादित करने की कोई अवधारणा नहीं है ।

आपके पास दो विकल्प हैं: (ए) queryप्रत्येक पंक्ति पर दोहराएं ; (b) vlookupडेटा के कॉलम को पुनः प्राप्त करने के लिए उपयोग करें, जैसा कि नीचे बताया गया है। उदाहरण के लिए:

=arrayformula(vlookup(E3:E, {A3:A, J3:J}, 2, false))

E3 का एक तत्व लेता है: E एक समय में, इस तत्व को कॉलम A में पाता है, और कॉलम J के तत्त्व को पुनः प्राप्त करता है। इस दृष्टिकोण के साथ आपको कॉलम J, I, H, G, F, को प्राप्त करने के लिए छह अलग-अलग vlookups की आवश्यकता होगी। ई, लेकिन आपको प्रत्येक पंक्ति के लिए एक अलग कमांड की आवश्यकता नहीं होगी।

एक जटिलता यह है कि vlookupकेवल एक खोज कुंजी को स्वीकार करता है, और आप 4 मापदंडों द्वारा खोज करना चाहते हैं,

A='"&E3&"' and 
B='"&B3&"' and 
C="&C3&" and 
D="&D3&

इसे एक खोज कुंजी में समाप्‍त करके चारों ओर काम किया जा सकता है: आपके पास Z जैसा कॉलम हो सकता है,

=arrayformula(E3:E & "|" & B3:B & "|" & C3:C & "|" & D3:D)

जो चार खोज मापदंडों को एक पाइप-सीमांकित खोज कुंजी में समाप्‍त करता है। खोज की जाने वाली तालिका के लिए भी ऐसा ही करें, और फिर इन कुंजियों का उपयोग करके तुलना करें vlookup


3
पहले कथन के बारे में, सरणी तर्क के अंदर नेस्टिंग क्वेरी पहले तर्क के लिए काम करती है। Webapps.stackexchange.com/a/97658/88163
Rubén
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.