每個月的帳單整理,多數人的注意力都放在「分類」:這個月吃了多少、交通花了多少、娛樂又佔了多少。分類當然重要,但真正會默默吃掉你錢包的,往往不是某一筆大額支出,而是那些「重複」——被系統不小心扣了兩次的款項、早就忘了卻還在自動續訂的服務、以及你同時付錢給兩個功能幾乎一樣的工具。這一類錢,分類做得再漂亮也抓不到。
我以前也一樣,月底把交易明細丟進試算表,一條條標上「飲食」「交通」「訂閱」,做完還覺得自己很有效率。直到有一次,我無意間發現同一家串流平台在同一個月扣了我兩次款,而且已經連續發生好幾個月——因為每次對帳我都只忙著分類,根本沒停下來「比對」。從那之後,我把月底回顧重新拆成兩半:一半是分類,另一半專門抓重複。這篇文章講的是後半段,也是我覺得最值錢的那半段。
先搞清楚:你要抓的是哪三種「重複」
動手之前,先把「重複支出」這個模糊的概念拆開,否則連要 AI 找什麼都不知道。我自己的經驗裡,重複大致分成三類。
第一種是「重複扣款」(duplicate charge):同一筆交易、同一個商家、同一個金額,卻在同一個月內被扣了兩次。這通常不是你有意的消費,而是系統出錯、網路延遲導致重複刷卡,或是自動續訂的機制出了 bug。這種最該抓,因為它通常是「錯的」,抓到了就能直接申請退款。
第二種是「重複訂閱」(duplicate subscription):你在兩個不同的地方,分別付錢買了功能重疊的服務。例如同時訂了兩個雲端硬碟、兩個筆記 App、或是兩個 AI 寫作工具,自己卻沒意識到功能早就重疊。這種錢不算「錯」,但算「浪費」,停掉一個通常毫無損失。
第三種是「殭屍訂閱」(zombie subscription):你早就沒在用,但它還每個月在扣款。嚴格說這不是「重複」,但它和重複一樣,都屬於「帳單上不該繼續存在的項目」,所以我一併放進來處理。
把這三種分清楚很重要,因為後面給 AI 的提示,會分別請它做「比對同筆」「比對功能重疊」「標出長期未使用」三件事。如果你只跟 AI 說「幫我找重複」,它會給你一堆模糊的答案,反而更亂。
第一步:把明細匯成一份乾淨的純文字
抓重複的第一個前提,是讓 AI 看得到「完整的、同一個格式」的資料。如果資料散在銀行 App、電子錢包、Email 扣款通知裡,AI 只能看到碎片,比對就沒有意義。
我的做法是每個月固定做一次:先從網路銀行把當月的信用卡/扣帳卡交易明細匯出成 CSV;電子錢包(Touch 'n Go eWallet、GrabPay、DuitNow 這類)如果能匯出就用匯出,不能就截圖再用 OCR 轉文字;訂閱扣款通知則從信箱搜尋「receipt」「invoice」「subscription」等關鍵字,把郵件內容轉成文字。最後把所有東西貼進同一個文字檔,或放進同一份試算表的一欄。
匯出的時候我會刻意保留幾個關鍵欄位:交易日期、商家名稱、金額、以及原始描述。商家名稱和描述這兩欄是抓重複的命脈,因為 AI 是靠它們來判斷「這筆和那筆是不是同一件事」。金額反而只是輔助——同一個商家不同金額,可能是不同商品,不能單靠金額就斷定重複。
第二步:去識別化,再談 AI
把財務資料整份丟給 AI,隱私是繞不開的顧慮。帳號、卡號、甚至是你每個月固定的消費地點,都是很私密的東西。我的原則是:任何敏感欄位,在進 AI 之前先處理掉。
具體做法很直接:把交易明細裡的卡號末四碼、完整卡號、帳戶號碼、以及任何看起來像身分證字號或電話號碼的字串,先用試算表的「取代」功能換成「卡號A」「帳號B」這類代號。如果你願意的話,連商家名稱都可以簡化,但我不建議過度簡化商家名稱——因為抓重複靠的就是商家名稱,簡化得太乾淨,AI 反而對不上。我的折衷是:保留商家名稱,但拿掉所有可以辨識「你這個人」的欄位,例如會員編號、訂單號碼、以及地址電話。
另外我會留意自己用的是哪一個 AI。如果資料比較敏感,我會傾向用可以控制資料用途、甚至支援本機或企業級資料處理的模型(例如 Gemini 或 Claude 的工作區方案,或本機跑的模型)。用免費的公開聊天介面貼敏感資料,我會直接避免。這不是危言聳聽,而是「去識別化」做得再好,也敵不過你把原始資料貼進一個你不知道資料會去哪的輸入框。
第三步:一段固定提示,讓 AI 分三路去找
準備好乾淨的明細之後,接下來是核心:一段可以每個月重複使用的提示。我把提示設計成「分三路」的結構,分別對應前面那三種重複。這是我實際在用的版本,你可以直接複製改寫:
提示模板(去識別化後使用)
以下是我這個月的交易明細(已去識別化),包含日期、商家、金額、描述四欄。請幫我分成三部分檢查:
- 重複扣款:找出「同一個商家、金額完全相同、一個月內出現兩次以上」的交易,並判斷哪些很可能是系統重複扣款,而非有意的多次消費(例如不同日子、合理間隔的分次消費通常是正常的)。
- 重複訂閱:找出功能明顯重疊的訂閱服務(例如多個雲端硬碟、多個筆記工具、多個 AI 訂閱),並說明它們功能重疊的地方。
- 殭屍訂閱:標出每個月固定重複出現、但從描述看不出「使用痕跡」的訂閱項目,列出「建議我確認是否還在用」的清單。
請用表格輸出,每筆都附上:商家、金額、出現次數、你判斷的依據、以及建議動作(申請退款/考慮取消/人工確認)。如果不確定,請明確寫「不確定」,不要猜。
這段提示有幾個設計上的用意。第一,我明確要求它「不確定就寫不確定,不要猜」,這是抓重複最容易被忽略的安全帶——AI 為了給出「漂亮」的答案,常常會傾向把模糊的比對說成確定,明確要求它承認不確定,能大幅降低誤判。第二,我請它「附上判斷依據」,這樣我才能人工核對,而不是拿到結論就直接相信。
第四步:人工核對,把結論變行動清單
AI 給出的結果,我把它當作「候選名單」,而不是「定案」。這一步我認為和提示本身一樣重要。
我會把 AI 列出來的每一筆,回到銀行 App 或原始明細裡逐一確認。重複扣款的,看是不是真的同一天、同金額、同商家,然後決定要不要申請退款;重複訂閱的,我會登入那兩個服務,實際比對一下功能,確認停掉其中一個不會影響工作流程;殭屍訂閱的,我會回顧過去一兩個月有沒有真的打開過,沒有的話就直接停。
最後我會把確認完的結果,整理成一份簡單的「行動清單」:哪些要退款、哪些要取消、哪些要再觀察一個月。這份清單不用複雜,甚至只是幾行文字也行,重點是讓「抓重複」的結果,落地成「這個月真的會去做」的動作。否則 AI 幫你找出一堆問題,你卻什麼都沒改,下個月還是一樣。
AI 會在哪裡出錯,你該提防什麼
抓重複聽起來很適合 AI,但它其實有幾個容易翻車的地方,我在實際用下來的經驗是這樣。
第一個是「過度配對」。同一個商家在不同分店消費,AI 可能誤判成重複;金額相同但其實是兩次不同的消費,也可能被拉出來。所以我一再強調「附上依據」和「人工核對」——這不是多餘的謹慎,而是抓重複的基本功。
第二個是「看不到使用痕跡」。殭屍訂閱的判斷,AI 其實只能靠描述去猜,它看不到你到底有沒有在用那個服務。這部分一定要靠你自己回想,AI 只能幫你「縮小範圍」,不能替你「決定」。
第三個是「資料不完整」。如果你只給 AI 信用卡明細,卻漏了電子錢包或另一個銀行的帳戶,那麼「跨帳戶的重複訂閱」它永遠抓不到。所以第一步「把資料撈齊」才那麼關鍵——AI 的品質上限,是由你給它的資料決定的。
把這件事變成一種節奏
抓重複這件事,單獨做一次的效果有限,真正的價值在於「重複地做」。我的建議是把它綁進你既有的月底回顧流程裡,當成固定的一個環節:匯出明細 → 去識別化 → 貼提示給 AI → 人工核對 → 更新行動清單。整套跑完,認真一點大概二十分鐘,熟了之後十分鐘內可以收工。
一旦建立起這個節奏,你會發現一個很奇妙的正向循環:因為你知道每個月都會檢查,所以你對「正在扣款的東西」變得更有意識;因為更有意識,你就不會再莫名其妙多訂一堆重複的服務;因為訂閱變少,月底對帳就越來越輕鬆。抓重複不是一件「做完就忘」的苦差事,而是一個會自己越變越簡單的習慣。
月底的帳單整理,分類能讓你看清楚「錢花去哪」,而抓重複能讓你看清楚「哪些錢根本不該走」。前者幫你理解,後者幫你止血。如果你跟我一樣,曾經被同一個服務默默扣了好幾個月才發現,那這篇文章想說的其實只有一句話:別再只分類了,也停下來比對一下——讓 AI 幫你盯著那些你沒注意到的重複。
