【GAS】Googleフォームの選択肢に定員を設定~チェックボックスでも対応
定員(人数制限)に達した選択肢の項目を消す、定員までの残席数を表示する、チェックボックスによる複数選択に対応したフォームです。前の記事で作成したGAS(updateItems)とスプレッドシートの関数を組み合わせて実現しました。
次の記事からの続きです。GASで組んだ関数updateItemsを今回も使います。
【GAS】Googleフォームでラジオボタン・プルダウン・チェックボックスの選択肢に定員(人数制限)を設定Googleフォームで、ラジオボタン、プルダウン、チェックボックスといった選択肢に対して、定員(人数制限)を設定できる機能があると便利です。例えば、選択メニューに「松の会(10名まで)」「竹の会(30名まで)」「梅の会(50名まで)」といっ...terihat.com2023.05.29 目次- 応用例その5
- 〇〇セミナー申込フォーム
- GASの登録
- スプレッドシートの関数
- 実行(回答)
- 結果
- おわりに
応用例その5
〇〇セミナー申込フォームこのフォームの特徴は、チェックボックスを使って、各セミナーを一人で複数選択できることです。
また、このフォームの申込みには定員があります。定員に達した選択肢の項目は、表示が消えて選べなくなります。
また、定員までの残りの席数を表示します。
①質問、②選択肢、③説明
GASの登録次の記事に従ってGAS(updateItems)をこのフォームに登録してください。
【GAS】Googleフォームでラジオボタン・プルダウン・チェックボックスの選択肢に定員(人数制限)を設定Googleフォームで、ラジオボタン、プルダウン、チェックボックスといった選択肢に対して、定員(人数制限)を設定できる機能があると便利です。例えば、選択メニューに「松の会(10名まで)」「竹の会(30名まで)」「梅の会(50名まで)」といっ...terihat.com2023.05.29 updateItems スプレッドシートの関数次に、リンクしたスプレッドシートに2枚目のシートを用意しました。このシートの内容がGAS(updateItems)で使用されます。
①フォームの質問②フォームの選択肢③フォームの説明~このB列をフォームの説明に表示します。④参照セル~このC列の値がゼロ"0"以下になると、フォームの選択肢から消えます。(このシートのA列は消えません。)
このシートを数式を表示([Ctrl]+@)してみます。
テーブル(コピペ用)で表示します。
希望時間希望の時間を選んでください(複数参加可)残席数申込者数定員数10:00~10:30 第1部=IF(C2>0,"第1部の残り:"&C2,"第1部は満席")=E2-D2=COUNTIF('フォームの回答'!B:B,"*"&A2&"*")513:00~13:30 第2部=IF(C3>0,"第2部の残り:"&C3,"第2部は満席")=E3-D3=COUNTIF('フォームの回答'!B:B,"*"&A3&"*")515:00~15:30 第3部=IF(C4>0,"第3部の残り:"&C4,"第3部は満席")=E4-D4=COUNTIF('フォームの回答'!B:B,"*"&A4&"*")5シート1表計算に詳しい人は、問題ない簡単な関数です。
今回のポイントは、チェックボックスの複数選択により1つのセルに複数の回答があることです。
それをCOUNTIFの検索条件にワイルドカード*を使うことで解決しています。
実は、チェックボックスとスプレッドシートの関数との相性はいい実は、これまでチェックボックスの選択肢に制限を与えるのは、現実的ではないと思っていました。
なぜなら、複数選択が可能だからです。
チェックボックスでは、1つの質問に対して複数の回答でも一つのセルに記録されます。
これをGASで扱うのが非常に面倒でしたので、どうやら私は意識的にチェックボックスを除外していたようです。
前々回のフォーム(応用編3)を作成して、GASで対処するのではなくスプレッドシートの関数でワイルドカード*を使えば、簡単に解決することに気付きました。
さっそく今まで使用していたGAS(updateItems)を修正してテストした結果、問題ないのでupdateItemsをチェックボックス対応とさせていただきました。
実行(回答)実行(プレビュー)します。時短のため定員数は、セミナーの各部とも5名にしてあります。
↓ ↓ 1件を送信しました。 ↓ ↓
一つのセルに2つの回答があります。
結果回答を繰り返しました。回答シートとフォームのプレビューです。
フォームの回答 シート1残数がゼロになった選択肢が消えました。満席と残席数も表示されています。
全ての選択肢の項目が定員に達すると、自動で回答の受付けが終了します。
おわりにいかがでしょうか。
今回でチェックボックスの複数選択にも、定員の制限を付けることができました。^o^
Googleフォームをより幅広く使うためにGASの勉強していたはずですが、いつの間にかスプレッドシートの関数の勉強(復習?)へ戻っていました。会社でエクセルの表計算していた時を思い出して楽しんでますけどね。
それではまた、