試算表教學通常從基礎講到進階,但實際工作裡真正會反覆用到的函式並不多。我們統計了自己的工作檔案,重複出現的函式大約十一個,其餘的一年用不到一次。這篇只講那十一個。
先說明選擇標準:能解決日常問題、學習成本低、而且不容易出錯。有些強大但難以除錯的做法被排除在外,因為在團隊協作的環境裡,可維護性比技巧重要。
實務上的建議是:日常快速處理用查找函式,需要長期維護的檔案用索引與比對的組合。後者在別人修改欄位順序時不會壞掉。
中位數被嚴重低估。回覆時間、成交週期、訂單金額這幾類資料通常有長尾,平均數會被少數極端值拉走,中位數才反映典型狀況。
第三項看似瑣碎,卻是資料合併失敗最常見的原因。兩份資料看起來一樣,但其中一份的欄位尾端多了一個空格,比對就會完全失效。
日期函式只需要一個:把日期轉換成年月的文字,用來做月度彙總。其餘的日期運算在多數行銷情境裡都可以用減法解決。
第五張表最常被省略,卻是這個檔案能不能被別人接手的關鍵。三個月後你自己也會需要它。
三個訊號:資料量讓檔案開啟超過十秒、需要多人同時編輯同一區域、或是同樣的處理每週都要手動重做一次。出現其中任何一項,就該考慮把流程移到資料庫或自動化工具。
在那之前,試算表仍然是投入產出比最高的選擇。關於資料整理後的呈現方式,站內的 圖表選擇 有進一步的說明。
場景一,把廣告後台匯出的資料和成交名單合併。用查找函式以電子郵件為鍵值對起來,再用條件加總算出每個來源的實際成交金額。這件事手動做要一小時,用公式做第一次要二十分鐘,之後每個月只要換資料,五分鐘。
場景二,把三百則客服對話分類統計。先用文字函式做初步的關鍵詞標記,再人工修正,最後用條件計數統計各類的數量。純人工要一天,這個做法半天。
場景三,計算每個案子的實際時薪。用條件加總把時數彙總,除以金額,再用中位數看典型值。這張表通常會顛覆團隊對哪種案子賺錢的直覺。
先檢查資料本身:有沒有多餘空白、格式是不是文字型數字、有沒有隱藏字元。八成的公式問題來自資料而不是公式。
再檢查範圍:絕對與相對參照有沒有寫反、下拉時範圍有沒有偏移。最後才檢查公式邏輯。依這個順序排查,通常五分鐘內可以找到問題,而從公式邏輯開始查,經常會浪費半小時。
試算表的最大風險不是算錯,是沒有人發現算錯。任何會影響決策的計算,都應該有一個獨立的驗算方式,例如用另一種公式算一次、或用小樣本手動核對。這個習慣可以避免大部分的重大失誤。
一份會被別人接手的試算表,至少要有三樣東西:說明分頁(資料來源、更新方式、欄位定義)、公式的註解、以及一份範例資料。三樣加起來大約三十分鐘,但它決定了這個檔案能不能活過人員異動。
最常被省略的是欄位定義。同一個欄位名稱在不同人的理解裡可能完全不同,例如「成交」到底是簽約還是收款。定義寫清楚,才不會出現兩個人用同一張表算出不同的數字。
另外建議把手動更新的步驟寫成編號清單,並標註每一步的預期結果。接手的人照著做一次,就能確認自己有沒有做對。
另外要提醒的是版本管理。重要的分析檔案應該在每次重大修改前先另存一份,並在檔名加上日期。試算表沒有完整的版本歷史,改壞了經常無法還原。這個習慣的成本是三十秒,避免的是重做半天的風險。
再提醒一個維護上的習慣:任何超過兩層巢狀的公式,都應該在旁邊的欄位寫一句白話說明它在算什麼。你現在當然記得,但三個月後回來看,或交接給同事的時候,那句說明能省下半小時的逆向工程。更好的做法是把複雜公式拆成兩三個中間欄位,讓每一步都看得懂。試算表的可讀性和程式碼一樣重要,只是多數人從來沒有被這樣要求過。