web-dev-qa-db-ja.com

セル参照を使用したクエリ構文

Googleスプレッドシートでかなり単純なQUERYステートメントを理解するのに問題があります。静的な値の代わりにセル参照を使用しようとしていますが、問題が発生しています。その下に使用しているコードがありますが、「エラー:数式解析エラー」が表示され続けます。

=QUERY(Responses!B1:I, "Select B where G contains"& $B1 &)

単純なエラーであると確信していますが、クエリがBからデータをプルし、GにセルB1(セル参照)の値が含まれているように、上記の記述方法を教えてもらえますか?

34
Mr. B

ここでは回避策しかありません。この特殊なケースでは、FILTERの代わりにQUERY関数を使用します。

_=FILTER(Responses!B:B,Responses!G:G=B1)
_

データが「Responses」シートにあるが、条件(セル参照)が実際のシートのB1セルにあると仮定します。

それが役に立てば幸い。

更新:

元の質問を検索した後:式の問題は間違いなく2番目の_&_記号であり、WHEREステートメントにさらに何かを連結することを前提としています。削除してみてください。それでも動作しない場合は、これを試してください:

=QUERY(Responses!B1:I, "Select B where G matches '^.\*($" & B1 & ").\*$'")-試したことはありませんが、別の投稿で役立ちました: WHERE句の値の範囲を照会しますか?

18
zolley

Webアプリケーションからコピー:

=QUERY(Responses!B1:I, "Select B where G contains '"&$B1&"'")
48
pnuts

私はこれが古いスレッドであることを知っていますが、私はOPと同じ質問を持っていて、答えを見つけました:

ほぼそこにいます。クエリ言語にセル参照を含める方法は、全体を音声マークで囲むことです。クエリ全体が音声マークで記述されているため、以下に示すように、 'と "を交互に切り替える必要があります。

必要なのはこれです:

=QUERY(Responses!B1:I, "Select B where G contains '"& B1 &"' ")

その後、複数のセルを参照したい場合は、次のように追加できます

=QUERY(Responses!B1:I, "Select B where G contains '"& B1 &"' and G contains '"& B2 &"' ")

上記は、B1とB2の内容に基づいて結果をさらにフィルターします。

6
Ben Currer

アンパサンドで囲まれた一重引用符>二重引用符が機能することがわかりました。したがって、私にとっては次のようになります。

=QUERY('Youth Conference Registration'!C:Y,"select C where Y = '"&A1&"'", 0)
2
cjmcqueen

上記の答えのどれも私にとってはうまくいきませんでした。これはやった:

= QUERY(Copy!A1:AP、 "AP、E、F、AOを選択し、AP ="&E1& ""、1)

2
Martin

古いスレッドですが、以下の答えへの旅でこれを見つけ、他の誰かがそれを必要とするかもしれないと考えています。

_=IFERROR(ArrayFormula(query(index(Sheet3!A:C&""),"select* Where Col1="""&B1&""" ")), ARRAYFORMULA({"*     *","no cells","match"}));
_

これは、「sheet3」にある3列のデータセット(A、B、C)から現在のシートにテキストフィルターを作成し、現在のシートのセルとの比較を呼び出してCol1(A)

このビットは、フィルターが結果を返さない場合に_#N/A_エラーを取り除くためのものです//ARRAYFORMULA({"* *","no cells","match"}))

1
Eric Boal