365・LibreOfficeなどに関するメモ2023-01-10(Gスプレッドシート)QUERY関数の条件でセル参照をする方法GoogleスプレッドシートGoogleスプレッドシートの第2引数、特にWHERE句でセルを参照し、その値を抽出条件にする方法についてです。"」(ダブルクォーテーション)の内側にセル番地を含めるとエラーになります。次の画像では見出しを含むB2:D7の範囲を抽出対象とし、B列の値がF3セルの値と一致するものを抽出しようとしています。結果はエラーとなっています(H2セル)。"」で囲み、文字列として指定します。この中にセル番地を直接記入してもセル番地とは解釈してくれず、F3セルの値を参照できません。上記失敗例の訂正版です。B2:D7の範囲を抽出対象とし、B列の値がF3セルの値と一致するものを抽出しています。"」の外に置き、「&」で連結することでセル参照をしています。竜也"」となり、少し足りません。'」で囲む必要があります。B='"&F3&"'"」としています。竜也'"」と解釈され、抽出は成功します。細かい記号が多くなるので注意深く式を作成する必要があります。次の例もほぼ変わりませんが、WHERE~CONTAINS句を使って部分一致抽出を行っています。'"&F3&"'",1)QUERY関数は抽出だけでなく集計やソートまでできる万能な関数ですが、句の順番など制約が厳しく覚えるのはなかなか大変です。これは慣れるしかありません。数値を参照する例ここではC列の値がF3セルの数値と一致するものを抽出しています。'」で囲む必要がないので文字列の例より簡単です。"」の外に出して&でつなぐだけでOKです。日付を参照する例ここではD列の値がF3セルの日付と一致するものを抽出しています。"&TEXT(F3,"'YYYY-MM-DD'"),1)日付は特に厄介です。比較演算子(ここでは「>=」)の次に「DATE」の句を置く必要があります。'」で囲む必要があります。これらをTEXT関数で一括して行っています。参照先のF3セルもD列の値も「YYYY/M/D」形式(月と日付が1桁)になっていますが、「YYYY-M-D」のように合わせる必要はありません。365はデスクトップ版、LibreOfficeは記事作成時の安定バージョンを用いた結果を示しています。サイトポリシー等についてはこちらをご覧ください。(1)検索スポンサーリンク引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。