Google 表單應用:設定選項次數上限(日期報名人數限制
文章推薦指數: 80 %
小蛙很少真正用到Google 表單 (Google Form),只是聽聞Google 表單很方便,非常簡單就可以拉出一個問卷或統計,統計的資訊還會自動儲存到Google 試算 ...
免費資源/技巧分享/技術相關/應用分享
Google表單應用:設定選項次數上限(日期報名人數限制、顯示目前人數)
由
黃小蛙
·
已發表2021-06-24
·已更新2021-08-16
今天接到一個任務是要用Google表單應用做一個時段預約的登記功能,讓參加者可以選擇要參加哪個日期的哪個時段,聽起來功能很簡單,但隨後又增加了一些哩哩摳摳的功能,這篇記錄下來留給有需要的人!
小蛙很少真正用到Google表單(GoogleForm),只是聽聞Google表單很方便,非常簡單就可以拉出一個問卷或統計,統計的資訊還會自動儲存到Google試算表(GoogleSheets:相當於Google的Excel),既然相當於Excel,可以額外做的處理就非常多了,這一套下來整合相當方便,使得Google表單應用更加五花八門!(更多Excel相關文章)
小蛙使用Google表單用不超過5次,大多是阿咕或是蛙姐遇到Google表單不會設定的時候,小蛙才會開一個Google表單來試功能,再教他們怎麼設定,嚴格來說沒有真正用Google表單做過什麼…今天要做的這個時段預約功能,是小蛙第一次真正拿Google表單來做事XD
選項人數上限–FormRanger
玩一下Google表單後,很快就把時段預約功能做出來,真的很方便又很簡單,不過多了附加功能後就要動一點腦筋了,是什麼功能呢?
設定每個時段的人數上限
後來主管丟了一篇文章,內容是講解FormRanger這個外掛程式怎麼使用,簡單來說FormRanger可以設定讓選項超過一定數量之後,就顯示「已額滿」之類的提示訊息(可參考【Google表單教學】Google表單如何設定某一課程報名人數達到時,顯示已額滿),但小蛙照著教學做好之後發現一件很好玩的事情…就是雖然選項出現「已額滿」的提示,但是卻還是可以選~!(好一個自由心證的預約系統)
選項人數上限–ChoiceEliminator2
包括自己跟主管都覺得這樣不行…至少要讓選項不能選或是移除,後來又找到一個外掛程式叫ChoiceEliminator2(可參考限制Google表單單選項目數量,滿額就自動刪除該選項),這個功能很貼合這次任務的需求「設定每個時段的人數上限」,到達上限後會把該選項移除,這樣下一個報名的人就不會再看到無法選擇的選項,很好!就是他了!
小蛙照著做完之後,主管也覺得效果不錯,唯有一個狀況是整個的運作流程是:送出Google表單->寫入Google試算表->觸發外掛程式(小蛙猜測),小蛙在測試的時候,如果送出表單後馬上再回到填寫表單的地方,會發現即使超過設定上限該選項還在並沒有被移除,但是選擇該選項後送出,Google表單提示錯誤:該欄位必須填寫,頁面跳轉回表單後,該選項被移除顯示正常,所以如果多人同時在臨界值的時候送出表單,還是會有因為上述時間差而超過設定上限的可能性。
這部份應該是沒辦法解決的(畢竟要觸發外掛程式就會有這些流程),因此這外掛的開發者建議使用「下拉式選單」取代「選擇題」,因為多了一個動作多少可以「錯開」上述狀況的發生。
故事一定有轉折–新需求
正當覺得完成要交差了事的時候,主管突然噴出一個需求「小蛙,那個選項可以多顯示目前報名人數的資訊嗎?」(因為疫情期間,希望大家能夠預約較少人的時段)ㄟ豆…瞬間讓小蛙下不了台,研究了一下剛剛小蛙用的兩個套件:
FormRanger:可以更改選項內容,一般選項顯示「06/2508:00-10:00」,當超過人數上限後,改成輸出「06/2508:00-10:00【已額滿】」ChoiceEliminator2:可以把超過人數上限的選項移除
沒挫折哪來的後續–出問題啦
天真的小蛙想說那兩個套件加在一起使用,不就可以使用FormRanger的「更改選項內容」功能,將選項改成「06/2508:00-10:00(目前報名人數:3人)」,如果報名人數達到上限之後,再使用ChoiceEliminator2把超過的選項刪除!是不是很完美,是不是很聰明,正當小蛙不停讚嘆自己的時候…做了之後才發現事情絕對沒有憨蛙想的那麼簡單。
前半部FormRanger動態修改選項加入目前報名人數的部份沒有問題,但是後半部要讓ChoiceEliminator2刪除選項就出了問題,猜測也許是外掛程式間先後順序的衝突,又或是ChoiceEliminator2認定次數的方法就是選項的文字,例如原本的「06/2508:00-10:00」,但該選項被FormRanger改成「06/2508:00-10:00(目前報名人數:3人)」,導致對ChoiceEliminator2來說每個選項都只有1次…
不確定是不是小蛙設定上出了問題,不過時間有點趕於是放棄混和兩個外掛程式的方案,甚至還想了是不是要自己寫AppsScript來做到這件事,如果是自己用PHPorJSP來開發這簡單的表單很快就可以完成了,但小蛙覺得今天的任務就是想辦法學會使用Google表單,最後失敗的話也大致上可以知道Google表單的極限在哪裡(此時突然想到好友講的一句話:「如果你每次遇到問題就把Linux重灌,那你永遠學不會用Linux」…以前小蛙的確都是這樣弄的>=D2,"",B2&"(已預約人數:"&C2&"人)"),這公式的目的是用if來判斷如果報名人數等於或超過人數上限,就清除內容(第一個””),報名人數小於人數上限的話,用原本B2的文字加上後面給的文字及報名人數,這邊有點混亂,但是看久應該是可以看懂,「&」的功能是附加字串,B2是06/2508:00-10:00,””上引號內的文字就是字串,了解這些後應該不難看懂上面的公式滑鼠移到紅色箭頭的部份會變成十字游標,按著往下拉填充所有顯示用的選項,如果成功的話應該會看到下圖這樣
測試一下剛剛設定的公式正不正確,把人數上限降為2,如果設定正確的話,應該A2這格會變成空白
三、設定FormRanger
回到Google表單點擊右上角的外掛程式->formRanger–PROD
點選Start
繼續
建立一個選擇時段問題類型改成下拉式選單,選項不用輸入,等等可以直接透過FromRanger載入如果4空白的話,點選這裡就會跑出4點選Populatefromrange
接著點選箭頭處的+
到這邊要開始把FormRanger外掛程式跟剛剛我們建立的Google試算表關聯起來了,選取剛剛的Google試算表後點選下方的Select
選擇對應的工作表(1)跟顯示用(2)這欄,(3)的部份可以讓你看看選擇的對不對,因為我們剛剛設定好有已預約人數的字樣的選項,確認沒問題後點選Next(4)
最後把剛剛設定的Range規則儲存起來,可以隨便輸入名字,小蛙沒試過中文不清楚,不過保險一點還是設定英文好,這邊只是等等比較方便選取而已,隨便取名字自己看得懂記得住就好,設定完成後點選(2)Saveandpopulatequestion
回到主畫面後,可以看到(1)已經自動選取剛剛我們儲存的Range,接著將(2)切換到ON後點選(3)Updatequestionlist,更新完成後(4)就會根據Google試算表的顯示用欄位更新選項。
四、測試FormRanger
前台確認一下,選項是這樣沒錯,選擇08:00-10:00的時段送出表單試試
08:00-10:00的報名人數到達人數上限了,A2儲存格被清除成空白
來看看Google表單,08:00-10:00的選項已經沒有了,成功!
文章到這邊就結束了,也成功達成今日任務及後續增加的需求,小蛙已經盡可能每個步驟都講清楚了,小蛙一開始看FormRanger跟ChoiceEliminator2的使用方法也是霧沙沙不知道到底是什麼,花了一個下午的時間才搞懂,
五、額外追加:變體
今天多一個需求是,因為這個預約表單的跨度大概有15天,每天又有6個區間,所以會有15*6個選項,乍看之下沒什麼問題,直到過去的天數越來越多,越到後面要選擇日期的時候就要先往下捲一大段才能找到當天以後的時段,所以主管希望可以移除過去天數的選項,想一想也是很合理,過去的本來就不能再預約。
根據前面的經驗,我們得知一件很重要的事情
只要「顯示用」欄位空白FormRanger就可以把該選項移除
FormRanger有兩個主要trigger(下圖下方Auto-repopulatequestions的地方),分別是
Onformsubmit會在有人送出表單之後,再重新從Excel清單裡面載入選項Everyhour每個小時候不管有沒有人送出都會從Excel清單中重新載入選項
到這邊不難了解到,只要把FormRangertrigger及欄位選項設定成空白,這兩件事情就可以達成新需求了(FormRanger搭配GoogleSheets公式真的很強大),來看看要怎麼做。
擷取出選項中的日期
在E2儲存格中加入公式=DATEVALUE(LEFT(B2,5)),LEFT(B2,5)的意思是從B2儲存格中取左邊五個字,因為小蛙設定的日期是06/25,06/01這種月、日兩位的,所以固定5個字,再把這些字透過DATEVALUE()轉成日期格式。
補充:小蛙實際用的案例是日期:06/25(五),這種時候就要改用MID(B2,4,5)來取B2儲存格第四個字起的5個字,取得的結果就也是06/25。
但是上面的數字好像怪怪的,44372是什麼?別急,點選上面有一個123的圖案,下拉選單找到「其他格式」後,進入「更多日期與時間格式」
選一個自己喜歡的呈現方式,小蛙這邊是設定年份四位、月份兩位要補齊、日期也是兩位要補齊
套用之後就可以正常顯示2021/06/25了
加入日期判斷
接下來第二個步驟是將選項中的日期與今天的日期比較,在Excel裡面今天日期的取法很簡單就是TODAY(),來看這邊完整的公式=IF(OR(C2>=D2,E2
調整Google試算表
剛剛提到我們要使用試算表值(spreadsheetcellvalue)來當作關閉表單的依據,安裝好FormLimiter後就來加工Google試算表吧~首先小蛙將H1當作該關閉依據,其他欄位都先不動
在H1中輸入公式=COUNTIF(A$2:A$4,"*預約*")=0,大概說明一下這邊用到COUNTIF公式,可以用來計算選定範圍內儲存格符合設定條件的數量,公式搭配上面那張圖A$2:A$4就是我們用來設定顯示(選項)用的文字範圍,"*預約*"可以換成自己要查詢的文字,這邊因為每個顯示用的選項都會有「預約」兩個字,前後「*」代表任意文字,只要該儲存格中任意位置有出現「預約」兩個字就加計1,因此當顯示用儲存格內的文字都被清空之後,COUNTIF()的值會等於0,而H1設定的條件是COUNTIF()=0,當此條件發生時H1會顯示TRUE,否則會是FALSE。
其實也可以直接簡化成讓這邊輸出數字(把=0拿掉)也是很好理解。
設定FormLimiter
前置作業都完成後開始設定FormLimiter,開啟FormLimiter後可以看到以下畫面,LimitType選擇剛剛提到的依據Google試算表特定儲存格的值spreadsheetcellvalue(1),選擇哪個試算表頁籤的哪個儲存格(2),接著設定符合關閉Google表單的值是true(3),如果上面COUNTIF那邊維持數字的話,這邊就設定0,若(2)設定錯誤會在這邊顯示紅字,沒有紅字的話代表設定都正確,最後設定關閉表單時使用者看見的文字,最下面可以勾選表單關閉時是否要收到電子郵件通知,確定都沒問題點選Saveandenable(5)就完成了!
最後完整測試
從下圖可以看到剩最後一個選項最後一個使用者可以選擇,注意A2~Ax還有值,所以H1顯示FALSE,因此FormLimiter不會把表單關閉
Google表單也顯示正常,剩下最後一個表單,到這邊都還是照著之前設定的劇本走,接著送出表單把最後一個名額用掉
送出後可以發現H1因為A2~Ax已經沒有顯示用的值而變成了TRUE,如果已經沒有選項了,這格也沒有變成TRUE的話,可能是上面有公式設定錯誤,再檢查看看
過一下下等外掛機制觸發再開啟Google表單,就看到剛剛設定關閉表單時要顯示給使用者看的文字
後台確認表單已關閉
如果有勾選Email通知的話,管理者也會收到像下面這個郵件
好了,終於補完了Google表單應用!感謝您的收看,小蛙下台一鞠躬~
Google系列文章:
PHPClient操作GoogleAPIs(1)開啟與測試APIPHPClient操作GoogleAPIs(2)安裝GoogleAPIClientforPHPPHPClient操作GoogleAPIs(3)GoogleAPIsCredentials介紹PHPClient操作GoogleAPIs(4)使用GoogleSearchConsoleAPIsGoogle表單應用:設定選項次數上限複製Google表單(CopyAGoogleForm)GoogleAdsense:向Google提交稅務資料|填寫W-8BEN稅務表單Google雲端外帶服務(Takeout):輕鬆打包雲端硬碟、相簿…等資料Google相簿取得真實圖片位置(插入圖片到文章)gdirve讓你在Linux文字介面也能好好使用GoogleDriveMicrosoftOfficeWord無法開啟GoogleDrive超連結
Excel相關文章:
加入篩選器及下拉選單(資料驗證)搜尋表格填入資料強大的VLOOKUP,INDEX,MATCH分拆Excel成多個檔案(SplitAExceltoFiles)Excel使用POI讀取文字格式日期卻變成數字的問題Java讀取Excel文件(xls,xlsx)–使用ApachePOIOracle匯入/匯出Excel(透過SQLDeveloper)JSP將資料匯出成Excel直接下載byJExcelApi(jxl)Java+Excel=JXLNCRxxxx;處理方式:Java&VBA
標籤:Google表單GoogleFormFormRanger選擇次數上限報名人數限制選項次數人數限制選擇次數限制天數限制動態刪除選項更改選項文字顯示目前人數外掛程式ChoiceEliminator2移除選項修改選項隱藏選項變更選項刪除過期選項移除過期選項設定期限FormLimiterFormLimiter如何自動關閉表單關閉Google表單
下一則javax.net.ssl.SSLHandshakeException:Receivedfatalalert:handshake_failure抗戰歷程
上一則Certbot申請SSLcertificate錯誤問題
2個回應
迴響2
自動參照通知0
張元龍表示:
2021-08-1512:14:07
謝謝您的分享,受益良多。
此方法可將額滿的選項取消顯示,但是當每一個都已額滿時,選項還是會保留最後一筆,無法關閉回應功能。
是否有方式能使全部選項都額滿時,即可關閉表單的回應或顯示全額滿呢?
回覆
黃小蛙表示:
2021-08-1610:22:20
已經把該問題的解決方法更新在文章後半段囉!
回覆
發佈留言取消回覆發佈留言必須填寫的電子郵件地址不會公開。
留言顯示名稱
電子郵件地址
個人網站網址
跟隨:
更多
Google表單應用:設定選項次數上限(日期報名人數限制、顯示目前人數)
一大堆檔案要改名怎麼辦?ReNamer批次更改檔名讓你不頭大
Word頁碼跑掉、亂掉、空白及不連續的問題
和雲iRent租車:2021最推薦的24H自助租車教學(送免費1小時)
第一次用iRent租ToyotaYaris就上手
Chromecast+iPhone網頁影片也能輕鬆投放!
超划算的ProAppsBundle教育版:FinalCutProX+Logic...
iRent租車cp值超高,以小時計費的自助租車使用心得及教學分享
不可或缺的超威猛投放神器─GoogleChromecast設定教學
實測教學–零錢、硬幣也難不倒的ATM硬幣存款機
延伸文章資訊
- 1COUNTIF - 文件編輯器說明
您有在公司或學校使用Google 文件等Google 產品嗎?快來試試實用的秘訣、教學課程和範本,瞭解如何在不安裝Office 的情況下處理Office 檔案、建立動態專案計劃和小組 ...
- 2Google雲端硬碟單選問卷調查統計表@ 軟體使用教學 - 隨意窩
- 3Google 表單應用:設定選項次數上限(日期報名人數限制
小蛙很少真正用到Google 表單 (Google Form),只是聽聞Google 表單很方便,非常簡單就可以拉出一個問卷或統計,統計的資訊還會自動儲存到Google 試算 ...
- 4Google問卷教學7步驟,一次學會Google表單所有功能!
應用範圍與適用對象也非常廣泛,從日常統計像是假日要去哪裡玩、同事間團購商品數量、喜酒多少人參加、心理測驗等,一直到研究生的問卷研究、政客的市民 ...
- 5google表單統計數量在PTT/Dcard完整相關資訊
關於「google表單統計數量」標籤,搜尋引擎有相關的訊息討論:. 免費建立和分析問卷調查。 - Google 表單您可以自行建立新的問卷,也可以同時和其他使用者一起製作。