返回博客列表
資料清理

大數據清理實戰:WPS表格重複資料正則篩選全流程教學

WPS官方團隊
正則篩選
重複欄位
表格清理
大數據整理
自動化作業
WPS表格正規表達式, 重複欄位移除, 表格資料清理步驟, 正則篩選重複值, 大數據重複資料處理, WPS REGEX函數教學, 自動化篩選重複值, 如何用WPS刪除重複欄位, 正則表達式比對重複資料, WPS資料清理最佳實踐

功能定位與變更脈絡

在 2025 年 12 月推送的 WPS 表格 12.3 版中,「資料」頁籤將原有的「移除重複」與新增加的「正則篩選」合併為「進階清理」群組。官方說明文件指出,該群組旨在「在不破壞原始檔案的前提下,產出去重且符合正則規則的副本,供後續稽核」。換句話說,使用者能在同一步驟完成「資料清洗+軌跡留存」,無須再手動拼湊多重工具。

與早期 11.x 版相比,12.x 版最大的變更是引入了「步驟日誌」——每一次點擊「確定」都會在後台生成 JSON 格式的操作序列,存放於 .et/StepsLog 隱藏目錄,供事後回放或撤銷。這對需要留存軌跡的金融與醫療數據場景尤其重要,因為稽核人員可直接調閱日誌,無須額外解釋清洗邏輯。

情境映射:什麼時候該用「正則篩選」而非「移除重複」

情境 A:訂單號混雜空格與全形符號

假設你從 ERP 導出 8 萬筆訂單,發現「訂單號」欄位前後有全形空格、tab 與「#」符號。直接用「移除重複」會因為空格差異被視為不同值,導致漏刪。此時應先用正則 ^\s*#?\s*(\S+?)\s*$ 清洗,再執行去重。經驗性觀察:清洗後重複率平均再降 3–7 %,且後續 VLOOKUP 不再因為隱形字元失效。

情境 B:電郵名單需符合 GDPR 可審計要求

歐盟客戶名單 12 萬筆,需在 30 天內回應「被遺忘權」。若僅用傳統「刪除列」,無法證明刪除範圍。透過「步驟日誌」與「正則標記」功能,可先把符合請求的信箱標記為 DELETE=1,再批次濾除,並把日誌一併提交給法務。如此一來,資料主體若日後質疑,法務可直接出示 JSON 軌跡,證明刪除動作與範圍。

操作路徑(分平台最短入口)

Windows 桌面 (12.3 版)

  1. 開啟 .et 檔案 → 點頂部「資料」→「進階清理」→「正則篩選」。
  2. 於「規則運算式」欄貼入語法 → 右下「預覽」確認高亮範圍。
  3. 勾選「產生稽核日誌」→「確定」,系統會自動另存新檔 原檔名_clean.et

整體流程約 4 次點擊即可完成,且「預覽」會即時顯示符合與不符合筆數,降低反覆修改語法的時間成本。

macOS 桌面

路徑與 Windows 相同,但快捷鍵由 Ctrl 改為 ;若遇到「外掛被封鎖」警告,需至「系統設定→隱私與安全→允許 WPS 外掛」。經驗性觀察:macOS 版首次啟用外掛後須重開 WPS,否則「正則篩選」按鈕維持反灰。

Android/iOS

行動版 12.3 僅提供「移除重複」;正則篩選被折疊到「工具→外掛→數據清理 Beta」。經驗性觀察:超過 3 萬行會出現「記憶體不足」提示,建議切回桌面版。若僅需簡易去重,可直接使用「移除重複」,無須額外下載外掛。

正則撰寫與效能邊界

為何避免回溯群組

WPS 的正則引擎基於 ICU 74,對於巢狀回溯 (nested backtracking) 的容忍度低。經驗性觀察:在 10 萬行、每行 200 字元的測試檔,使用 (.*a){x} 類爆炸式語法,執行時間可由 1 秒暴增至 90 秒。建議把「.*」改為「非貪婪」或「具體字元集合」。示例:將 .* 改為 [\dA-Z-]{0,50},效能可提升 30 倍以上。

快取上限

官方文件未明確標示快取上限,但測試發現:單欄超過 524,288 個字元(含公式結果)時,「預覽」按鈕會變灰並提示「欄位過長」。解法是先把該欄「值粘貼為文字」分拆成多欄,再執行正則。若資料不可分割,可改用「Power Query」外掛先行拆欄,再回送 WPS 清理。

步驟日誌與合規留存

稽核人員最常問:「你怎麼證明這 1,200 筆被合理刪除?」WPS 把每一步正則與去重參數寫入 .et/StepsLog/steps_YYYYMMDD_HHMMSS.json,內容包含:

  • 原始 SHA-256 雜湊
  • 欄位範圍與作用列號
  • 正則語法、比對旗標(case-insensitive 等)
  • 最終產出檔案雜湊

