您當前的位置:首頁 > 收藏

建立良好的製表習慣,我克服了「Excel 恐懼症」

作者:由 少數派 發表于 收藏時間:2020-02-25

勾稽是怎麼讀的

兩年前,當我在簡歷上寫下「熟練使用 Excel」並將它遞到一家家公司求職時,內心可以用毫無底氣來形容。一方面,我簡直對數字毫無敏感度(事實證明這種感覺可以透過重複和刻意練習來培養);另一方面,彼時的 Excel 在我心中簡直是一個龐然大物,選單欄的每一個 Tab 中似乎都放著我看不懂的內容。

而在度過了幾乎天天與 Excel 打交道的兩年之後,我的 Excel 技術總算達到了工作要求的及格線——做出一張乾淨整潔、無需解釋也能讓同事明白的底稿。

Excel 或許終將被時代淘汰,但到目前為止它還是一款不可或缺也確實好用的辦公軟體。怎樣做出一張簡潔清晰可複用的 Excel 底稿?我覺得比複雜的函式、快捷鍵、VBA 更重要的,是樹立正確的工作意識和一以貫之的使用習慣。

本文適用物件:會用到 Excel 進行日常辦公但還有點怵頭的人(進階使用者不需要閱讀)。

樹立「工作底稿」的意識

在工作中,不管是出於什麼目的需要使用 Excel 進行計算分析,一般意味著有一定的

計算量

資料價值

。因此,凡是用 Excel 進行的資料分析工作,哪怕僅僅為個人所用,也最好形成「工作底稿」的意識。

工作底稿是什麼

工作底稿(working paper) 是一個在財稅工作中常常使用到的詞。財稅工作的成果往往以報告等形式出現,且在報告中不會展示計算過程,而計算過程則成為歷史檔案。但這些「歷史檔案」又不是可以永遠塵封——1 個月後的你、你的同事、你辭職後的繼任者(下文統稱為「目標讀者」)都隨時可能會檢視這份底稿,反覆檢驗或者借鑑當時的工作方法和結論。因此,做一份「能得到所有資訊且看起來不費勁」的工作底稿至關重要。

對於工作重心不是資料處理和分析的人來說,資料分析可能只是工作中的一個小點綴,向同事或接任者交代計算過程的需要沒有那麼強烈,但讓自己隨時對資料有把握也很重要——你也不希望下一次開啟自己製作的表格時看到的都是些未完工的半成品,然後在理解自己上一次天馬行空的計算過程中耗費大量時間。

因此,對於所有會使用 Excel 進行資料分析的人來說,在日常工作中也最好樹立「工作底稿」的意識,讓自己有把握永遠擁有最新版本的底稿、且能及時追溯回任一時點的底稿版本。任何擁有必要專業背景的人(以及日後的自己)翻看底稿時,都能快速明白底稿中的計算邏輯並驗證計算結果。

聽起來可能有點複雜,而要達成這一切的手段並不是熟練使用 VBA、背出 100 個高階公式,而是在正確的意識下培養一些使用習慣。

至於 VBA 和公式——需要的時候再學習以及善用官方幫助文件就好了,對它們不熟悉並不阻礙你使用 Excel。

工作底稿的特點

工作底稿的特點可以用以下三點來形容。在下文中,我也將從這三點展開,解說在編制 Excel 表格的過程中能幫到你的一系列小習慣。

可讀性強

所有資料來源可回溯

完整的版本管理

怎樣編制「工作底稿」式 Excel 表格

在本節開始前,先統一一下會涉及的幾個名詞:

工作簿(workbook)、表格、Excel 表格:泛指 Excel 建立的一個 xlsx 或 xls 檔案,可包含多個表單

表單(worksheet):指一個檔案中的一張工作表

怎樣做出可讀性很強的表格

和文章一樣,表格也有「可讀性」這個屬性。

對於邏輯思維和數學思維很強的人來說,他們幾乎能讀懂一切亂七八糟的表格(致敬),在表格裡簡單標記也能順利計算出結果。而對我而言,如果不按照一定的原則進行,計算到半途可能就忘了自己在幹什麼。如果你也有類似的煩惱,那麼我極力推薦你把「可讀性」引入表格製作原則中。

