ギター歴50時間目に突入しました、旅田です。
今回は、意外と知られていないGoogleフォームとGoogleスプレッドシートの活用事例をご紹介します。ずばり、記録したい時間を入力・送信するだけで、月ごとの時間を勝手に集計してくれる『時間管理アプリ』を作りながら、それぞれの使い方を紹介していきます!
こちらの記事を読むことで、
- フォームの基本的な使い方がわかる
- スプレッドシートとの連携内容がわかる
- 表計算の数式が何となくわかる
- 結果、無限の可能性が垣間みえる!
といったメリットがあるので、ご興味ある方はぜひご一読ください。
事前知識
Googleフォームとは?
Googleフォームとは、誰でも超お手軽にアンケートフォームを作成・共有できる無料のソフトです。
超簡単にフォームが作成できる!
例えば、急ぎでユーザーアンケートを取るときなどは重宝します。なんせ無料ですし、初めて触っても作れちゃうほど簡単ですので。他にもこんな感じの予約フォームとしても便利です。
なお、送信された回答は自動生成されるスプレッドシートへ勝手に蓄積していくので、データの管理・加工も非常に楽です。今回の記事では、この辺りの内容が含まれます。
Googleスプレッドシートとは?
Googleスプレッドシートとは、いわゆるExelに代表される表計算ソフトですが、最高なのはクラウド上で管理されており、アクセスしたユーザーが多人数で同時に編集可能という点です。
作り込めばチームの勤怠管理表も楽チンに!(*数値はフェイクです)
《2021年3月16日追記:こちらの勤怠管理シートも無料配布はじめました!》
Googleスプレッドシートは、チームのメンバー同士で会議しながら数字を共有したり、そのままプレゼン資料にしたりなど、活用方法は無限大です。
今回はフォームから送信された回答データを数式で処理することで、回答送信→レポーティングまでを自動化する方法に触れていきます。
活用のツボはここ!
私と言えばスプレッドシート大好き芸人として有名ですが、実はフォームの方もよく活用しています。しかし、やはり日常の業務における活用シーンが多いのは前者でして、フォームの方はあまり取り沙汰されない印象です。
なので、今回ご紹介するのは「こんなアプリあればいいのにな〜」という消費者目線から「よし、Googleフォームで実装しちゃおう!」という開発者目線までを個人で完結できる最高のツールとして、このGoogleフォーム・Googleスプレッドシートをご紹介していきます。
今回は題材として『時間管理アプリ』を取り上げますが、これはあくまで趣味でギターを弾き始めた私が「練習時間を手軽に記録できないかな〜」と思い作ったものなので、ほんの一例にすぎません。
あなたには、何か解決したいお悩みはありますか?
今回、この記事を読んでいただくことで、「私がやりたかったこんなこと、Googleフォームで解決できるじゃん!」という気付きに繋がればこれ幸いです。
『時間管理アプリ』の制作手順
今回は次の手順で解説していきます。
- 準備編:仕様を決める
- 入力編:回答の送信フォームを作る
- 出力編:レポートを作る(スプレッドシート)
非常に簡単かと思いましたが、ちょっと理屈っぽい「準備編」は後回しでも構いません。
準備編
まずは仕様を決めます。これは世にあるどんなアプリでも必ず最初に着手される工程で、要するに設計図を描く作業のことです。
ポイントは、既に述べた「こんなアプリがあればいいのにな〜」というお悩みを、より具体的に「こうなって、そうなって、ああなったらOK」といった具合に分解するイメージです。なので、まずは〈完成形〉を具体的にイメージし、それが実現するために必要な〈手順〉を書き出すことから始めましょう。
完成形
フォームにギターの練習時間(分数)と、必要に応じてメモを入力し、送信ボタンを押すことで【1】、月別および通算の練習時間(時間数)が、合計値および平均値で表示される【2】。
手順
大きく分け、上記【1】【2】をそれぞれ制作していく。
【1】=入力(インプット)部分としてGoogleフォームを作成する。
- Googleフォームの新規ファイルを作成する
- フォームの質問のうち「記述式」のパートを作成する(時間入力用)
- フォームの質問のうち「段落」のパートを作成する(メモ入力用) など
【2】=出力(アウトプット)部分としてGoogleスプレッドシート上にレポートを作成する。
- フォームの回答シートとは別にレポート用のシートを作成する
- レポート用シートに月別レポートの概形を作成する
- レポート用シートに日付変換用の列を作成する
- 月別レポートに数式を組み込む など
入力編
(1)Googleフォームを新規作成する
Googleドライブ(任意のフォルダ)
→新規作成(ボタン)
→→その他
→→→Googleフォーム(ボタン)
この操作で、今いるドライブ内に「無題のフォーム」というファイルが新規作成されます。
今後はこのファイルにアクセスすることで、フォームを編集することができます。
(2)フォームのタイトルと質問を作成する
フォームの編集画面では、主にタイトルと各質問を作っていきます。
こちらの画像A〜Eの箇所について、それぞれ解説していきます。
- タイトルを指定します。回答者がフォームURLにアクセスした際に表示されます。
- 説明文を指定します。回答者に対し、このフォームが何を目的としているのかを説明する部分になります。
- 質問項目を新規追加するボタンです。
- その質問項目の形式を指定します。必要な情報を得るために適したものを、プルダウンから選択します。
- その質問形式に沿って詳細内容をそれぞれ指定します。主に質問のタイトルや説明文などがあります。
実際の『時間管理アプリ』では、次のように指定しました。
- タイトル「ギター触った時間記録用」
- 説明文「ギターを弾く練習時間を記録しておく用の投稿フォームです。」
- 質問①「記述式」/質問②「段落」
- 質問①タイトル「ギターを触った分数は?」/質問②タイトル「練習内容メモ」
なお、Eの段階では「その質問が必須かどうか?」の指定箇所がありますので、「必須ボタン」をONにすることで、空欄での回答を禁じることもできます。
これで作成自体は完了。たったの2ステップでした、とっても簡単ですよね!
最後に、実際の回答フォームと回答データが送信されるスプレッドシートの場所ですが、FがフォームURL、Gが回答データの送信先スプレッドシートとなります。次の「出力編」では、このスプレッドシートを編集していきます。
出力編
(1)レポート用のシートを新規作成する
「入力編」の最後に準備した回答用のスプレッドシートを開き、レポートを作成するためのシートを新規追加します。
新規追加は下記画像のAをクリックするとできます。
その他、A〜Eの部分の説明は次の通りです。
- 新規シートの追加ボタン
- 回答データが蓄積していくシート(回答シート)
- 上記で新規追加したレポート用のシート(名前は任意)
- タイムスタンプ:回答データの受信時間(これがレポートを作成する上で超重要な項目となります)
- 各質問ごとの回答データ(今回だと『ギターを触った分数』と『練習内容メモ』)
(2)月別レポートの概形を作成する
可視化したかったデータ、すなわち「月別および通算の練習時間(時間数)の合計値および平均値」を表すレポートの概形を作成します。
下記画像の通りで、要するにレポートの見た目だけを作り込みます。この段階ではまだ数式が入っていないため、回答が送信されてもレポートは空白のままですね。
こうしたレポートを作り馴れていないという方は、こちらの画像をそのまま真似してみてください。
(3)日付変換用の数式を組む
さて、ここが最難関です!
ここからややこしくなるため、実際のスプレッドシートの複製版をご用意しました。ぜひこちらを参考にしながら進めていただければと思います。
手順としては、次の画像のA列に「日付変換」という項目を、そしてB列に「分数変換」という項目を設けます。
「日付変換」の列を設ける理由ですが、ちょっと難しくなるので読み飛ばしてOKです!
雰囲気としては、回答シートA列にあるタイムスタンプが【秒単位】で自動入力されるため、それぞれ【月単位】に変換するための数式をかませている、といった感じです。月別レポートだから【月単位】ということです。
こうすることで、最後の仕上げとなる「SUMIFS」関数が使えるようになります。
さて。
結局、こちらもわかりにくかったかと思いますので、レポート用シートの【A2】セルに、次の数式をそのまま入れてみてください。
=IF(‘フォームの回答 1’!A2=””,””,INT(TEXT(‘フォームの回答 1’!A2,”yyyy/mm/dd”)))
また、お隣の【B2】セルにも、次の数式をそのまま入れてみてください。
=’フォームの回答 1′!B2
その状態から、【A2】【B2】セルの数式を、それぞれ下方にコピペしてしまえばOKです。
(4)月別レポートの数式を組む
最後の総仕上げとして、レポートにも数式を組んでいきます!
先ほどと同じ画像ですが、今度はこちらのE・F列の部分です。
- D列:「●月●日」の形で直接入力した部分
- E列:合計分数=「SUMIFS」関数で、月ごとの分数を合算している
- F列:(時間変換)=分数のセルから「÷60」することで、60分→1時間に変換している
こちらも、一旦ややこしいので【E2】セルに、
=SUMIFS(B:B,A:A,”>=”&D2,A:A,”<“&D3)
という数式を、【F2】セルに、
=E2/60
という数式を、それぞれ入れてみてください。
また、その状態で【E2】【F2】セルを下方にコピペしてください。
これで完成ですが、【E2】セルの「SUMIFS」関数はぜひ覚えていただきたいので、最後にもう少しだけ解説したら終わりにします。
(番外)「SUMIFS」関数
「SUMIFS」関数は「SUM(=合計)」と複数の「IF(=条件分岐 “もしも〜”)」が合体した関数です。
なので、書き方は【=SUMIFS(合計したい範囲, 条件①の範囲, 条件①, 条件②の範囲, 条件②, ・・・)】となり、条件の数だけ後ろに続いていきます。
こちら↑の式で言えば、
- 「B:B」=合計したい範囲
- 「A:A」=条件①の範囲
- 「”>=”&D2」=条件①
- 「A:A」=条件②の範囲
- 「”<“&D3」=条件②
となります。
特にわかりにくい「条件①・②」ですが、
- 条件①=日付が「2019年08月(D2)」以上(≧)
- 条件②=日付が「2019年09月(D3)」未満(<)
を同時に満たせ、と言っている状態になります。
つまり、「8月中の練習時間のみをすべて合計しろ」という命令になるんです。
最後に…
今回、Googleフォーム×スプレッドシートの活用事例を示すことで、Googleフォームが単なるアンケートフォームではなく、集計したデータの料理方法によっては便利なアプリになるよ、ということを紹介していきました。
特に今回は制作する上で実作業量の少ないこの『時間管理アプリ』を題材にしたのですが、いざ文面で説明するとなるとかなり膨大かつわかりにくい内容になってしまった点、痛く反省するとともに大変勉強になりました。
こちらの記事で何かお悩み解決のヒントとなれば幸いです。
この記事を書いた人
旅田 康貴ディレクター / デザイナー / イラストレーター
デザインが一番苦手なデザイナーを目指しています。最近、名字が変わりました。