2014-03-18 22 views
0

我有一個Google Spreadsheet,我想運行一個QUERY函數。但我希望WHERE聲明檢查一系列值。我基本上正在尋找我將在SQL中使用IN語句的內容 - Google電子表格中的IN等效物是什麼?所以現在我有:使用WHERE子句的值範圍查詢?

=QUERY(Sheet1!A3:AB50,"Select A,B, AB WHERE B='"& G4 &"'") 

而且工作。但我真正需要的是相當於:

=QUERY(Sheet1!A3:AB50,"Select A,B, AB WHERE B='"& G4:G7 &"'") 

當然,該聲明失敗。我怎樣才能得到哪些地方抵制一系列的價值?這些是文本值,如果這有所作爲。

回答

1

雖然我現在不爲完美的答案,我能找到的問題,它可以在數據的少量使用一種變通方法(希望這是這裏的情況:))

第一步:您應該創建一個「幫助單元」,在其中您將G4:G7單元與「|」連接起來字符:

= CONCATENATE(G3,「|」,G4,「|」,G5,「|」,G6,「|」,G7) - 假設它是單元格H2的內容。現在

,你應該改變你的上面的查詢如下:

= QUERY(Sheet1中A3:AB50, 「選擇A,B,AB,其中B匹配「^ *(」 & H2 &「)。 * $'「)

這應該可以做到。基本上我們「匹配」運算符允許使用正則表達式,這也允許使用|進行構造符號。

正如我所說,這是一個解決方法,它有缺點,但我希望它會有所幫助。

-1

我有同樣的問題,並在我的研究中遇到了您的問題。你的連接想法讓我思考。問題是我在where子句中使用的範圍是動態的。行數改變。這讓我到加入功能,導致我這樣的:有數據行的

=(QUERY('Sheet1!A3:AB50,"select A where B = "& JOIN(" OR B = ",ARRAY_CONSTRAIN($A$5:A,COUNTIF($G$4:$G,">0"),1)) &"") 

COUNTIF次數進行計數。我在這個範圍內使用的數字,所以也許"!= ''"">0"更合適。 ARRAY_CONSTRAIN使用僅包含數據的單元格創建一個數組。 JOIN將範圍轉換爲where子句的查詢語言。

需要與是在JOIN功能分隔符基本相同的文本開始where子句。請注意,我使用的是數字,因此我不需要‘’左右的值。這是我的電子表格中的作品,我希望它有幫助。