根據我的經驗,只要遵循以下原則,一般可以做出一份可讀性不錯的表格。

1。 只做「從上至下」閱讀的表格

一張 Excel 表單最多可擴充套件至 1,000,000 行和 16,000 列,幾乎無限延伸的單元格會讓人覺得這幾乎是一個「白板」工具。大概不會希望 Excel 像大多數白板一樣只供一次性使用,所以按照日常的閱讀邏輯編制表格是更明智的選擇——從上至下,從左至右。

每張表單中的各個分割槽都最好「從上至下」縱向排列,將同一區塊內的屬性橫向鋪開(先簡單記住這個原則,下面的示例會一以貫之地應用)。

如果從某一行向右暢遊,既能看到包含了一塊原始資料,又能看到根據資料得出的統計結果,就是一種不太好的做法。尤其是三個區塊按照

的形狀展開時,讀者會不知道應該先往下讀、還是先往右讀,造成不必要的遲疑,於是表格的可讀性就會降低。

一個簡單的判斷方法:想象(或實際)在最靠近 A1 單元格的分割槽進行「篩選」,不會影響到另一個分割槽則為透過。

這個原則在越重量的計算中越需要被嚴格遵循,在簡單的計算裡遵循也不會有壞處。

2。 資料不要從 A1 單元格開始:新增說明區

「資料不要從 A1 單元格開始」是

《為什麼精英都是 Excel 控》

中的一個建議。但原文的用意是為了表格的美觀和靈活,而在這裡我想說明「數字以外」的內容的重要性。

如果表格是一篇文章,那麼「資料」相當於「正文」,和普通文章一樣,為了不讓讀者一下子撞到硬邦邦的術語和乾貨,一般會有一個柔和的開頭讓讀者進入自己的語境。

為了讓目標讀者能對錶格內容有更充分的理解,在資料開始之前,最好把關於這張表格的一切重要資訊在資料上方先行說明——原始資料口徑、資料來源、製表日期、基本假設、分析方法,以及對理解底稿有幫助的其他內容。這種說明可以出現在任何一張表單中(只要這張表單中的內容需要說明),不過最常出現的場所還是下文會提到的「輸出區」上方。

由於我們做的表格「只從上到下閱讀」,所以讀者在順著你的邏輯檢視時,會更容易讀懂表格內容。

注:在下文中,我會使用一個我對 2020 年 1 月負責文章進行資料分析的表格示例(真實資料已隱去),雖然例子簡單,但希望能儘可能說明。

建立良好的製表習慣,我克服了「Excel 恐懼症」

建立良好的製表習慣,我克服了「Excel 恐懼症」

3。 對資料處理過程分割槽:取數區、運算區、輸出區

一般的資料分析過程會分為三步——①對原始資料的粗加工、②在粗加工的基礎上進行有目的的運算、③將運算結果輸出。

很多表格會將②和③混在一起,對於聰明人來說當然無妨,但是我建議容易繞暈的各位和我一樣有意識地劃分以下三個區域:

取數區(input):在原始資料基礎上進行基本加工後的資料,基本保留了資料原貌(原始資料需要另外儲存一份,這個在後面會講到)。

運算區(working):公式運算區,複雜的計算過程應該一步步在這裡瓦解,並得出最終想要得到的數字。如果公式比較複雜的話,可以把計算過程拆分成兩步、三步。用拆分運算步驟的方法不僅可以讓每個參與計算的要素都一目瞭然,容易檢查錯誤、自然也不容易出錯。

輸出區(output):在簡單的計算中,輸出區常常與運算過程合併在一起,但把兩者分開會讓表格結構更清晰。輸出區域的公式最好全部

=sheet1!B1

,即連結到運算區的計算結果,不再包含任何公式。這樣即便發現運算區有什麼錯誤,也只需要在運算區修改,輸出區只要負責呈現就可以。相比運算區,輸出區要更注意標註和解釋,這會在下面幾點講到。

在表格不會變得過於複雜的前提下,儘可能把三個區域儲存在三張表單中,這樣在切換區域時能更明確「我在幹什麼」;如果需要在一張表單中完成一套流程,那麼可以利用表頭進行標註說明,時刻提醒自己、讓自己心中有數。

