數據與工具

資料字典怎麼寫才有人看:用一張決策表拆解八個必填欄位

接手別人的試算表,最花時間的不是學公式,是猜每一欄到底裝什麼。狀態欄的已結案,是付款了還是交付了。資料字典就是用來終結這種猜測的文件。問題是,怎麼寫才不會淪為沒人打開的附件。

資料字典要寫哪些內容,才會真的有人用?

一份有人用的資料字典,每個欄位寫八項:欄位名稱、白話定義、資料型別與格式、允許值、是否必填、資料來源、負責人、最後修改日期。它要放在資料表同一個檔案裡,定義用一句完整的話寫,並附一個正確範例與一個錯誤範例。寫到這個程度,新同事不必開口問,就能填對。

資料字典,是描述資料的資料。它不放任何一筆業務紀錄,只說明每一欄裝什麼、怎麼裝。以下用決策表的方式,一項一項看:這一項要不要寫、怎麼寫、最常寫錯在哪裡。

決策一:欄位名稱要照實際欄名寫,還是寫中文說明?

兩個都寫,分兩欄。第一欄照資料表上的實際欄名,一字不差,包含大小寫與底線。第二欄寫給人看的顯示名稱。

只寫中文說明的字典,使用者要自己去對是哪一欄,對錯了也不知道。實際欄名一字不差,才能用搜尋功能直接找到。這一項的取捨很小,沒有理由省。

決策二:定義要寫多長?

一句完整的話,外加什麼不算。例如成交日期的定義寫成:款項實際入帳的日期,不是簽約日期,也不是開立請款單的日期。

後半句比前半句重要。欄位會被誤用,幾乎都是因為有一個很像的概念混進來。寫定義的時候,回想這一欄曾經被填錯成什麼,把那個東西點名排除。這是第一線才知道的細節,也是資料字典最有價值的部分。

常見的錯誤寫法是把欄名再講一次。客戶類型的定義寫成客戶的類型。這種定義寫了等於沒寫。

決策三:資料型別與格式要寫到多細?

資料型別,是這一欄的值屬於哪一種,例如文字、整數、小數、日期、是非。格式,是同一種型別底下的具體寫法。

日期一定要寫格式,例如四位數年份、兩位數月份、兩位數日期,中間用連字號。金額要寫是否含稅、小數幾位、幣別記在哪一欄。電話要寫是否含國碼。這三種欄位最常在合併資料時出事,值得多寫兩行。其他文字欄位,寫文字與長度上限就夠了。

決策四:允許值要全部列出來嗎?

選項在二十個以內的,全部列出,並為每個選項寫一句判定條件。選項更多的,例如國家或產業代碼,就寫明參照哪一張代碼表,不必在字典裡重列一次。

判定條件是重點。案件狀態有洽談中、已報價、已成交、已結案四個值。光列出四個詞沒有用。要寫明從已成交變成已結案的條件是什麼,是交付完成,還是尾款入帳。兩個人理解不同,報表上的已結案件數就會差一截。

決策五:是否必填,要不要連空白的意義一起寫?

要。必填與否只是一半。另一半是空白代表什麼。空白可能是還沒發生、不適用、或是忘了填。三種意思在分析時的處理方式完全不同。

我們的做法是,對容易混淆的欄位,規定不適用要明確填入一個代碼,真正的空白只代表尚未填寫。這條規則寫在字典裡,並搭配資料驗證執行。

決策六:資料來源要寫到哪個層級?

寫到能回頭查證的程度。人工填寫的欄位,寫由哪個角色、在哪個時間點、根據什麼文件填。系統匯入的欄位,寫來自哪個工具的哪一份報表、多久匯一次。計算欄位,寫完整的計算方式與引用的欄位。

計算欄位最容易被忽略。一欄毛利的公式裡扣了哪些成本,一年後沒有人記得。把公式用文字寫一遍,放進字典。公式改了,字典同步改,並更新修改日期。

決策七:負責人要寫人名還是角色?

寫角色,再由另一張小表把角色對到人。人會調動,角色比較穩。字典裡寫業務主管,比寫某位同事的名字耐用。

負責人的意思是:這一欄的定義有爭議時,由他決定;這一欄的資料有錯時,由他修正或指派修正。沒有負責人的欄位,出錯的時候所有人都會以為別人會處理。

