昨天講怎麼篩課。今天講一件更嚴肅的事:那個數字最後是要交出去的。
自己看的盤點和要報出去的數字,標準完全不同。自己看的只要方向對;要報出去的,必須經得起一句追問:
「這個數字怎麼來的?」
答不出來,整份資料就沒有價值——不管它多接近真實。
寫這篇之前,我把課程盤點的檔案重新數了一次。
同一批全校課程資料,我手邊有兩個檔案。用程式一數,數字對不起來:
| 檔案 | 數出來的筆數 |
|---|---|
全校課程.csv |
404 |
全校課程(已自動修復).xlsx |
416 |
差了 12 筆。
那個「已自動修復」不是我取的名字,是 Excel 自己加的——檔案曾經損壞過,修復之後另存成新檔。所以我當時的推論很自然:修復的過程多生出了 12 筆東西,可能是空白列,也可能是重複列。
我把這個「發現」寫進了草稿,還寫了一整段講分母有多重要。
因為答不出「是哪 12 筆」,這個結論就站不住。所以我把兩個檔案逐列比對。
結果是:那 12 筆不存在。整件事從頭到尾是我數錯。
錯在哪?我用的方法是問程式「這張表有幾列」。而程式回答的是表格範圍——Excel 記錄的「這張工作表用到第幾列」——不是「有幾列真的有資料」。
那張工作表的範圍到第 417 列,但實際有資料的只有 23 列,剩下 393 列是空的。曾經有資料、後來被刪掉,範圍卻留著。
而且我還漏了更大的一件事:那個檔案裡有四個工作表,我只數了第一個。
| 工作表 | 表格範圍 | 實際有資料 |
|---|---|---|
| 全校課程 | 417 | 23 |
| 第一波篩選 | 212 | 208 |
| 工作表2 | 159 | 145 |
| 碩士班 | 22 | 18 |
所以它根本不是「同一批資料的另一個版本」,是一個做到一半的工作檔——裡面有篩選過程、有碩士班的另外一份。拿它跟原始的 csv 比對母體,這件事本身就問錯了。
真正的母體就是 csv 的 404 筆,沒有爭議。 爭議是我自己製造的。
我原本要講的是「分母錯了,整個比例都是錯的」。這個道理沒有變,但現在有了一個更好的例子——而且例子是我自己。
如果我沒有回頭查那 12 筆,會發生什麼事?
我會留下一份文件,上面寫著「母體有兩個版本,404 和 416,尚待釐清」。這句話看起來很嚴謹、很誠實,實際上是把一個不存在的問題記錄成待辦事項,然後它會一直待在那裡,每次有人問到都要重新解釋一次。
比「算錯數字」更麻煩的,是「記錄了一個假的疑點」。
前者會被發現,因為數字可以再算一次。後者不會,因為它看起來就是一個還沒解決的問題——而沒解決的問題,本來就長那個樣子。
同一個資料夾裡還有一個檔案,是六月做的關鍵字盤點,1.3 MB,副檔名是 .xlsx。
我打不開它。 程式讀取時直接報錯,說它不是有效的檔案格式(BadZipFile,意思是「這不是一個壓縮檔」——現在的 .xlsx 本質上就是一個壓縮檔)。
我原本寫的是「這個檔案大概損壞了」。發稿前再查一次,這句話也是錯的。
我去看檔案開頭的那幾個位元組——每種檔案格式的開頭都有固定的識別碼,像是簽名。它的簽名是 D0CF11E0,那是微軟舊版 Office 的容器格式,不是壓縮檔。所以程式報錯是對的:它看到的確實不是 zip。
再往裡面看,容器裡有三個叫做 EncryptedPackage、DataSpaces、StrongEncryption 的東西,卻找不到任何試算表的內容。這個檔案沒有壞,它是加密的——有人給它設了開啟密碼,Excel 就會把真正的內容包成這種殼。
所以正確的說法是:這份六月的盤點檔是加密的,要密碼才打得開。
這兩件事的處理方式完全不同。如果是損壞,要找備份、或者整份重做;如果是加密,檔案是完整的,要處理的是另一回事。我用「大概是壞了」把自己帶往錯的那一邊,而且如果不是為了寫這篇再查一次,我就會這樣寫出去。
至於原本想講的那個教訓,仍然成立,只是換了內容:那份是六月做的,中間過了三個月,我一直到要用它的時候才知道自己進不去。而那通常是最趕的時候。
這幾件事都是被上面這些狀況逼出來的:
一、母體先確認,而且只認一個。
開始篩之前,先確定「全部」是多少、來源是哪裡、匯出日期是什麼時候。有兩個版本就先搞清楚差在哪,不要同時用。
二、判準跟結果放在一起。
檔名叫「AI相關課程表」,三個月後沒人知道那是哪一種相關。判準要寫在檔案裡。
三、留下處理過程。
不是為了給別人看,是為了自己能重跑一次。如果有人質疑數字,我要能當場重現。
四、定期打開來確認檔案還在、還讀得開。
這聽起來很蠢,但我就是因此才發現有一份盤點檔我根本打不開。
在這一段,AI 的角色其實很有限,但很具體:
它可以幫我做「核對」這件苦工。 就像上面那件事——把兩個檔案逐列比對、把每張工作表實際有幾列數清楚,這種工作量大又單調,但結果我打開檔案就能驗。這次戳破那個假疑點,靠的就是這種比對。
它不能替我決定用哪個分母。 那要判斷哪個來源比較可信,而那取決於我知道這批資料是誰匯出的、什麼時候、用什麼條件。
再一次是同一個結論:它做事,我負責這件事對不對。
Day 9:換一個主題。一份上級來文的 PDF,怎麼變成校網上的一則公告。