定員(人数制限)に達した選択肢の項目を消す、定員までの残席数を選択肢の項目に表示するフォームをです。
前の記事で作成したGAS(updateItems)とスプレッドシートの関数を組み合わせて実現しました。
次の記事からの続きです。GASで組んだ関数updateItemsを今回も使います。
応用例その3
〇〇セミナー申込フォーム
このフォームの申込みには定員があります。定員に達した選択肢の項目は、表示が消えて選べなくなります。
また、選択肢の項目に残りの席数を表示します。
①質問、②選択肢、③説明
GASの登録
次の記事に従ってGAS(updateItems)をこのフォームに登録してください。
スプレッドシートの関数
次に、リンクしたスプレッドシートに2枚目のシートを用意しました。
このシートの内容がGAS(updateItems)で使用されます。
①フォームの質問
②フォームの選択肢
③フォームの説明~このB列をフォームの説明に表示します。
④参照セル~このC列の値がゼロ"0"以下になると、フォームの選択肢から消えます。(このシートのA列は消えません。)
⑤選択肢として表示されるA列のベースとなります。COUNTIF関数の検索条件に使います。
このシートを数式を表示([Ctrl]+@)してみます。
テーブル(コピペ用)で表示します。
希望時間 | 希望の時間を選んでください | 残席数 | 申込者数 | 定員数 | 希望時間(参照用) |
=F2&" (残り"&C2&"席)" | =IF(C2>0,"","第1回は満席") | =E2-D2 | =COUNTIF('フォームの回答'!B:B,F2&"*") | 20 | 10:00~11:00 第1回 |
=F3&" (残り"&C3&"席)" | =IF(C3>0,"","第2回は満席") | =E3-D3 | =COUNTIF('フォームの回答'!B:B,F3&"*") | 20 | 13:00~14:00 第2回 |
=F4&" (残り"&C4&"席)" | =IF(C4>0,"","第3回は満席") | =E4-D4 | =COUNTIF('フォームの回答'!B:B,F4&"*") | 20 | 15:00~16:00 第3回 |
表計算に詳しい人は、問題ない簡単な関数です。
今回のポイントは、通常ではCOUNTIFの検索条件にA列を使うのですが、A列は関数を使うので(循環依存を避けるため)参照用のF列を作る必要がありました。
また、次の回答シートを見るとわかりますが、希望時間の回答には残席数も記録されるので、全てユニークな値となります。
これはカウント条件にF列の値にワイルドカード(*)を付けることで解決します。
実行(回答)
実行(プレビュー)します。
結果
回答(×54)を繰り返しました。2枚目のシート(ここでは、シート1)です。
次のようになりました。
残数がゼロになった選択肢の項目が消えました。ここまで、残席数も表示されています。
全ての選択肢の項目が定員に達すると、自動で回答の受付けが終了します。
おわりに
いかがでしょうか。
今回はスプレッドシートの関数が苦手な人には、分かり辛かったと思います。
逆に関数に詳しい人は、これを基本に改良が簡単にできるのではないでしょうか。
それではまた、
コメント