web-dev-qa-db-ja.com

Query(IMPORTRANGE)が「式解析エラー」をスローします

私はGoogleスプレッドシートを使用していますが、query(IMPORTRANGE)関数で壁にぶつかりました:

=Query((IMPORTRANGE("URL","Sheet Name!A2:P1000"),"select Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9,Col10,Col11,Col12,Col13,Col14,Col15,Col16 WHERE Col6 contains 'Abstract & TO'",16))

「式解析エラー」が発生し続けます。

問題を解決する方法に関する提案はありますか?

1
Ethan Shula

おそらく、クエリの最後のパラメーターとして16ではなく1が必要です。このパラメーターは、ヘッダーの数ではなく、ヘッダー行の数を意味します。

また、式に余分な括弧のペアがあります。それ以外の場合、数式は正しい(スプレッドシートでテスト済み)が、select Col1,Col2,..., Col16select *に置き換えることで短縮できます

=QUERY(IMPORTRANGE("URL","Sheet Name!A2:P1000"),"SELECT * WHERE Col6 CONTAINS 'Abstract & TO'",1)

エラーの原因として、スプレッドシートが IMPORTRANGE の目的で接続されていないことが考えられます。

Googleスプレッドシートの新しいバージョンでは、IMPORTRANGEを使用して、スプレッドシートに他のスプレッドシートからデータをプルする許可を明示的に付与する必要があります。宛先シートが初めて新しいソースシートからデータをプルするとき、ユーザーは許可を与えるように求められます。

残念ながら、IMPORTRANGEコマンドがQUERY内にある場合、このプロンプトは表示されません。 QUERYが解析するものがないため、代わりに解析エラーがスローされます。スプレッドシートを接続するには、まず何かをインポートします。たとえば、

 =IMPORTRANGE("URL","Sheet Name!A1")

#REFエラーが表示されます。その上にカーソルを合わせると、説明と「接続」ボタンが表示されます。

2
user79865