見出し画像

1つのGoogle スプレッドシートの複数のシートに複数のGoogle フォームの回答を記録する

この記事はGoogle Workspace 標準機能 Advent Calendar 2022の14日目の記事です。

こんにちは!ゆるふわクラウドおじさん こと、Teeda と申します。『Google アプリの教科書シリーズ』という本を毎年Amazon で販売していたり、大学生や新入社員さん向けにGoogle アプリ入門のUdemy 新コースの制作をしています。

普段からGoogle Workspace や各種Google アプリの機能を使い、クラウドや共同編集によっていろんな非効率を解消できる方法を探っています。みんなで便利な機能を共有できたらなあと思い、アドベントカレンダーを始めました。
アドベントカレンダーを作成するのははじめてで、これが14日目の記事です。早いものです。もう半分を切りました。あと10日くらい、記事を書いたらみんな大好き25日がやってきます。
アドベントカレンダーが残り10日を切りそうですが、ぜひどなたでも気軽にご参加いただけたらと思います。

Google フォームの回答をGoogle スプレッドシートに記録

Google フォーム、使っていますか?
Google フォームで作成したフォームの回答は「回答」タブからGoogle スプレッドシートに記録できるのです。

Google フォームのファイルを作成
フォームの回答を記録するGoogle スプレッドシートのファイルが作成される

Google フォームの回答を記録するファイルは、
「新しいスプレッドシートを作成」をすると、文字通り新しい1つのGoogle スプレッドシートのファイルを作成します。
「既存のスプレッドシートを選択」を指定すると、すでに作成されているGoogle スプレッドシートに、回答の送信を記録する新しいシートを作成します。
ここでは、新しいGoogle フォームを作成して、すでにGoogle フォームの回答を記録するシートが存在するGoogle スプレッドシートのファイルに回答を記録するようにします。

新しいGoogle フォームのファイルを作成
回答の送信を「既存のスプレッドシートを選択」して記録
フォームの送信を記録したいGoogle スプレッドシートのファイルを指定

すると、なんということでしょう?
すでに他のフォームの送信を記録するシートが存在するGoogle スプレッドシートのファイルに、さらにフォームの回答を記録するシートが作成されます。

新しいシートが作成され、回答を記録できる

1Google スプレッドシートに複数のフォームの回答を記録できる

このようにすると、1つのGoogle スプレッドシートのファイルに、
シートを分けて複数のGoogle フォームの回答を記録できます。

1つのGoogle スプレッドシートのファイルに、シートを分けて複数のGoogle フォームの回答を記録できる

これを応用すると、
顧客情報を登録するフォームをフォーム1として作成する。
顧客名と、顧客に対する活動記録を入力するフォームをフォーム2として作成する。
という複数のフォームを作成して、1つのGoogle スプレッドシートのファイル内で顧客管理を完結させることができます。

事前入力したフォームのURLを生成

フォーム1の回答を記録するシートをさらに応用すると、
「事前入力されたURL」を取得によって、質問項目に対して入力値を定義したフォームのURLを取得できます。

「事前入力したURLを取得」できる

事前入力したURLは、
https://docs.google.com/forms/d/e/[フォームID]?usp=pp_url&entry.[質問ID]=[入力値]
のように取得できます。
例えば、この記事の参考のために作成したGoogle 
 フォームに事前入力したURLは、
https://docs.google.com/forms/d/e/1FAIpQLSf380OPnhBX9cFB4L3x106WBluQfU-gh9RL8x2WRqK8fdsbjA/viewform?usp=pp_url&entry.902050881=株式会社サンタ商会

https://docs.google.com/forms/d/e/1FAIpQLSf380OPnhBX9cFB4L3x106WBluQfU-gh9RL8x2WRqK8fdsbjA/viewform?usp=pp_url&entry.902050881=合同会社スーパートナカイ

のように事前入力させられます。

事前入力の内容を定義したフォーム

フォーム1:取引先を登録するフォーム
として、回答を集計しているシートに対して、
フォーム2:取引先ごとの活動を記録するフォーム
事前入力したURLに、取引先名の回答内容を追加する関数を定義することで、複数のGoogle フォームと、1つのGoogle スプレッドシートで顧客管理システムを簡易的に構築できます。

=HYPERLINK("事前入力したURLの、質問IDまで"&[取引先名のセル番地],[取引先名のセル番地])

とすることで、フォーム1の回答の一覧から、事前入力したフォーム2の回答画面を表示できます。

HYPERLINK 関数で事前入力したフォームのリンクを定義
各行のセルに対応した事前入力されたフォームが起動する

ARRAYFORMULA 関数で最下部まで関数を定義する

Google フォームの回答を記録したばかりだと、シートの最下部に新しい行が追加されるため、最下部のセルの数式が次の行のセルにコピーされないという課題があります。
そんなときは、
ARRAYFORMULA 関数を使用して、2行目から最下部までを指定することで回答の送信が追加された瞬間に、HYPERLINK 関数の処理を表示できます。

ARRAYFORMULA とIF 関数で常に最下部まで処理するよう定義

こんな風に、Google フォームとGoogle スプレッドシートの標準機能だけを駆使して顧客管理ツール、プロジェクト管理ツールが実装できそうですね。

まとめ

Google Workspace 標準機能 Advent Calendar 2022の14日目の記事でした。

Google フォームの回答の記録:Google スプレッドシートのファイルは1対1ではないという機能を活用すると、簡易的な顧客管理ツールやプロジェクト管理ツール、学校のクラス別の出席確認ツールなどをすばやく実装できそうですね。

Google フォームの回答の記録をどのように管理するのが最も効率的かを考察して「新しいスプレッドシート」「既存のスプレッドシート」を使い分けましょう。

Google Workspace 標準機能 Advent Calendar 2022のご参加者さん、お待ちしています。

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