見出し画像

Googleフォームの回答データをQUERY関数で上手に活用しよう(2)

前回の記事はこちらです。

4.実用的な3つのサンプルをご紹介 

Google Forms の回答に溜まったSpreadsheetのデータをもとに、希望のビューを設定しリアルタイムで参照出来るので多用しています。

実用的な使い方を3つご紹介したいと思います。

(1)フォーム回答を新しい回答から古いものへと逆順に表示する


数日から数週間に渡りフォームで回答を募集する場合、新しい回答がどうなっているか繰返し確認したくなります。
回答シートの隣に新しい回答参照用シート《最新順》を作り、前項で説明したQUERY関数をセル A1 に入力します。

=QUERY('フォームの回答 1'!A1:H,"SELECT * WHERE A IS NOT NULL ORDER BY A DESC ",1)

すると A1から始まるセルに表が現れ、タイムスタンプ降順(新しいものから古いものへと)に並んでいます。

セルA1にQUERY関数を入力して現れた最新順の表

フォームに入力が有れば1~2秒遅れくらいで追加データが表示されます。

(2)抽出条件を指定するプルダウンリストを設定する


次は蓄積したデータから特定条件のものだけを抽出して表示してみましょう。
新しいシート 質問1 を追加します。
先ほどのシート 最新順 のセル A1 をコピーしてから シート 質問1 セルA2 にQUERY関数を貼り付けます。
先ほどと違い2行目に表見出し。3行目からデータが表示されていると思います。
この表は一旦置いといて、G列の「質問1の答え」をプルダウンで選択できるようにしてみます。

  • プルダウンを設定するG1セルを選択してから《データ → データの入力規制》をクリックします。

データの入力規制 設定画面

データの入力規制 項目の設定 には次のように設定していきます。

① セル範囲:プルダウンを設定するセル G1 を指定します。
② 条件:リストを範囲で指定します。
③ 右側の項目にはフォームの回答が蓄積されるシートのG列全体を指定します。(入力部分をクリックしてからマウスで指定できます)
④ セルにプルダウンリストを表示 にチェックを入れます。
⑤ 最後に 保存 をクリックし設定を終了して戻ります。

データ入力規制の項目設定画面

 データ入力規制の設定がうまくいけば G1 セルの右側に▼が表示されていると思います。
この選択肢は フォームの回答 1 のG列データ全体から、選択肢を自動抽出してくれるので大変便利です。 

プルダウンリストが設定されたG1セルの表示

▼をクリックすると選択可能なリストが現われ一つ選択できます。

参照先セルのすべてのデータから選択可能なリストが作られました

(3)WHERE句に選択条件を組み込む

先ほど貼り付けた '質問1' セルA2には次のようなQUERY関数が入っていると思います。

=QUERY('フォームの回答 1'!A1:H,"SELECT * WHERE A IS NOT NULL ORDER BY A DESC ",1)

先ず、関数のWHERE句に質問1回答の一つを抽出条件に設定してどのように表示されるのか見てみましょう。

'フォームの回答 1' データ部から、G列(質問1の回答)に '楽しみ' と回答したデータだけを表示してみます。

=QUERY( 'フォームの回答 1'!A1:H, "SELECT  * WHERE   G = '楽しみ' ORDER BY   G ASC ,H ASC "  ,1)

先ほどの WHERE A IS NOT NULL はタイムスタンプが空白でないもの全て。という意味でしたね。

今回は、G = '楽しみ' 即ち G列が '楽しみ' と回答されたデータだけを選択条件にしましたので、A列; タイムスタンプ の有無の絞り込み条件は省略しました。
並び替えの条件 ORDER BY はG列;回答1 昇順、H列;回答2 昇順 としました。

QUERY関数のWHERE句の中で WHERE G = '楽しみ' と指定したので
G1 をプルダウンから選択した '楽しい' とは一致していません

(4)検索指定のセル値をWHERE句に取り込む

それではいよいよ、この表の WHERE句 の選択条件をG1セルの値を参照するように書き換えてみましょう。

=QUERY( 'フォームの回答 1'!A1:H, "SELECT  * WHERE G = '"&G1&"' ORDER BY G ASC ,H ASC "  ,1)

こうすることで、セルG1の値とQUERY関数で生成される表がシンクロするようになりました。

セルG1をプルダウンで選択切替すると、瞬時に条件が一致する表に置き換わります
セルG1を「楽しみ」に切り替えました
セルG1を「たのしい」に切り替えました

(5)検索の複合条件を設定してみる

今度は G列 ;質問1の答え と H列;質問2の答え 2つの条件に一致するデータを検索してみます。

シート 質問1+2 を作ってセルA2 にQUERY関数を入れていきます。
WHERE句 には2つの条件を AND でつないでいます。

クォーテーションの中にダブルクォーテーションを入れています

セル引用部分の記述がややこしいですが条件の表現部分を一つひとつのブロックに分けて眺めていけば理解しやすいかと思います。 

クォーテーションとダブルクォーテーションの間にスペースを入れてしまうと意図通りの検索が出来なくなりますので注意しましょう。

=QUERY('フォームの回答 1'!A1:H, "SELECT A,B,C,D,E,F,G,H WHERE G = '"&G1&"' AND H = '"&H1&"'  ORDER BY D ASC, E ASC, F ASC, B DESC")

セル G1;回答1 と H1;回答2にはプルダウンリストを設定をしました。
回答1、回答2 の選択肢をプルダウンからそれぞれ選択した結果を示します。

 ①「楽しい」+「B」 

質問1='楽しい' AND 質問2='B' の結果

②「楽しい」+「C」


質問1='楽しい' AND 質問2='C' の結果

③「楽しみ」+「B」

質問1='楽しみ' AND 質問2='B' の結果

④「楽しみ」+「C」

質問1='楽しみ' AND 質問2='C' の結果

目的通り指定した項目でプルダウンから1つづつ選ぶだけで抽出条件を設定し、結果を表示することができました。
いかがですか、便利ですね!

次回は私たちが Key4 と呼んでいる 4桁の 学年+組+出席番号 の活用について紹介してみたいと思います。

続きはこちらです。


この記事が気に入ったらサポートをしてみませんか?