web-dev-qa-db-ja.com

Googleスプレッドシートのクエリエラー-列が存在しません

Google Spreadsheet APIのもう1つの問題。私はデータベースからワルシャワ出身のすべての顧客を取得するためにQUERY()関数を使用しようとしています。ただし、Google APIは私のクエリの解析に大きな問題があるようです。何度か確認しましたが、問題はありません。セミコロン、異なるアポストロフィ、列名を試しましたが、それでも機能しません。このコードをシートのセルに入力します。

=QUERY(IMPORTRANGE("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!A3:G40"); "select B where E contains 'Warszawa'")

そして、このようなエラーが発生します:

Invalid query: Column [E] does not exist in table.

そして、列が存在し、スプレッドシートのキーに問題がないことを110%確信しています。 ;)

18
KamilG

セルの長方形を直接参照するQuery関数を使用している場合は、大文字を使用して列を参照します。ただし、Queryからの戻り値など、配列数式の出力に対してImportRangeを使用している場合は、代わりにCol1Col2を使用する必要があります。 ...列を参照します。したがって、クエリ文字列の例は次のようにする必要があります。

"select Col2 where Col5 contains 'Warszawa'"

作業例:

=Query(ImportRange("0AtEH2Kw9zfIodEQ2dFNFam9sdEFEZlVnNEV3ZEZMZEE", "data!A:G"), "select Col3, count(Col4) group by Col3 order by count(Col4) desc label count(Col4) 'count'")

ヘッダー行の名前だけを使用できない理由がわかりません。

21
George

あるいは、この場合はFILTER関数を試すことができ、SQLに煩わされる必要はありません。 :)

=FILTER(ImportRange("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!B3:B40"); ImportRange("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!e3:e40")="Warszava")

2つのimportRange関数があるため、それほどきれいではないことは認めますが。

とにかくそれが役に立てば幸い。

3
zolley