今天這篇教學要來解決一個很多人的痛點:當我們製作 Google 表單時,希望在表單送出後,Google 試算表(Sheets)能自動幫我們產生一組「民國日期 + 流水號」的編號。
為什麼不用公式 (Formula) 就好?
刪除資料會導致編號亂掉: 如果你使用公式(例如 ROW() 或 COUNTIF),一旦你刪除中間某一行資料,下面的編號全部會重新計算。原本的 0005 號可能會變成 0004 號,這對於訂單或報名序號來說是災難。 新版表格的限制: Google Sheets 最近更新了「表格」功能,對於自動擴展的陣列公式支援度有些改變,可能會導致公式無法自動帶入新的一列。
實作步驟教學
第一步:準備 Google 表單與試算表
建立一個 Google 表單(例如包含姓名、備註)。 點擊「回應」並連結至 Google 試算表。 打開連動的 Google 試算表,在原本的欄位中間(或最後面),插入一個新欄位,命名為「自動編號」。 注意:請記住這個欄位是第幾欄(A=1, B=2, C=3...)。在本範例中,自動編號是在 C 欄(第 3 欄)。
第二步:利用 AI Studio 產生程式碼
前往 Google AI Studio。 輸入以下提示詞(Prompt): 我想要表單送出時,會自動在「自動編號」這一欄(C欄),依據時間戳記自動產生 1141213-0001 格式的編號。 前面是民國日期,後面四碼是當日產生的流水號。請給我 Google Apps Script 的程式碼。 AI 會告訴你邏輯,並給你一段完整的程式碼。它通常會建議使用 LOCK 機制來避免多人同時送出時編號重複的問題。
第三步:貼上 Google Apps Script
回到你的 Google 試算表。 點選上方選單的 「擴充功能」 -> 「Apps Script」。 會跳出一個程式碼編輯器,將裡面原本的 myFunction 清空。 將剛剛 AI 給你的程式碼全部複製貼上。 關鍵修改: 檢查程式碼中關於「欄位」的設定。如果 AI 寫的是第 1 欄,但你的自動編號在 C 欄,請將該數字改成 3。 點擊上方的磁片圖示「儲存」,專案名稱可以取跟試算表一樣。
第四步:設定「觸發條件」 (最重要的一步!)
在 Apps Script 左側選單,點擊一個像鬧鐘的圖示 「觸發條件」 (Triggers)。 點擊右下角的 「新增觸發條件」。 設定如下: 執行功能: 選擇剛剛貼上的函數名稱(通常是 generateAutoID 之類的)。 部署作業: 上端 (Head)。 活動來源: 試算表 (From spreadsheet)。 活動類型: 提交表單時 (On form submit) <--- 這一定要選對!
按「儲存」。
第五步:核對權限
選擇你的 Google 帳號。 可能會出現「Google 尚未驗證這個應用程式」的紅字警告(因為這是你自己寫的腳本)。 別擔心,點選左下角的 「進階 (Advanced)」。 點選最下方的 「前往... (不安全)」。 點選 「允許 (Allow)」。
測試成果
回到你的 Google 表單預覽頁面。 隨便填寫一筆資料並送出。 回到 Google 試算表觀察。 你會發現,雖然表單原本沒有填寫編號,但在資料進來的瞬間,Script 會自動在 C 欄補上 1141213-0001。 再送出第二筆,就會變成 1141213-0002。 壓力測試: 試著刪除第一筆資料(0001號),你會發現第二筆資料依然維持 0002,不會因為前面被刪除而自動遞補變成 0001。這就是我们要的穩定流水號!
補充:如果堅持要用公式 (Formula) 怎麼做?
總結
使用 Google AI Studio 搭配 Apps Script,我們可以輕鬆解決 Google 表單無法自動產生客製化流水號的問題。這個方法穩定、可靠,且具備真正的資料庫編號特性(不會隨意變動)。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。