以下是我對工作簿的現有分割槽,「raw data」代表原始資料,「資料整理」是加工後的原始資料,這張工作簿的取數區和運算區都在這裡(因為運算比較簡單),而輸出區則是最後一張「output」。

建立良好的製表習慣,我克服了「Excel 恐懼症」

如果要從頭開始製作一個複雜的測算模型,那麼最好也先在心裡梳理一下表格邏輯(和寫長文章要列大綱一樣),再從上到下一步步去做。

建立良好的製表習慣,我克服了「Excel 恐懼症」

4。 謹慎且清晰地使用顏色

在底稿中使用顏色的目的往往不是美觀(要貼進報告的表格可以連結出去另行格式管理),而是醒目。《為什麼精英都是 Excel 控》的許多原則在日常工作中一一踐行實在是過於繁瑣,但關於顏色的使用我基本複用了下來:

手動輸入的數字——藍色

計算公式的數字——黑色

擁有連結的數字——綠色(關於「連結」的解釋看下一節)

我一般只在輸出區使用顏色,全部

=sheet1!B1

是一種理想情況。如果一時偷懶,例如在輸出區也使用了公式,那麼可以透過顏色提醒下次開啟表格的自己——這裡沒有嚴格連結回去。越是需要大量的計算,區分資料來源就越重要,這樣可以省下反覆檢查公式的時間。

例子:

以下我的輸出區域,有部分數字是黑色,檢查公式發現是

=COUNT(‘2020-01-三羊-資料整理’!D3:D15)

,這說明我在資料整理區偷懶沒數,而是在輸出區「兩步並作一步」了。那麼即便我此時不想修改,下個月再複用這個模板時我也會先行修改輸出區的公式,不會跳進自己挖的坑。

同樣的,「12 月沒拉數字」因而保留了藍色字型也是特殊情況,下個月修改時能一眼看到,不會讓手動輸入的數字矇混過關。

建立良好的製表習慣,我克服了「Excel 恐懼症」

對於需要協作的文件,由於這些顏色的使用並不是公司的統一規定,我會在「說明區」提前說明顏色的含義;對於自己不常使用的顏色,我也會提前說明防止自己遺忘——為什麼這裡把字標紅了?為什麼那個格子是黃色?這一列淺藍色又代表了什麼?

5。 不厭其煩地標註

為了增強表格的可讀性,一定要不厭其煩地標註,這樣才能保證讀者透過表格就能瞭解想了解的所有內容。在進行復雜運算的過程中,這也是一個幫助自己保持思路的好方法。在製表過程中,我已經養成習慣並向大家推薦的有以下兩種:

不要把表頭留空

輔助列的表頭是一個很常見的情況,我過去經常心裡想著「這一列是用來標記是否抽到憑」「這一列用來作為 vlookup 的返回列」,覺得這麼簡單的事自己肯定不會忘記,就把表頭留空在那。但經常過了兩小時(好一點的情況是隔天),我就會對著空空的表頭回憶自己加這行輔助列是幹什麼用的。(注:就標註方式來說,「y/n」這樣什麼時候看都明白的標識肯定比「1/0」來得好)

另外,即便是隨手進行很小的運算,例如「我想算算這一列的平均數」「下面是除掉那一格得出的平均數」,我都會在運算格的左邊空白處寫明計算口徑。不然轉個頭看到孤零零的兩個數留在表格下方,還要回憶它們是哪來的真的有點惱人。

建立良好的製表習慣,我克服了「Excel 恐懼症」

每一次思考都留下痕跡

如果在幾種計算方法中選擇了自己不常用的一種,我會在運算單元格旁備註選擇的原因(是不是其他幾種方法不行?);如果某次討論後否定了以前的計算方法,我也會進行標註(以防自己腦子一抽又換回了自己最熟悉的計算方法),勤快地備註可以免於重複進入同一個思考漩渦。

我一般會直接在當前區塊的最右側加入一條「備註」列,相關的文字說明都可以放去這一列。我不太推薦在密集的表格中使用自帶的「附註」功能來標註,因為它在非隱藏形態很容易擋住臨近單元格,而隱藏起來又不易檢視。

