Google FormsでGoogle Sheetsのデータを検索するには?

"出席番号を入力すると、生徒一人ひとりに自分の成績を表示したい"- Google Docs Editors Community

誰かが出席番号、注文番号、クーポンコードを入力したら、フォームはGoogle Sheetから一致する値 (成績、注文の状況、割引) を見つけるべきです。Googleのフォーラムでは25人がまさにこれを求めています。Google Formsは記入中にSheetを読めず、Apps Scriptは送信後にしか動きません。Formfacadeなら、シートを接続してルックアップを普通の英語で説明するだけで、答えた瞬間に値が表示されます。値は表示、非表示、読み取り専用のいずれにもでき、回答と一緒に記録されます。

以下では、ルックアップとは何か、なぜApps Scriptではできないのか、そしてFormfacadeでの設定方法を説明します。

Google Formsのルックアップとは?

ルックアップは、フォームの質問をGoogle Sheetの列に結び付けます。回答者が答えを選択または入力すると、フォームはリアルタイムでシートを照会し、その選択に基づいて関連する値を返します。
たとえば、回答者がクーポンコードを入力すると、フォームはシートから該当する割引を検索して返せます。また、回答者がプルダウンから生徒の名前を選ぶと、フォームはシートからその生徒のメールアドレスを検索して返せます。メールアドレスは、フォームのメールアドレス欄の回答として記録されます。この欄を非表示にして、回答者がフォーム記入中に見えないようにすることもできます。
これは、シートを選択肢のリストの供給にだけ使うプルダウンの自動入力とは異なります。ルックアップは、回答者が選択または値を入力した後に行われ、選んだ内容に基づいてシートからデータを返します。

Apps Scriptは使えますか?

Apps Scriptは、フォームを編集したり、回答者がフォームを送信した後に処理を実行したりするのに使えます。たとえば、シートを参照してプルダウンの選択肢を更新したり、回答者に確認メールを送ったりできます。しかし、Apps Scriptは、Google Forms本体のフォーム内で回答者の入力にリアルタイムで反応することはできません。
ルックアップでは、回答者が選択または値を入力したその瞬間にフォームがシートを照会する必要がありますが、Apps Scriptには回答者の記入中にこれを行う方法がありません。

URLでGoogle Formsをインポートする

すでにGoogle Formsでフォームを作成している場合は、フォームのURLを使ってFormfacadeにインポートできます。これでFormfacadeにフォームのコピーが作られ、そこでルックアップを設定できます。回答者がFormfacadeのリンクからフォームを送信すると、回答はGoogle Formsに記録されます。Google FormsのLink to Sheets機能を使えば、回答をリアルタイムでGoogle Sheetsに自動同期できます。
この例を見てみましょう。ある学校の事務用フォームには、生徒の名前のプルダウンがあります。スタッフが名前を選ぶと、生徒のメールアドレスがシートから自動で検索され、回答と一緒に記録されます。手入力のミスがなくなり、メールアドレスは常に正確で最新です。メールアドレスの欄は非表示にでき、スタッフはフォーム記入中にそれを見ずに済みます。

設定方法

Google Formには、回答者が答える質問と、検索した値を入れる質問が必要です。Google Sheetには、それぞれに対応する列が必要です。
What do you want to do with your Google Sheets data? の画面。Connect Google Sheets to your form with AI に印が付いています
  • Google Formのリンクを貼り付けて Next をクリックします。Formfacadeが質問をコピーします
  • シートを選んで Next をクリックします。まだ接続していない場合は Connect a Google Sheet をクリックし、Googleのウィンドウでシートを選びます
  • "How do you want to connect?" の下で、あらかじめ書かれた指示をルックアップに合わせて編集し、Proceed をクリックします。例:「スタッフが生徒の名前を選んだら、Students シートからメールアドレスを検索して返す」
  • Preview your form をクリックして試します
  • Formfacadeのリンクを回答者に共有します。
やりたいことを普通の英語や他の言語で説明すれば、回答者が選択した時点でリアルタイムにシートを照会し、シートのデータで答えを埋めます。フォームはシートと自動で同期されます。
別の例を見てみましょう。ある小売店は、Google Formで注文を受け付け、割引の利用にも対応しています。お客様がクーポンコードを入力すると、フォームはリアルタイムでシートを照会し、該当する割引を返します。クーポンコードがシートにない場合は、フォームにエラーメッセージが表示されます。例:「お客様がクーポンコードを入力したら、Discounts シートから該当する割引を検索して返す」

この方法を選ぶ理由

  • Apps Scriptは不要。普通の英語の指示でルックアップを設定できます。
  • 大量のデータに対応。Google Sheetsにあるデータなら、どんな大きさでも性能の上限なしで扱えます。
  • 柔軟なUI。ルックアップの項目を非表示にしたり読み取り専用にしたりして、回答者が返された値を編集できないようにできます。
  • シートが唯一の正しい情報源。1か所でデータを更新すれば、接続されたすべてのフォームに自動で反映されます。
  • シートが変更されることはありません。Formfacadeはフォームを速く表示するためにデータを複製しており、シートへの書き込み権限は一切使いません。

制限

  • Formfacade - Sheets Lookupのサブスクリプションが必要です。
  • 回答は通常どおりGoogle Formsに記録されますが、回答を集めるには、Google Formsの通常のURLではなくFormfacadeのリンクを使う必要があります。

よくある質問

検索した値を回答者に見せないようにできますか?
はい。返された値を表示する欄を非表示にできます。値はフォームの回答と一緒に記録されますが、回答者はフォーム記入中にそれを見ることはありません。
回答者が入力した値がシートにない場合はどうなりますか?
フォームは回答者にエラーメッセージを表示できます。たとえば、お客様が無効なクーポンコードを入力すると、そのコードは存在しないとフォームが知らせます。
ルックアップは、プルダウンを動かしているシートとは別のシートから値を返せますか?
はい。プルダウンとルックアップは別々のシートに接続できます。
ルックアップを動かすには、シートを特定の形式にする必要がありますか?
いいえ。検索する値が1つの列に、関連する値が別の列にあれば、Formfacadeは今のシートの構成のままで使えます。
回答はGoogle Formsに記録されますか?
はい。インポートする方法でもアドオンでも、回答は通常どおりGoogle Formsに記録されます。Google FormsのLink to Sheets機能を使えば、回答をリアルタイムでGoogle Sheetsに同期できます。

まとめ

回答の途中でフォームがGoogle Sheetから値を見つける必要があるとき、Google Formsにはそれができず、Apps Scriptは送信後にしか動きません。Formfacadeなら、シートを接続してルックアップを普通の英語で説明するだけで、記入中に値が表示されます。Formfacadeで Google Sheetをフォームに接続 してください。ご質問があれば サポートにご連絡ください。

最終更新: