今天想跟大家分享如何利用 Google 表單搭配一個強大的外掛 formRanger,來製作一個可以自動更新的預約系統。
您的姓名或暱稱 (必填) 聯絡電話 (必填) 您要預約的時段 (多選方塊) 請簡要解決的問題 (請說明)
**自動更新:**formRanger 可以設定在表單提交後自動更新問題選項,避免重複預約。 **數據集中:**所有預約資料都集中在一個 Google 試算表中,方便管理和查看。 **彈性設定:**可以透過試算表中的公式,靈活設定可預約的日期、時段,甚至排除特定日期(如假日)。 **無需寫程式:**核心功能依賴 formRanger 外掛和試算表公式,大部分使用者都能自行操作。
工作表 1 (表單回應): Google 表單自動連結產生的回應工作表。這個工作表會記錄所有使用者提交的預約資訊。 工作表 2 (預約時段列表): 我們要手動建立的工作表,用來產生和過濾可預約的時段列表,供 formRanger 使用。
內容 (A欄): 產生包含日期和時段的字串。這個欄位會根據你的「開始日期」和時間間隔自動生成一系列預約時段。 範例公式 (A2儲存格): =text((row(A1)-1)+'工作表 2'!$H$1),"mm/dd(星期a) ") & text((row(A1)-1)+'工作表 2'!$H$1),"HH:mm") & "-" & text(time(hour('工作表 2'!$H$1),minute('工作表 2'!$H$1)+30,0),'HH:mm') 這個公式比較複雜,它的作用是: '工作表 2'!$H$1 引用 H1 儲存格的「開始日期」(例如:2022/8/1 上午 9:00:00)。 row(A1)-1 產生一個從 0 開始遞增的數字系列 (A2是row(A2)-1=1, A3是row(A3)-1=2...),用來計算日期偏移量。 '工作表 2'!$H$1 + row(A1)-1 讓日期每天遞增。 text(...,"mm/dd(星期a) ") 將日期格式化為月/日(星期幾)的字串。 text(time(hour('工作表 2'!$H$1),minute('工作表 2'!$H$1)+30,0),'HH:mm') 計算出結束時間(從 H1 的時間開始,加上 30 分鐘,並格式化為時:分的字串)。 用 & "-" & 將開始時間和結束時間連接起來。
將 A2 儲存格的公式向下拖曳填充,產生接下來的預約時段列表(例如產生一個月的時段)。
是否已預約 (B欄): 檢查該時段是否已被預約。 範例公式 (B2儲存格): =COUNTIF('表單回應 1'!C:C,"*"&A2&"*") '表單回應 1'!C:C 指的是「表單回應 1」工作表中的 C 欄(預約的時段)。 "*"&A2&"*" 是一個模糊匹配的條件,查找在回應的預約時段字串中,是否包含「工作表 2」A2 儲存格的完整時段字串(例如 "08/01(星期一) 21:00-21:30")。* 是萬用字元,表示匹配前後的任意文字。 COUNTIF 函數會計算符合條件的儲存格數量。如果結果大於 0,表示該時段已被預約。
將 B2 儲存格的公式向下拖曳填充。
星期 (C欄): 提取星期幾,用於過濾特定星期。 範例公式 (C2儲存格): =MID(A2,9,1) 這個公式從 A2 儲存格的字串中,從第 9 個字元開始,擷取 1 個字元(例如 "星期一" 中的 "一")。
將 C2 儲存格的公式向下拖曳填充。
顯示內容 (E欄): 這是 formRanger 實際用來 populate 表單選項的欄位。它會根據「是否已預約」和「星期」來過濾。 範例公式 (E2儲存格): =iferror(filter(A2:A,B2:B=0,REGEXMATCH(C2:C,"^[一二三四六]$")),"") filter(A2:A, B2:B=0, ...):過濾 A 欄的內容,只保留 B 欄值等於 0 的列(即未被預約的時段)。 REGEXMATCH(C2:C,"^[一二三四六]$"):進一步過濾 C 欄(星期)的內容,只保留符合正則表達式條件的列。^[一二三四六]$ 表示字串必須從頭 (^) 到尾 ($) 恰好是「一」或「二」或「三」或「四」或「六」。這排除了星期五和星期日。 iferror(...,""):如果 filter 函數沒有找到任何符合條件的列(例如所有時段都被預約或當月假日過多),就會產生錯誤,iferror 會將錯誤替換為空字串 ("") 或其他提示文字(如影片中的「已全部被預約」)。
將 E2 儲存格的公式向下拖曳填充。
開始日期 (H1儲存格): 手動設定每月預約的開始日期和時間。例如:2022/8/1 上午 9:00:00 或 2022/9/1 下午 9:00:00 (21:00)。當你更改 H1 的日期時,A 欄的預約時段列表會自動更新。
建立 Google 表單,並新增必要的文字或段落問題(姓名/暱稱、聯絡電話、問題說明)。 新增一個「多選方塊」類型的問題,作為「您要預約的時段」。 安裝 formRanger 外掛:在表單編輯頁面,點選右上角的「外掛」(像拼圖的圖示) -> 「取得外掛程式」,搜尋 formRanger 並安裝。
在表單編輯頁面,點選右上角的「外掛」圖示,然後點選 formRanger。 formRanger 側邊欄會出現。找到「您要預約的時段」這個問題。 點選該問題旁邊的「+」按鈕或選擇 "Populate from range"。 選擇你的 Google 試算表 (表單預約系統 (回覆))。 選擇「工作表 2」。 在 Column header 下拉選單中,選擇「顯示內容」(這是包含過濾後可預約時段的 E 欄)。 在 Range name 中為這個範圍取一個容易辨識的名稱(例如「可預約時段」)。 點選 Save and populate question。 **重要設定:**在 formRanger 側邊欄底部找到 Auto-repopulate questions。將 On form submit 和 Every hour 都設定為 ON。這確保表單提交後和每小時都會自動更新選項。
在表單編輯頁面,找到「您要預約的時段」問題。 點選右下角的垂直三點圖示 -> 「回應驗證」。 設定驗證規則:例如,選擇「選取」 -> 「最多」 -> 輸入數字 4。這樣每個人最多只能預約 4 個時段。 注意: formRanger 更新選項時,這個回應驗證的設定不會自動同步。如果你修改了這裡的最大預約數量,需要手動調整。
在表單編輯頁面,點選右上角的「傳送」。 選擇連結圖示。 勾選「縮短網址」以獲得一個較短的連結。 複製並分享這個連結給需要預約的人。
每月初或需要更新預約時段時,只需到 Google 試算表的「工作表 2」,修改 H1 儲存格的「開始日期」即可。A、B、E 欄會自動更新。 如果你想修改排除預約的星期幾,需要修改 E 欄公式中的 REGEXMATCH 部分(例如,若要排除星期六和星期日,將 [一二三四六] 改為 [一二三四五])。修改後向下填充公式。 如果你修改了回應驗證(最多選擇數量),需要手動到表單的設定中修改。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。