建立良好的製表習慣,我克服了「Excel 恐懼症」

6。 使用「絕對錶述」

相對錶述是指「本月」「環比」「同比」,這是一種需要在大腦中二次加工、甚至需要尋找額外佐證(例如回憶製表時間)的表述,而絕對錶述是指「2020 年 1 月」「2019 年 1 月」「2019 年 12 月」。

在表頭中我基本只使用絕對錶述,「環比」這種相對錶述只出現在文字分析中。而在不同表單中來回取數時,絕對錶述也能幫助快速定位,不會把自己繞暈。

怎樣讓所有資料都可回溯:使用連結

當我們說一個 Excel 中的運算複雜,一般而言並不是說其中用到了微積分、線性代數和超難的函式,而是表格之間的勾稽關係可能非常複雜。整張表格用到的不過是加減乘除、平均數,但怎樣將資料串聯起來得到最後的運算結果,怎樣從運算結果回溯到原始資料,這不是每個人都會下意識去做的,而一旦做好了就會讓讀者非常愉悅。

「這數是哪來的?」是以往工作中前輩和上級經常對我進行的靈魂拷問。在一開始不注意管理資料來源時,我總是被問得一腦門子汗,然後再憑藉若有若無的記憶尋找來源。

而在有意識做這個工作後,我幾乎再沒聽到過這個問題——透過

