Published on Wed Apr 15 2020 02:31:00 GMT+0000 (Coordinated Universal Time) by IGAITO
一度使ってしまうとエクセルより便利で離れられなくなってしまうGoogle スプレッドシート 今回はデータベース参照関数のQuery関数の条件指定Whereにセル番号を指定する方法。 今回は、ちょっとマニアックです。Query関数の基本は今回は説明を省かせて頂きます。
Query関数は、指定した範囲から必要な情報だけを引き出す関数
Filter関数と似ていますが、Query関数はFilterした内容の指定列だけを表示するといったアドバンテージがあります。 Filter関数で絞り込んだ結果から、Query関数で表示する列を選ぶということも出来ますが、今回はQuery関数だけでこれを実現した際のトラブル対応です。 Query関数は、Selectで表示する列を選び、Whereで=や<といった条件を指定して絞り込み検索をします。 しかしWhereで条件指定した際に、条件指定先がセル番号になっているとエラーになってしまいます。 例えば、 Where A=〇といった式の中で、〇〇にセル番号を入れてしまうとエラーになるということ。 これは、〇〇を文字列として扱っているため、A1といったセル番号を指定してもA1という文字列そのものを検索してしまうためです。
Whereでセル番号を指定する方法は、
参照先のセルに入っているものが、文字列か数値であるかで変わってきます。 →文字列であれば、 セル番号を‘“&セル番号&“‘といった形で、シングルクオーテーション、ダブルクオーテーションと&でくくります。 →数値であれば、 セル番号を”&セル番号&“といった形で、ダブルクオーテーション、&でくくります。
QUERY関数 セル指定のサンプル
A〜Eの範囲について、BがH4に入っている文字列と一致するものを表示させる関数式
=Query(A:E,“WHERE B=“&H4&"") A:EにあるデータのB列がH4と一致するものを表示させる。
▶元になる表
表示結果の表
先のA:Eの表から、以下のG4に入力された202004というデータに一致するものを表示させています。 なお関数はH4入力しています。 ※元になる表の全体(A〜E列)を選択しているので、見出しも表示されています。 
見出しを表示しない場合は、2行目以下を対象に
=QUERY(A2:E,“WHERE B=“&G5&"")
対象範囲をA2〜Eと設定しました。 関数はH5に入力してあります。4行目の見出しはテキスト任意に入力しています。 
ACDの列だけ表示したければ、Selectを追加します。
=Query(A:E,“SELECT A,C,D WHERE B=“&H4&"")
上の式に対して、SELECTを追加して、A,C,D列だけを表示するようにしました。
これで、A〜Eの範囲について、BがH4に入っている文字列と一致するものを絞り込み、そのうちのACD列のみを表示することができます。
Written by IGAITO
← Back to blog