LoginSignup
0
0

More than 3 years have passed since last update.

Google フォームって知名度低くない?Google スプレッドシートと連携させるとこんなに幸せに!

Last updated at Posted at 2020-07-15

本記事は Google スプレッドシートのデータを JS で fetch したい!の続編です。そこそこ反響が良かったので気を良くして約束通り続編を書くことにしました。前記事が未読の方はそちらを先に読んでいただいた方がわかりやすいと思います。

さて、すでに存在している Google スプレッドシート上のデータを JS あるいは任意の HTTP をサポートする言語から fetch 出来るようにはなりましたが、そもそもどうやってデータを集めたら良いのでしょう。

むろん CSV などの元データがあれば読み込ませればいいですし、ゼロから手作業で入力・編集することも出来ます。それらが容易なのはスプレッドシートの大きな利点です。しかし、例えば多くの人からのアンケート結果を集計する場合など、アンケート回答と同時にスプレッドシートが埋まっていればそれほど楽なことは無いと思いませんか?

そこでまず出てくるのが Google フォームです。これは日本ではあまり知名度がない気がするのですが、ちょっとしたアンケート程度で凝った UI やバリデーションが不要の場合は選択肢の筆頭になりえます。

Google ドライブを開き、「新規」メニューから Google フォームを選ぶと編集画面が開くので、そこで必要な項目をポチポチ足していくと、ユーザに公開出来るフォームが完成します。

google-form-menu.png
new-edit-form.png

例えば、前回使用したダミーデータのような情報を集めようと思ったらこのような感じになるでしょか。

user-form-edit.png

フォームが完成したら「送信」ボタンから直接メールで送るか、リンクを取得するなどしてフォームを配れば、多くの人から回答を集めることが出来ます。

get-shareable-link.png

回答が集まり始めたら、フォームの編集画面にある「回答」タブで回答の内容を確認してみましょう。

results-view.png

見ると分かるように、簡単な集計結果はグラフで表示されるので、目的が単なるアンケートならこれで終わりで良いかもしれません。さらなる分析が必要だったり一覧表で回答を確認したい場合は、結果をスプレッドシートで見てみましょう。「回答」タブの上部にあるスプレッドシートのアイコンをクリックすると、このフォームとリンクしたスプレッドシートを作る、あるいは既存のスプレッドシートに追加することが出来ます。

new-spreadsheet.png
linked-spreadsheet.png

このスプレッドシートはフォームとリンクしているので新しい回答があると自動的に更新されます。

auto-input.gif

また、データ自体は通常のスプレッドシートと変わらないので、何らかの式を書き足して集計できるのみならず、条件付き書式で見やすく色を付けたり、ピボットテーブルでクロス集計を行ったり、表現力の高いグラフを描いたりすることだって出来ます。

conditional-format.png
pivot-table.png
donut-chart.png

実際のところ Google フォームと Google スプレッドシートの組合せはかなり強力で、プログラミング無しでも相当多くの事が済んでしまうでしょう。さらに前記事で紹介した方法で GET API を実装すれば、外部システムとの連携すらできて可能性は相当に広がります。

ところが、これでもまだかゆいところには手が届ききっておらず、例えば次のようなことを実現しようと思うと、自前で POST API や入力用の UI を実装する必要が生じます。

  • ID を自動的に採番する
  • 郵便番号をバリデーションする
  • 生年月日に基づいて年齢を自動的に計算する

…といったところで、紙幅が (筆者の気力が) 尽きてしまいましたので続きはまた次回!
この記事をストックしていただければ、次の記事を公開した際に通知を飛ばすので、ご贔屓のほどよろしくお願いします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0