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名にしました。

プルダウンを開く

結果

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

プレビューです。

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

プルダウンを開く

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

おわりに

いかがでしょうか。

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

それではまた、

コメント

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