決策八:修改紀錄要記在字典裡,還是另外記?

每個欄位留一格最後修改日期。完整的修改紀錄另開一個工作表,記錄日期、哪一欄、改了什麼、為什麼改、誰核准。

定義改過的欄位,前後期的資料不能直接比較。分析的人需要知道切換點在哪一天。這張修改紀錄,就是用來回答為什麼這個數字從某個月開始突然變了。

哪些東西不必放進資料字典

  • 操作教學,例如怎麼篩選、怎麼做樞紐分析。這屬於使用手冊
  • 報表的解讀方式與目標值。這屬於指標說明
  • 已經停用超過一年、資料也已清除的欄位。保留一行註記停用日期即可
  • 權限設定的細節。另由權限清單管理

字典越短,越有人看。每多放一類內容,就多一個讓它過期的理由。

小團隊建立資料字典的起手順序

  1. 在資料表的同一個檔案新增一個工作表,命名為資料字典
  2. 把所有欄名貼成第一欄,一欄一列
  3. 先只寫三項:定義、格式、允許值。其餘五項留空
  4. 優先寫最常被問、最常填錯的十個欄位
  5. 請一位沒參與設計的同事照字典試填三筆,卡住的地方就是要補寫的地方
  6. 把每個欄位的定義摘要,貼到資料表欄位標題的註解裡
  7. 每季檢查一次,把這一季被問過的問題補進定義

第五步是驗收。字典寫得好不好,不由作者判斷,由第一次看到它的人能不能填對來判斷。最容易卡住的是第七步,沒有人排時間維護。把它綁在每季固定的資料整理日,一起做。

一個去識別化的例子:已結案三個字造成的落差

一個專業服務團隊的案件表有一欄狀態,其中一個選項是已結案。業務認為報告交出去就算結案。負責收款的同事認為尾款入帳才算。主管每個月看已結案件數來估算收入。

三個人看同一欄,心裡是三個定義。有一季,主管發現已結案件數與實際入帳差了不少。追查之後才知道,有一批案件交付了但尾款還沒收,在表上早就被標成已結案。

解法不是爭論誰的定義對。解法是把一個狀態拆成兩個:已交付與已收訖,各自寫明判定條件與由誰更新。然後在資料字典記下拆分的日期,並註明在那之前的已結案,意義等同於現在的已交付。

這個例子說明資料字典的實際用途。它不是一份為了完整而寫的文件。它是用來讓分歧浮上檯面的工具。寫定義的過程中,團隊會發現原來大家想的不一樣,這個發現本身就值回時間。

定義寫不出來的時候,通常代表什麼

寫字典時,總有幾個欄位卡住。問了三個人,得到三種說法,或是沒有人說得出來。這有三種可能。

  • 這一欄已經沒有人在用。確認之後標記為停用,下次整理時移除
  • 這一欄被拿去裝了兩種東西。拆成兩欄,各自定義
  • 這一欄的定義真的有分歧。交給負責人決定,並把決定日期寫進修改紀錄

不要為了讓字典看起來完整,硬寫一個模糊的定義蓋過去。寫上定義待確認,並標上負責人與預定確認日期,比一句含糊的話誠實,也更有用。

資料字典寫好之後的驗收方式

除了請新同事試填,還有兩個檢查。第一,從資料表隨機抽二十列,逐欄對照字典,看實際的值是否都落在允許值之內。不符合的,要嘛是資料錯,要嘛是字典漏寫了一個合法的值。兩種都要修。

第二,把字典的欄位數與資料表的欄位數對一次。資料表新增了欄位而字典沒有跟上,是字典開始失效的第一個徵兆。這個檢查只要一分鐘,放進每季的固定流程。

這套資料字典寫法的適用範圍與不適用情境

這套寫法適合用試算表管理業務資料、欄位數在一百個以內的團隊。重點在讓人填對與讀對。

它不適合有正式資料庫與資料工程團隊的組織。那種環境需要與資料庫結構連動的中繼資料管理方式,由工程端維護,試算表式的字典會很快與實際結構脫節。

一次性的分析檔,例如只用一次就封存的問卷結果,也不必寫完整字典。在檔案第一頁寫幾行欄位說明就夠了。字典是為了會長期使用、會換手的資料而寫的。

← 回到新知列表