當你打開 Google 試算表,可能只是想做一張清楚的報表,或把同事的資料拼在一起。
這篇就是陪你把基本功補好,然後一路走到實戰。先認識介面、儲存格和資料該怎麼擺;再用常用公式處理加總、查找、日期和文字清洗。接著學會樞紐表、切片器、圖表,把數字變成看得懂的故事。
需要表單蒐集、寄信提醒、甚至小自動化?也有簡單範例帶你上手。
文末還整理常見坑:像是 #N/A、時區、合併儲存格惹禍…少走冤枉路。
讀完,你就能做出一份穩定、好維護、大家都願意用的表。
目錄
{tocify} $title={目錄}
什麼是 Google 試算表?核心價值與適用場景
Google 試算表(Google Sheets)是一個雲端試算工具,可多人即時共編、支援版本控管、跨裝置使用,且具備完整的函數、圖表、資料驗證與樞紐分析能力。相較桌面版試算軟體,它更適合:
跨部門協作:
同時在線、留言註解、指派追蹤。
雲端資料管線:
搭配 Google 表單蒐集資料、Sheets 做清洗彙整、Looker Studio 做視覺化。
輕量自動化:
以 Apps Script 建流程(寄信、排程、寫入 API 結果)。
快速原型:
先在表格驗證邏輯,再決定是否上 BI 或資料庫。
何時不適合?超大資料量(數百萬列以上)、嚴格權限分層、複雜交易一致性場景,應考慮資料庫或企業 BI。
介面總覽與基本觀念
活頁簿(Spreadsheet):
一個檔案,可含多個工作表(Sheet)。
工作表(Sheet):
底部分頁;可命名、保護、隱藏、複製範本。
儲存格(Cell):
位址如 A1;範圍(Range)如 A1:C10;命名範圍可讀性更好。
資料類型:
文字、數值、日期/時間、布林(TRUE/FALSE)。
注意:
看起來像數字的文字(例如「00123」)與真正數字不同,會影響計算與排序。
相對/絕對參照:
A1(相對)、$A$1(絕對)、A$1/$A1(混合),在填滿公式時影響指向。
快速導覽:
1. 以 Ctrl/Cmd + / 開啟快捷鍵說明;
2. Ctrl/Cmd + Shift + V 只貼上數值;
3. 資料 ► 資料清理 可批次修剪空白、移除重複。
資料輸入與格式設定
建立資料表結構
1. 第一列做欄位名稱(避免合併儲存格)。
2. 用資料驗證(下拉選單、數字範圍、正規表示式)降低輸入錯誤。
3. 為關鍵欄加入唯一鍵(例如「訂單編號」)。
格式化與顯示
1. 格式 ► 數字:整數、小數位數、貨幣、百分比、會計格式。
2. 自訂日期:yyyy-mm-dd hh:mm;時區可在「檔案 ► 設定」調整。
3. 條件式格式:逾期標紅、區間高亮、重複值提示。
乾淨資料的小技巧
1. TRIM 去前後空白、CLEAN 去不可見字元;
2. SPLIT 依分隔符拆欄、TEXT 控制顯示;
3. UPPER/LOWER/PROPER 統一大小寫。
高頻函數速查
邏輯:
IF、IFS、AND、OR、IFERROR。
查找:
VLOOKUP、HLOOKUP、XLOOKUP、INDEX/MATCH、FILTER、UNIQUE、SORT、SORTN。
統計:
SUM、AVERAGE、COUNT/COUNTA、COUNTIF/COUNTIFS、SUMIF/SUMIFS、ROUND/ROUNDUP/ROUNDDOWN。
日期時間:
TODAY、NOW、EOMONTH、NETWORKDAYS、WORKDAY、TEXT。
文字/清洗:
TRIM、CLEAN、LEFT/RIGHT/MID、SPLIT、TEXTJOIN、REGEXEXTRACT/MATCH/REPLACE。
資料彙整:
QUERY(以類 SQL 方式 select / where / group by / label)。
小提醒:VLOOKUP 預設近似比對,常見誤判;要精確比對請加第四參數 FALSE,或改用 XLOOKUP/INDEX+MATCH。
資料整理與分析
排序與篩選
1. 以「資料檢視」建立暫時篩選檢視,避免影響他人視圖。
2. 切片器(Slicer)可把篩選條件抽離到儀表板上便於互動。
樞紐分析(Pivot Table)
1. 行/列放維度、值放指標(加總、平均、去重計數)。
2. 可加入「篩選器」或「資料分組」(例如按月份)。
條件式格式
1. 視覺提醒 KPI:如「毛利率 < 20%」標紅、「達標 ≥ 100%」標綠。
2. 用自訂公式:如 =$E2<TODAY() 高亮逾期。
視覺化:圖表與迷你圖
圖表建議:折線看趨勢、直條比分類、堆疊看結構、散佈看關聯。
迷你圖(SPARKLINE):在儲存格內畫趨勢:=SPARKLINE(B2:M2,{"charttype","line"})。
專案報表建議拆兩頁:原始資料 vs. 儀表板,避免互相干擾。
多人協作與權限、版本紀錄
分享權限:
檢視/留言/編輯;可限制下載/列印/複製。
保護範圍/工作表:
鎖欄位、設定可編輯者;重要表單加密碼並非內建,需透過流程控管達成。
版本紀錄:
為每個里程碑命名版本;回溯容易。
批註與指派:
@名稱 指派待辦,被指派者會收到通知。
與其他 Google 服務整合
1. Google 表單 → 試算表:自動收集回覆;可再用 QUERY 彙總。
2. 雲端硬碟:使用「連結檔案」與資料夾權限,控管可見性。
3. Looker Studio:做跨報表視覺化;適合給決策者。
4. AppSheet:把表格變成輕量 App;表單、瀏覽、權限規則。
5. 日曆/郵件:用 Apps Script 寄信、根據日曆產生工時表。
自動化入門:Apps Script 與常用 Class
Apps Script 使用類 JavaScript 語法,在雲端執行。最常見的應用:排程報表、寄信提醒、資料同步、批次格式化。
核心物件與 Class(常見):
SpreadsheetApp:入口;開啟檔案、取得活頁簿。
Spreadsheet:活頁簿物件;可取工作表、命名範圍等。
Sheet:單一工作表;插入列、設範圍值、建立樞紐。
Range / RangeList:讀寫值、套格式、資料驗證。
DataValidationBuilder:建立下拉選單/規則。
PivotTable / Charts(透過 Sheet 建立)
Utilities:日期、字串工具、壓縮編碼。
UrlFetchApp:呼叫外部 API。
PropertiesService:儲存設定(例如 API 金鑰)。
Triggers:排程/事件觸發(如時間排程、表單提交)。
範例 1:每日寄出 KPI 報表(簡化版)
function sendDailyKPI() {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName('Dashboard');
const range = sheet.getRange('B2:E10');
const html = HtmlService.createHtmlOutputFromTable(range.getValues());
GmailApp.sendEmail('boss@example.com', '每日 KPI 摘要', '請見內文', {htmlBody: html.getContent()});
}
// 建立時間驅動觸發器:每天 9:00 寄送
function createTrigger(){
ScriptApp.newTrigger('sendDailyKPI').timeBased().everyDays(1).atHour(9).create();
}
範例 2:批次設定下拉選單
function setDropdown(){
const sheet = SpreadsheetApp.getActive().getSheetByName('Data');
const rule = SpreadsheetApp.newDataValidation()
.requireValueInList(['新單','進行中','已結案'], true).build();
sheet.getRange('E2:E').setDataValidation(rule);
}
常見錯誤與雷點清單
#N/A:
查無對應。檢查:鍵值是否空格不同?VLOOKUP 第四參數是否設 FALSE?
#REF!:
範圍溢位或刪除參照。檢查合併儲存格、公式陣列輸出範圍。
#VALUE!:
型別不合。常見於文字與數字相加、日期以文字儲存。
#NAME?:
函數拼錯或區域設定不同(逗號/分號)。
日期時區:
檔案地區/時區未設,跨表相減出現 8 小時誤差。
合併儲存格:
破壞排序/樞紐。報表請用「跨欄置中」或格式取代合併。
IMPORTRANGE 權限:
首次需授權;權限變更後常見 #REF!。
資料驗證不嚴謹:
下拉未鎖;自由輸入導致髒資料。
ARRAYFORMULA 覆蓋:
人工輸入與陣列輸出衝突;建議把輸入與輸出分欄/分頁。
字串數字陷阱:
"00123" 與 123;以 VALUE() 轉型或統一格式。
效能:
過多揮發函數(NOW/RAND);用輔助表、降低即時計算。
平台限制與規劃建議(觀念版)
資料量:
每個活頁簿有總儲存格上限;列數、欄數的組合需在上限內。超過前,效能會先下降。
匯入:
從 Excel/CSV 轉入時,超大欄列或超長字元會被截斷或移除。
API 與配額:
1. Sheets API 有每分鐘讀寫次數限制;超限會回 429 Too many requests,需實作退避(exponential backoff)。
2. Apps Script 有每日與每分鐘的執行/外部請求配額;不同帳戶等級配額不同,且可能調整。
即時計算:
大量 IMPORTRANGE、QUERY 串連會卡住;建議分層彙整、減少跨檔同步頻率。
規劃建議:
1. 一檔一用途:原始、處理、展示分開,降低互斥影響。
2. 分頁拆量:月份分頁或歷史封存;老資料轉 CSV 存檔備份。
3. 盡量批次讀寫:在 Apps Script 使用 getValues()/setValues()。
4. 命名範圍與欄位對照表先建立,避免日後改名牽一髮動全身。
延伸閱讀推薦:
Google 試算表:工作表重新命名與 rename() 功能
Google 試算表:拿到正在操作的試算表 getActiveSpreadsheet()
Google 試算表:用檔案 ID 開啟試算表 openById()
Google 試算表:取得顯示的工作表getActiveSheet()
Google 試算表:藉由名稱取得工作表getSheetByName()
Google 試算表:取得所有工作表 getSheets()
Google 試算表:取得工作表數量 getNumSheets()
Google 試算表:焦點切到指定工作表 setActiveSheet()
Google 試算表:刪除工作表 deleteSheet()