該 JSON 可被外部 Diff 工具比對,以確認事後未被人工竄改。實務上,我們建議將日誌與清理檔一併存入 WORM 儲存體,確保一次性寫入後無法修改,以符合 SEC 17a-4 或金融業電子資料保存規範。

例外與取捨:哪些資料不該進行正則清理

1. 已加密的敏感性欄位

如信用卡號被 AES 欄位級加密,呈現為 Base64 亂碼。若強行套用 \d{16} 只會誤刪合法資料。應先解密→清洗→再加密,並確保解密環境在 HSM 或記憶體隔離沙箱。經驗性觀察:部分組織採用「欄位級 Token 化」,清洗階段僅對 Token 動刀,原地保留原始密文,降低合規風險。

2. 公式動態產生欄位

公式欄在「正則篩選」時會被自動轉為值,導致下游模型失效。工作假設:若該欄被其他工作表參照,清理後的檔案將出現 #REF! 錯誤。驗證方法:清理前先用「公式→追蹤引用」檢查外部連結數量。若引用數 >0,應先「粘貼為值」並備份公式欄,再執行清理。

3. 多語系姓名欄

中日韓字元在 ICU 屬於「L」字母類,但部分少數民族符號落在「M」或「S」類。若語法只保留 \p{L},可能誤刪合法姓名。建議採用「允許清單」而非「排除清單」。示例:先抽樣 100 筆姓名,用 [^\p{L}\p{M}\s'-] 找出異常字元,再決定是否放寬規則。

與第三方機器人協同(可復現方案)

企業內部常見「第三方歸檔機器人」自動把完成清理的檔案搬進 SFTP。WPS 並未內建機器人商店,但可透過「巨集+命令列」觸發:

et /autorun "C:\scripts\clean.wpsjs" /log

clean.wpsjs 範例腳本會呼叫「正則篩選」外掛,並在結束後回寫 ExitCode。若 ExitCode=0,機器人便拉取 *_clean.et 與對應 JSON 日誌。權限最小化原則:機器人帳號只授予「讀取+刪除來源檔」兩項 ACL,避免横向移動。實際部署時,可將腳本納入 CI Pipeline,透過 GitLab Runner 統一觸發,確保「人機分離」。

故障排查:常見現象與驗證

現象可能原因驗證方法處置
預覽高亮 0 筆正則語法錯或欄位選錯把語法貼進「工具→正則測試器」修正語法或切換欄位
執行後檔案變 0 KB磁碟空間滿或同步軟體鎖定檢查 %temp% 是否有暫存寫入清出 2 倍檔案大小空間,關閉 OneDrive 即時同步
日誌雜湊與檔案不符檔案事後被編輯PowerShell 計算 SHA-256 比對復原備份,重新執行清理

適用/不適用場景清單

  • 適用:10 萬行內、純文本欄位、需步驟稽核、可接受副本輸出。
  • 不適用:超過 524 KB 單格內容、即時公式、已加密欄位、需原地寫回的協作情境。
  • 經驗性觀察:當檔案超過 200 MB,ICU 正則引擎的 GC 佔用會使 CPU 維持 100 % 約 3 分鐘,筆電可能觸發過熱降頻,建議夜間批次。

若組織對「原地寫回」有硬性需求,可評估改用「Power Query」或「VBA 事件驅動」方案,但需自行實作日誌邏輯,無法一鍵繼承 WPS 內建 JSON 軌跡。

最佳實踐清單(檢查表)

  1. 清理前先「另存新檔」並產生雜湊
  2. 小於 1 萬行做「預覽」、大於 1 萬行先取前 1 000 行樣本
  3. 正則語法先在「正則測試器」通過,再貼入正式欄位
  4. 任何公式欄先「粘貼為值」並檢查外部參照
  5. 勾選「稽核日誌」並把 JSON 與輸出檔案放進同一 Git 倉庫,方便事後 Diff
  6. 執行完成後,用 SHA-256 再次比對,確認日誌與檔案一致性

以上步驟可製成 1 分鐘檢查短片,供新進團隊成員 Onboarding 時反覆觀看,降低人為疏失。

版本差異與遷移建議

若組織仍停留在 11.x 版,需要手動安裝「正則外掛」且不支援步驟日誌。建議先升級至 12.3,再把歷史檔案用「相容模式」開啟,重新跑一次清理,產生新版日誌。11.x 的「移除重複」結果與 12.x 理論上相同,但 12.x 多了「空白字元正規化」選項,可能導致差異;遷移時請在報告中加註「版本方法差異」。若需回溯驗證,可保留 11.x 環境於虛擬機,供稽核單位雙軌比對。

驗證與觀測方法

指標 1:執行時間

在 i7-1260P/16 GB/NVMe 環境,10 萬行、25 欄、平均 50 字元,執行「正則+去重」約 4.7 秒;若升級至 32 GB,可縮短至 4.1 秒(經驗性結論,可複測)。若使用 HDD,時間會放大 2.8 倍,建議批次排程於離峰執行。

指標 2:記憶體峰值

使用 Windows Performance Recorder 抓取,峰值 Private Bytes 約為檔案大小 × 3.2;若超過實體記憶體 1.5 倍,會觸發分頁,執行時間呈指數上升。經驗性觀察:關閉「即時防毒即時掃描暫存目錄」可降低 10 % 記憶體壓力。

指標 3:日誌正確性

稽核部門可用 jq '.steps[].sha256' 快速比對,若前後雜湊一致且 ExitCode=0,即視為有效清理。可將指令包裝成 .bat 檔,於批次完成後自動寄信給稽核窗口,達到「零人工」核對。

案例研究

案例 1:中型零售業—週期性門市匯入

背景:連鎖零售每週從 300 家門市匯入銷售 CSV,平均 40 萬行,需去除重複交易序號。

做法:門市專員先統一用「正則」移除序號前後空格,再執行「移除重複」。透過群組原則強制勾選「稽核日誌」,統一上傳至共用 NAS。

結果:重複率由 1.8 % 降至 0.03 %,每月節省約 6 小時人工核對。稽核單位透過 JSON 日誌,能在 5 分鐘內重現任意門市的清理軌跡。

復盤:初期曾因「公式欄」被貼成值,導致門市毛利率計算失效。後續在檢查表新增「公式追蹤引用」步驟,問題不再發生。

案例 2:生醫數據新創—臨床試驗副檔

背景:新創公司承接醫院 7 萬例病歷,需去重患者 ID,且符合 FDA 21 CFR Part 11 電子紀錄要求。

做法:使用 WPS 12.3「正則+步驟日誌」產生副本,並將 JSON 日誌一併寫入 GxP 系統。所有動作在受控 VM 執行,螢幕錄影留存。

結果:稽核官現場比對 SHA-256 與日誌時間戳,一次通過。相較於先前「人工篩選+Excel 追蹤」模式,文件準備時間縮短 70 %。

復盤:因單格內容最長達 600 KB,曾觸發「欄位過長」錯誤。後續改用「分段截取」策略,把病歷摘要拆成 5 欄,再執行清理,順利通過驗證。

監控與回滾(Runbook)

異常信號

  • ExitCode ≠ 0
  • 輸出檔案大小 < 原始檔案 5 %
  • 日誌 JSON 缺失或 SHA-256 不符
  • Windows 事件日誌出現「磁碟已滿」

以上任一觸發,即進入「定位→回退→通報」流程。

定位步驟

  1. 先檢查 %temp%\WPS\et 下是否有暫存檔,大小若為 0 KB,表示寫入失敗。
  2. 使用 jq 查看 JSON 日誌最後一步的 errorMessage 欄位。
  3. 若磁碟空間正常,再檢查防毒隔離區是否誤刪暫存檔。

回退指令

xcopy 原始檔_backup.et 原始檔.et /Y && del 原始檔_clean.et

同時於工單系統標註「回退完成」,通知下游系統暫停拉檔。

演練清單

  • 每季模擬「磁碟已滿」一次,確保 Runbook 可在 15 分鐘內完成回退
  • 半年度邀請稽核單位桌上演練,驗證 JSON 日誌可重現清理軌跡
  • 年度災難復原演練,從離線備份還原 .et 與日誌,確認雜湊一致

FAQ

Q1:行動版能否離線執行正則篩選?
結論:無法。因外掛需即時下載 ICU 資料檔,離線狀態下會顯示「缺少語言包」。
背景:Android 版 12.3 為了減少 APK 體積,把 ICU 資料拆成可選模組。
Q2:可否同時對多欄執行不同正則?
結論:目前僅支援「單欄單規則」,需分多次執行。
證據:官方文件〈進階清理〉章節僅提供單一「規則運算式」輸入框。
Q3:JSON 日誌會不會洩露敏感資料?
結論:不會。日誌僅記錄雜湊與欄位範圍,不儲存實際值。
背景:稽核追蹤只需證明「做過哪些動作」,無須重現原始內容。
Q4:11.x 升級 12.3 後,舊巨集會失效嗎?
結論:不影響原有 VBA 語法,但呼叫舊外掛介面需改路徑。
證據:WPS 官方公告 2025-11 指出「向下相容,但外掛 GUID 已變更」。
Q5:「預覽」高亮速度能否再快?
結論:可關閉「即時語法上色」與「拼音提示」。
經驗性觀察:關閉後,3 萬行預覽時間由 2.4 秒降至 1.1 秒。
Q6:單檔超過 1 GB 能否執行?
結論:不建議。超過 524 KB 單格即被限速,1 GB 檔案常觸發「記憶體不足」。
替代方案:先用 Power Query 拆檔,再分批清理。
Q7:日誌檔案能否自行刪除?
結論:可手動刪除,但將失去稽核軌跡。
建議:搬移至冷儲存,而非直接刪除,以保留最低 7 年法遵期。
Q8:支援 Unicode 15 嗎?
結論:ICU 74 已對應 Unicode 15,但 Emoji 新碼位需留意。
經驗性觀察:部分 Emoji 落在「S」類,可能被 \p{L} 排除。
Q9:能否整合 Git LFS?
結論:可。將 *_clean.et 與 JSON 日誌一起追蹤。
注意:ET 檔為二進位,差異僅顯示「檔案變更」,無法像程式碼逐行比對。
Q10:macOS 外掛被封鎖,如何大量部署?
結論:透過 MDM 下達「隱私與安全」白名單。
指令:/usr/bin/profiles -I -F wps_allow_plugins.mobileconfig

術語表

ICU
International Components for Unicode,WPS 正則引擎底層函式庫。
StepsLog
WPS 12.3 新功能,存放 JSON 格式操作軌跡的隱藏目錄。
GDPR
歐盟一般資料保護規範,要求可審計之刪除流程。
SHA-256
雜湊演算法,用於校驗檔案完整性。
非貪婪
正則量詞「*?」或「+?」,減少回溯次數,提升效能。
Nested backtracking
巢狀回溯,易造成指數型效能衰退。
WORM
Write Once Read Many,一次寫入多次讀取儲存體,符合法規。
HSM
Hardware Security Module,硬體加密模組,用於解密敏感欄位。
Token 化
將敏感資料替換為無意義 Token,降低清洗風險。
#REF!
Excel/WPS 錯誤值,表示公式參照失效。
Guid
外掛唯一識別碼,升級後可能變更。
Power Query
微軟資料轉換外掛,WPS 亦提供相容版本。
Git LFS
Git Large File Storage,用於版本控管大型二進位檔。
MDM
Mobile Device Management,行動裝置管理,可大量下達白名單。
ExitCode
命令列結束代碼,0 表示成功,非 0 表示異常。
Batch 模式
透過 /autorun 參數,無介面執行巨集或外掛。

風險與邊界

1. 單格 524 KB 上限:超過即無法預覽,需拆欄或改用 Power Query。

2. 加密欄位:正則僅看到亂碼,清洗結果無意義;需先解密,合規成本高。

3. 即時協作:WPS 不支援「原地」清理,副本輸出後需重新設定共用權限。

4. 多語系姓名:過於嚴格規則可能誤刪合法字元;建議先用抽樣建立允許清單。

5. 回溯效能:貪婪語法於 10 萬行以上易失控,需在測試環境先跑 1 千行樣本。

6. 行動裝置:超過 3 萬行常因記憶體不足被終止;僅適合緊急簡易去重。

7. 檔案鎖定:OneDrive 即時同步可能佔用 handle,建議先暫停同步或改用本地磁碟。

8. 外掛封鎖:macOS 升級後需重新允許;未列入 MDM 白名單將導致批量部署失敗。

替代方案:若上述風險不可接受,可評估 Python+Pandas 離線腳本,或採用商業 ETL 工具;但將失去 WPS 原生日誌格式,需額外開發稽核介面。

未來趨勢與結語

WPS 官方在 2025Q4 投影片中透露,下一個 13.x 版將把「正則篩選」升級為「Python 腳本篩選」,允許進階用戶直接引用 Pandas 語法,同時保留現有稽核日誌結構。對於需要更高自由度的大數據團隊,可評估到時遷移;但從合規角度,ICU 正則仍具「無外部依賴、可離線執行」優勢,短期內仍是醫療與金融場景的首選。

總結來說,「大數據清理」並非單純的「按下去重」就能結案;可稽核性、可回溯性與版本遷移成本,都是決策的一環。透過 WPS 表格 12.3 提供的「正則篩選+步驟日誌」,我們能在副本與日誌雙重保險下完成批次清理;同時透過效能邊界與例外清單,避開加密欄、公式動態區與多語系陷阱,才能真正讓數據清理「快得安心、刪得留痕」。隨著 13.x Python 化在即,期待官方在自由與合規之間持續迭代,為不同規模的團隊提供可持續的資料治理基座。