我用 Google 表單收手搖飲的預訂,回應進來的第一天很順,第二天我順手把回應分頁裡一個 Email 的大小寫改了,又在旁邊加了一欄算杯數。再過幾天表單多了一題,欄位就開始對不上。
這篇把回應分頁交給表單,自己另開一個分頁做所有處理,表單怎麼改都不怕。
圖:表單回應 1 只由表單寫入,所有清理與統計都放在右邊的計算分頁。
把表單連到試算表
我習慣從試算表這邊開始:
- 開一份空白試算表,點「工具」>「建立新表單」(「插入」選單裡沒有「表單」)。
- 瀏覽器會開一個新分頁,這就是表單的編輯畫面。我加三題:
| 題目 | 類型 | 必填 |
|---|---|---|
| 品項 | 下拉式選單 | 是 |
| 杯數 | 簡答 | 是 |
| 聯絡信箱 | 簡答 | 是 |
依上表逐題設定題目、類型與「必填」。杯數可另外設定回答驗證,只接受所需的數字範圍。
- 切到表單上方的「回應」分頁。從試算表這邊建立的表單,已經連好了,旁邊會看到「在試算表中查看」。
如果使用既有表單,依選擇回應儲存位置的官方說明:
- 在表單編輯器開啟「回應」分頁>「摘要」,右上角「更多」>「選取回應目的地」(也可以從試算表圖示進入)。
- 選「建立新的試算表」,或「選取現有的試算表」。
- 前者命名後按「建立」;後者選定檔案後按「選取」。
- 回到目的檔確認回應分頁,再送出一筆不含個資的測試回應,核對題目與欄位一一對應。
連好之後,試算表會多一個分頁,預設叫「表單回應 1」。
表單回應 1 長什麼樣
第一欄是時間戳記,表單送出時自動填入,後面幾欄依題目順序排。我手上有 6 筆預訂:
| 時間戳記 | 品項 | 杯數 | 聯絡信箱 |
|---|---|---|---|
| 2026/10/10 16:48:20 | 青茶 | 2 | ·Sales@Mail.com· |
| 2026/10/10 21:05:44 | 蘋果紅茶 | 1 | hr@mail.com |
| 2026/10/11 09:12:30 | 蘋果紅茶 | 3 | DESIGN@mail.com |
| 2026/10/11 09:40:05 | 烏龍奶茶 | 2 | ·sales@mail.com |
| 2026/10/11 10:05:18 | 青茶 | 4 | ops@MAIL.com |
| 2026/10/11 11:26:33 | 烏龍奶茶 | 1 | ·hr@mail.com· |
表中的 · 代表一個空白。Email 前後多空白、大小寫亂跳很常見,表單不會幫你修,要靠後面的公式。
這一頁我不手動改,原因有兩個:
- 這一頁是原數據,但它的欄位和列由表單決定。你改了某一格,表單那邊的「回應」畫面看到的還是原本的答案,兩邊就對不上。
- 你在這一頁插入列、插入欄,或在旁邊放公式,都有機會影響表單下一筆回應寫進去的位置。如果表單開放填寫的人事後編輯自己的回應,那一列也會被表單重新寫入,你改的內容跟著不見。
三層架構 那篇說筆誤直接改原數據,但回應分頁要例外,因為這一頁由表單寫入,欄位和列都歸它控制。要更正某一筆,在計算分頁旁邊放一欄手填的「更正」,公式優先取更正的值,原始回應原封不動。
另開分頁接資料
新增一個分頁,命名 計算_預訂清理(前綴的意思看 設計可維護的試算表)。A1:D1 打上標題:收到日期、品項、杯數、聯絡信箱。
A2 放第一條,把時間戳記的日期部分取出來:
A2:INT 取時間戳記的整數部分,也就是日期;回應是空白的列留空
=ARRAYFORMULA(IF('表單回應 1'!A2:A="", "", INT('表單回應 1'!A2:A)))B2 把品項原樣帶過來,C2 把杯數轉成數字,D2 把 Email 去空白、轉小寫:
B2:品項原樣帶過來
=ARRAYFORMULA(IF('表單回應 1'!B2:B="", "", '表單回應 1'!B2:B))C2:VALUE 把杯數轉成數字,之後才能加總
=ARRAYFORMULA(IF('表單回應 1'!C2:C="", "", VALUE('表單回應 1'!C2:C)))D2:去掉前後空白、轉成小寫
=ARRAYFORMULA(IF('表單回應 1'!D2:D="", "", LOWER(TRIM('表單回應 1'!D2:D))))四條公式各放一格,不用往下拖。ARRAYFORMULA 搭配 IF(… = "", "", …) 的寫法在 ARRAYFORMULA 入門 講過。來看看結果:
| 收到日期 | 品項 | 杯數 | 聯絡信箱 |
|---|---|---|---|
| 2026/10/10 | 青茶 | 2 | sales@mail.com |
| 2026/10/10 | 蘋果紅茶 | 1 | hr@mail.com |
| 2026/10/11 | 蘋果紅茶 | 3 | design@mail.com |
| 2026/10/11 | 烏龍奶茶 | 2 | sales@mail.com |
| 2026/10/11 | 青茶 | 4 | ops@mail.com |
| 2026/10/11 | 烏龍奶茶 | 1 | hr@mail.com |
INT 的結果可能顯示成一串數字,把 A 欄選起來,點「格式」>「數值」>「日期」就好了。
新的回應進來,這四條公式自己會長出新的一列。要在回應旁邊自動補編號、查價目表算單價這類欄位,做法在 表單回覆表自動填滿,那篇的欄位直接放在回應分頁旁邊。我自己偏好另開分頁,因為表單新增題目時,回應分頁右邊會多出一欄,旁邊放的公式欄位置可能被影響。表單很少改、欄位不多的話,放旁邊也可以,換來少一個分頁。
時間戳記怎麼用
時間戳記是真正的日期加時間,不是文字,可以直接比較、加總。時區用的是這份試算表設定的時區,台灣的話要確認「檔案」>「設定」的「時區」是「(GMT+08:00) 台北」。
我在 計算_預訂清理 的 F1、F2 寫標籤「今天收到筆數」「今天收到杯數」,G1、G2 放公式。假設今天是 2026/10/11:
G1:收到日期等於今天的筆數
=COUNTIF(A2:A, TODAY())G2:收到日期等於今天的杯數加總
=SUMIF(A2:A, TODAY(), C2:C)結果是 4 筆、10 杯(3 + 2 + 4 + 1 = 10)。TODAY() 每天都會變,明天打開 G1 會是 0,這正是「今天」的意思。
想看最新的 3 筆回應,用 QUERY 在 I1 一次取出來:
I1:依時間戳記由新到舊排序,只取前 3 筆,第三個參數 1 代表第一列是標題
=QUERY('表單回應 1'!A1:D, "select A, B, C order by A desc limit 3", 1)來看看結果,I 到 K 欄:
| 時間戳記 | 品項 | 杯數 |
|---|---|---|
| 2026/10/11 11:26:33 | 烏龍奶茶 | 1 |
| 2026/10/11 10:05:18 | 青茶 | 4 |
| 2026/10/11 09:40:05 | 烏龍奶茶 | 2 |
QUERY 的語法在 QUERY 基礎 有講。先記一件事:select A, B, C 是用欄的字母挑欄,這點下一節會出問題。
表單改了題目,欄位會跟著變
表單不會永遠不改。有三種情況會讓回應分頁的欄位位置變動:
- 新增題目:回應分頁的最右邊會多一欄。
- 修改題目文字:那一欄的標題跟著變成新的題目文字。
- 取消連結再重新連結:試算表會多一個新分頁「表單回應 2」,欄位依表單現在的題目順序重排。
最後一種最容易出事。假設我在表單的第二題加了「甜度」,然後重新連結,新分頁的欄位會是這樣:
| 欄 | 表單回應 1 | 表單回應 2 |
|---|---|---|
| A | 時間戳記 | 時間戳記 |
| B | 品項 | 品項 |
| C | 杯數 | 甜度 |
| D | 聯絡信箱 | 杯數 |
| E | (沒有) | 聯絡信箱 |
我的 C2 公式如果只是把 '表單回應 1' 換成 '表單回應 2',C 欄現在是甜度,VALUE("半糖") 會變成 #VALUE!;D 欄原本抓聯絡信箱,現在抓到的是杯數。這種錯有時候不會報錯,只是欄位悄悄對錯題。QUERY 的 select A, B, C 也一樣。
解法是不用字母,改用標題找欄。把 計算_預訂清理 第 1 列的標題改成跟表單題目一模一樣的文字(品項、杯數、聯絡信箱),B2 寫成:
B2:用 B1 的標題去回應分頁的第 1 列找出是第幾欄,再取出那一欄
=ARRAYFORMULA(
IF(
'表單回應 2'!A2:A="",
"",
INDEX('表單回應 2'!A2:Z, 0, MATCH(B$1, '表單回應 2'!A$1:Z$1, 0))
)
)MATCH(B$1, '表單回應 2'!A$1:Z$1, 0):B1的「品項」在回應分頁第 1 列的第幾欄。INDEX(範圍, 0, 欄號):列數給 0,是取整欄。
C2、D2 同一個寫法,外面各包 VALUE(…) 和 LOWER(TRIM(…))。這樣不管題目排在第幾欄,只要標題對得上就取對。
這個做法有代價:公式變長,標題要跟題目一字不差。之後你改了題目文字,MATCH 找不到會是 #N/A,這時回 計算_預訂清理 把第 1 列的標題改成新題目就好。如果你的表單很穩定,不太會改,用欄位字母也可以。
重新連結後分頁名稱從「表單回應 1」變成「表單回應 2」,公式裡的名稱也要改。我用「編輯」>「尋找並取代」,勾選「同時在公式中搜尋」,把 表單回應 1 取代成 表單回應 2。
這一篇和其他幾篇怎麼分工
這篇只管表單到清理這一站。往後的事分給別篇:
- 表單的回應試算表放在另一個檔案,要拉進主檔,看 IMPORTRANGE 跨試算表同步。
- 清理完要彙總、做月報、加自動更新的開關,看 建立自動化工作流程。
- 回應旁邊自動補編號、單價、金額,看 表單回覆表自動填滿。
算 10 月 10 日收到幾筆
資料同上,計算_預訂清理 的 A 欄是收到日期(真正的日期)。請寫一條公式,算出 2026/10/10 當天收到幾筆,日期請直接寫在公式裡,不要用 TODAY()。
手上有在用的表單的話,先新增一個 計算_ 開頭的分頁看看吧!
接下來可以
這篇在技能樹的 Lv.2「進階分析」,模組「整合 Google 表單與試算表」(第 1/1 篇)。讀完這篇,路線上的下一個模組是「Google 專屬函式」。
回到技能樹相關文章
查看所有文章建立自動化工作流程:讓資料自己流動
把資料流拆成原始、清理、彙總、報表四站,用 ARRAYFORMULA 和 QUERY 讓新資料進來後自動往下算,再用設定頁的開關與報表月份控制報表,最後複製成下個月的範本。
IMPORTRANGE 跨試算表同步:授權、匯入與合併
用 IMPORTRANGE 把另一份試算表的資料匯進來:從網址取得 ID、第一次按「允許存取」、範圍的寫法、把好幾份檔案疊成一張,以及授權跟權限的關係。
表單回覆表自動填滿:編號、單價、金額、狀態一次搞定
用 Google 表單收訂單時,在回覆工作表旁邊用 ARRAYFORMULA 自動產生編號、查價目表帶出單價、算金額,並用巢狀 IF 標出大單與待確認的列,新回覆進來不用再拖公式。
留言討論
共 0 則留言




