Google 試算表:從入門、分析到自動化



當你打開 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.    命名範圍與欄位對照表先建立,避免日後改名牽一髮動全身。


延伸閱讀推薦:

張貼留言 (0)
較新的 較舊