ARTICLE · 1276215
3 个 Excel 函数,月末对账省 2 小时
月末最后两天,财务室最常见的一幕:
两张表摊在屏幕上——一张是你的账,一张是客户(或银行、供应商)给的对账单。几百行,密密麻麻。
然后你开始对。一行一行看,看到一个眼熟的,去另一张表里找一找,找到了再比金额,金额不一样还得算差多少……
一个下午过去了,眼睛花了,还漏了两处。
问题不是你不够仔细。是你还在用人眼看,而 Excel 早就能自己算。
下面这三个函数,是月末对账最实用的组合。不复杂,会复制粘贴就能用。
先说清楚:对账其实是三件事
很多人对账觉得乱,是因为把三件事混在一起做了:
- 缺了谁——对方表里有、我没有,或者我有、对方没有
- 差多少——两边都有的,金额对不对得上
- 总数对不对——按客户/科目汇总后,两边合计数是否一致
三件事,三个函数,一步一步来。
下面假设你的表长这样:
- 表A(我的账)
:A列 = 客户名称,B列 = 金额 - 表B(对方对账单)
:A列 = 客户名称,B列 = 金额
(你的实际列名可能不一样,把公式里的字母换掉就行。)
第一步:用 COUNTIF 找出"缺了谁"
在表A的 C2 单元格输入:
=IF(COUNTIF(表B!A:A,A2)=0,"对方没有","")
往下拉到底。
这一列出现"对方没有"的,就是差异。 一眼扫下去,比一条条找快得多。
反过来,想知道"对方有、我没有"的,在表B里做同样的事,把公式里的表名对调:
=IF(COUNTIF(表A!A:A,A2)=0,"我这边没有","")

第二步:用 VLOOKUP 对比"差了多少"
在表A的 D2 输入:
=IFERROR(VLOOKUP(A2,表B!$A:$B,2,0),"")
这一列会把对方表里同名的金额拉过来,和你的 B 列并排放着。
然后再加一列,自动标出差异:
=IF(ROUND(B2-D2,2)=0,"","差"&ROUND(B2-D2,2))
这一列不空的,就是要重点核对的。 有时候差几分钱是四舍五入,差几百几千就是真问题。

第三步:用 SUMIF 验证"总数对不对"
两张表明细都对完了,还要看一眼合计。
在表A的 E2 输入:
=SUMIF(表B!A:A,A2,表B!B:B)
这是"对方表里,这个客户的金额合计"。再和你的 B 列一比:
=IF(ROUND(B2-E2,2)=0,"","合计对不上")
这一步能抓到最隐蔽的问题——同一客户两边都有,但对方是分几笔记的,你这边合成一笔了,明细对不上、合计却对得上。反过来也一样。

三个坑,踩一次疼一次
坑 1:VLOOKUP 第 4 个参数忘了写 0。
=VLOOKUP(A2,表B!$A:$B,2) ← 错,默认近似匹配
=VLOOKUP(A2,表B!$A:$B,2,0) ← 对,精确匹配
不写这个 0,Excel 会给你找一个"差不多"的值回来,你还以为对上了。这是对账里最危险的一种错——它不报错,它给你一个错的答案。
坑 2:两边格式不一样。
一个是文本、一个是数字,或者名字后面多了个空格("张三"和"张三 "),VLOOKUP 就返回 #N/A,你以为是"对方没有",其实是格式问题。
排查办法:用 =TRIM(A2) 清一下空格,或者选中整列"分列"一次转成统一格式。
坑 3:查找区域没加 $ 锁定。
往下拉公式的时候区域跟着跑,后面的行就对错了。写 $A:$B,别写 A:B。
如果你的 Excel 是 2021 或 365
那第一步和第二步可以合成一个函数:
=XLOOKUP(A2,表B!A:A,表B!B:B,"没找到")
不用管列顺序,不用管第 4 个参数,找不到还能直接显示"没找到"。比 VLOOKUP 省心。
但如果你的电脑是 WPS 或者老版本 Excel,就用 VLOOKUP——能用上的函数才是好函数。
最后
这三个函数不难,难的是你愿不愿意花二十分钟学一次。
学会之后,每个月末省下来的那两个小时,是实实在在的。
对账这事,本质上不是比谁更细心,是比谁的方法更省力。
你还想学哪个 Excel 操作? 月末结账、凭证批量处理、报表自动汇总……评论区告诉我,哪个问得多我先写哪个。
(这篇建议先收藏,月末用的时候翻出来照着做。)















































































