PR

【GAS】Googleフォームの選択肢に定員を設定~複数人の申込みに対応

Google Workspace

定員(人数制限)に達した選択肢の項目を消す定員までの残席数を表示する選択肢に人数(1~3人)も含むフォームをです。
前の記事で作成したGAS(updateItems)とスプレッドシートの関数を組み合わせて実現しました。

次の記事からの続きです。GASで組んだ関数updateItemsを今回も使います。

スポンサーリンク

応用例その4

〇〇講演会申込フォーム

講演会などの申込みは、ペアチケットのように1回の申込みで2枚、3枚と複数枚の予約ができた方がいいようです。

このフォームでは、各講演会で1~3人申し込めるように選択肢の項目を増やしてあります。選択肢が多いのでプルダウンを選びました。

このフォームの申込みには定員があります。定員に達した選択肢の項目は、表示が消えて選べなくなります。また、定員までの残りの席数を表示します

質問、選択肢、説明

GASの登録

次の記事に従ってGAS(updateItems)をこのフォームに登録してください

updateItems

スプレッドシートの関数

次に、リンクしたスプレッドシートに2枚目のシートを用意しました。

このシートの内容がGAS(updateItems)で使用されます

フォームの質問
フォームの選択肢
フォームの説明このB列をフォームの説明に表示します。
参照セルこのC列の値がゼロ"0"以下になると、フォームの選択肢から消えます。(このシートのA列は消えません。)

このシートを数式を表示([Ctrl]+@)してみます。

テーブル(コピペ用)で表示します。

申込日/申込人数ご希望の公演日と申込人数(1~3名)をお選び下さい。申込可能数残席数申込数来場者数定員数
7月2日/1名=IF(D2>0,"7月2日:残り"&D2&"座席","7月2日は満席になりました。")=INT($D$2/1)=G2-F2=COUNTIF('フォームの回答'!B:B,A2)=E2+E3*2+E4*350
7月2日/2名=INT($D$2/2)=COUNTIF('フォームの回答'!B:B,A3)
7月2日/3名=INT($D$2/3)=COUNTIF('フォームの回答'!B:B,A4)
7月9日/1名=IF(D5>0,"7月9日:残り"&D5&"座席","7月9日は満席になりました。")=INT($D$5/1)=G5-F5=COUNTIF('フォームの回答'!B:B,A5)=E5+E6*2+E7*350
7月9日/2名=INT($D$5/2)=COUNTIF('フォームの回答'!B:B,A6)
7月9日/3名=INT($D$5/3)=COUNTIF('フォームの回答'!B:B,A7)
7月16日/1名=IF(D8>0,"7月16日:残り"&D8&"座席","7月16日は満席になりました。")=INT($D$8/1)=G8-F8=COUNTIF('フォームの回答'!B:B,A8)=E8+E9*2+E10*350
7月16日/2名=INT($D$8/2)=COUNTIF('フォームの回答'!B:B,A9)
7月16日/3名=INT($D$8/3)=COUNTIF('フォームの回答'!B:B,A10)
sheet1

表計算に詳しい人は、問題ない簡単な関数です。

今回のポイントは、残席数を申込人数(1~3)で割って整数値をとることで、残席数が申込人数より小さいときはゼロとなることです。

ゼロとなった選択肢の項目から消えていくので、自然と3枚→2枚→1枚申込と消えていきます

実行(回答)

実行(プレビュー)します。時短のため定員数は、各講演会とも5名にしました。

プルダウンを開く

結果

回答を繰り返しました。シートの結果です。

プレビューです。

申込可能数がゼロになった選択肢の項目が消えました残席数も表示されています

プルダウンを開く

全ての選択肢の項目が定員に達すると、自動で回答の受付けが終了します

おわりに

いかがでしょうか。

今回のフォームとスプレッドシートの関数は少し力業過ぎたかなと思いました。
実用性はあるのかな?

それではまた、

コメント

  1. さっそくのお返事をいただき、ありがとうございます。
    回答タブの削除をしたら残席数が反映されました!

    森林・林業の普及啓発のため、小さな任意団体が主催するイベントで参加申し込みの手間を何とか減らしたいけれど、有料のサイトを使う予算がないと悩んでいたので、本当に助かりました。
    ありがとうございました。

    • お役に立てたようで何よりです。
      フォームの回答を削除する必要があることも、掲載しておいた方が良さそうですね。
      とても参考になりました。ありがとうございます。

      有料サイトは高額ですよね。コストをかけられない方々のために作成しましたので、そう言っていただけて本当に良かったです。
      これからも森林や林業の普及啓発活動を応援しています。

  2. はじめまして。

    とても便利なワザを公開してくださり、ありがとうございます。
    イベントでのワークショップの申込のために、時間ごとに定員をつくり、複数人の申込を受け付ける方法を探していたので、ドンピシャでした。

    テストではうまくいったので、作りたい時間帯以下の4種類、人数は4人までの形に応用してみました。
    (時間帯10:00~10:50 11:00~11:50 13:00~13:50 14:00~14:50)
    シート1のB列の説明には正しい残席数や満席の表示が出ているのにフォームの説明のところには反映されず、満席になってもせ選択肢は消えません。

    お忙しいところ恐縮ですが、アドバイスをいただけると嬉しいです。
    よろしくお願いします。

    • 当ブログをご覧いただきありがとうございます。

      シートに表示されているのに、フォームに反映されないのはC列が正しく記されていないことが多いです。
      次に時間帯4種と人数4人に対応のパターンを載せましたので参考にしてください。

      ※”フォームの回答”シートの回答行を全て削除したときは、必ずフォームの回答タブの”すべての回答を削除”をお忘れずに!

      これでもうまく行かないようでしたらお知らせください。

タイトルとURLをコピーしました