ctrl/cmd+[

就能追溯回取數源,自然不用我張口回答。(後來我發現,我在做表的過程中會自然地對自己進行這樣的靈魂拷問,所以這也可以算一個 Tips)

1。 永遠使用連結取數

儘量讓資料來源存在於同一個工作簿中(如果資料來源不龐雜,可以透過複製表單做到),並永遠用「=單元格」進行取數,

而不是複製貼上和手打

那麼結合清晰的資料分割槽,可以稍微設想一下結果:輸出區的結果來源於運算區的運算,運算區的運算則是在取數區的資料基礎上加工得到。因此任何對資料來源有疑問的人,都可以透過運算結果回溯到原始資料。

這是非常簡單的原則,應用起來就能讓整張工作簿的不同分割槽互相關聯。

2。 儘量保持取數區域固定

說一個常見的計算場景,如果在網站原始資料中以「三羊」為負責人篩選出了結果,現在需要計算平均數,有以下三種基本操作:

①使用 SUBTOTAL 函式

=SUBTOTAL(101,三天閱讀數)

(101 代表取當前可見區域的平均數,給給資料區域起名見最後一部分)

②用 AVERAGEIF 函式包含篩選條件「負責人為三羊」,再計算出結果

=AVERAGEIF(負責,“三羊”,三天閱讀數)

③篩選➡️將篩選結果複製到空白處➡️對複製得到的結果用 AVERAGE 函式加總

以上三種方法中,方法①的速度最快,但得出的資料是臨時的,因為篩選區域並不是為取得當前需要的數單獨打造,一旦更改篩選標準,用 subtotal 函式得出的值就會變化;

方法②解決了資料「臨時」的問題,加總數不會隨篩選結果的改變而改變,但統計區域並不能直觀展現,需要眼動排查,後續檢視時可能還會有「篩選」這個操作;

方法③最笨,但結果直觀且恆定。「篩選-複製-貼上」的步驟就打造了專屬的取數區域,只要這一步不出錯,後續就幾乎沒有出錯的可能。翻回上面取數區的圖,我也是從原始資料篩選後貼上在「取數區」。

建立良好的製表習慣,我克服了「Excel 恐懼症」

注:並不是所有情形下都要使用方法③,在臨時演示計算時我也會用到方法①,而方法②可以適應頻繁更新(變化)的資料來源。思考什麼情形下用什麼方法也很重要。

3。 連結到最後一個加工步驟

在上述「加工」取數區的過程中,一個工作簿中很自然地會在多處存在同一行資料。

但一步步加工的目的就是為了讓最終的加工成果成為運算的直接取數來源,所以在計算時一定要取走最終加工形態的數字。如果計算過程中用到同一計算口徑的數字,也一定要從一個加工場所取走。

例如上面透過方法③已經篩選出了我負責的文章,那麼要統計文章的總閱讀量、三天閱讀量、互動量、選題和內容型別,都一致地從這一區域進行(即便在總表中也能得出相關數值)。

怎樣進行版本管理

通常的檔案版本管理想必大家都很擅長,Excel 的版本管理也沒什麼特別之處,這裡只簡單說我自己的工作習慣:

1。 原始資料和工作底稿分開儲存

不論在動手之前認為自己對原始資料做的改動多麼輕微——篩選、排序、加一個輔助列,都一定要留下一份原始資料的原貌。

我一般會用一個資料夾單獨儲存原始資料,要進行加工時就複製一份到「working」資料夾展開工作(底稿工作簿中的標註的「raw data」其實是複製件)。

建立良好的製表習慣,我克服了「Excel 恐懼症」

2。 每一次修改都先另存為新的檔案

如果開啟後再另存為,很容易順手儲存覆蓋了上次的工作成果,Excel 的歷史版本又比較玄學,不是次次都能找回,因此在開啟之前就複製成一個新檔案是不太容易出錯的方法(哪怕直到 v24)。

3。 在檔名中體現變化

在檔案命名時,除了標準的

日期+檔案標題+版本號

,我還會在檔名中體現重大變化,例如原始資料有更新(src-updated)、客戶增加了修改意見(commented)、已經基於修改意見作出了更新(cleared),甚至把計算口徑也寫在標題裡(使用 A 方法測算、使用 B 方法測算)。

如果覺得檔名太長不方便檢視,我還會開一個空白的 txt 檔案,把變動寫在標題中作為分割線。例如:「200221。原始資料有更新。txt」,按檔名排列就會乖乖地待在更新底稿附近(在 windows 上隨手新建比較方便,mac 參照

這篇文章

)。

建立良好的製表習慣,我克服了「Excel 恐懼症」

最想安利的幾個原生功能

Excel 中可供使用的功能實在太多,我想安利以下幾個趁手好用的小功能:

1。 開啟新的視窗

如果要在表單之間取數,計算量大時來回跳轉非常麻煩。推薦「檢視-新建視窗」,為當前工作簿開啟一個新視窗。

第一次知道這個功能時,我覺得辦公室的天都亮了……

建立良好的製表習慣,我克服了「Excel 恐懼症」

2。 給資料區域起名字

除了表單的名稱,如果要頻繁引用到一個區域,還可以給資料區域起名。這樣可以讓公式看起來更簡單明瞭,在資料量大的情況下也不容易出錯。

起名的方法非常簡單,只要選中你想命名的區域,然後在左上角輸入名稱即可,中英文不拘。需要注意的是,如果在多個表單中都想給相同區域命名,那麼最好帶上表單名字,例如「三天閱讀量 1912、三天閱讀量 2001」(名稱不能用數字打頭)。

建立良好的製表習慣,我克服了「Excel 恐懼症」

在「名稱管理器」中也可以一次管理所有資料區域的姓名。

建立良好的製表習慣,我克服了「Excel 恐懼症」

3。 條件格式

怎樣最快比較兩列本應重合的數字差異在哪?

這是上次同事向我提出的一個問題,我用 Vlookup 函式兩次嘗試不成,一時也檢查不出錯誤,考慮到資料量不大,就用到了條件格式查出重複值。

建立良好的製表習慣,我克服了「Excel 恐懼症」

條件格式還可以突出顯示滿足一定條件的數值(大於多少、小於多少、前/後 10%),也可以作為輕量的「篩選」使用。

4。 按顏色篩選

如果要進行兩個篩選條件展示並集,在 Excel 中就會有點麻煩(在 A 列進行篩選時看不到 B 列,反之亦然)。

當然有很多種操作的方式,我一般會給兩種篩選條件下的篩選結果塗色,然後再使用「按顏色篩選」得出結果(這也是很多線上表格缺失的功能)。

每個人使用 Excel 的習慣都有不同,你認為有哪些切實幫到你工作的好習慣?請評論區分享~如果你對我提出的觀點有質疑,也歡迎在評論區討論。

標簽: 表格  excel  底稿  運算  原始資料