Excel相同编号的正负金额,相互抵消,保留有效数据
- 2026-11-11 10:20:30
Excel相同编号的正负金额,相互抵消,保留有效数据
前瞻公式:=COUNTIFS(B$1:B2,B2,C$1:C2,C2)<=COUNTIFS(B:B,B2,C:C,-C2)

核心逻辑:去重匹配
这个公式主要用于“按单号配对正负金额”,判断当前行是否为“有效配对项”。简单来说:如果某笔金额(如 +100)能找到对应的相反数(-100),且当前是首次或第 n 次出现,则标记为 TRUE,否则为 FALSE。
1. 左边部分:COUNTIFS(B$1:B2,B2,C$1:C2,C2)
含义:统计“从第1行到当前行”中,与当前行完全相同的组合出现的次数。
- B$1:B2
:从第1行到当前行的“结算单号”范围(动态扩展)。 - C$1:C2
:从第1行到当前行的“本次报账净价”范围(动态扩展)。 - 作用
:给每一行打上“第几次出现”的标签。
举例:
D2(第2行):统计 B1:B2 和 C1:C2 中,单号=A0002 且金额=43.08 的次数 → 只有1次 → 结果=1。 D6(第6行):统计 B1:B6 和 C1:C6 中,单号=A0002 且金额=135.55 的次数 → 只有1次 → 结果=1。 D10(第10行):再次出现 135.55 → 统计到第2次 → 结果=2。
2. 右边部分:COUNTIFS(B:B,B2,C:C,-C2)
含义:统计“整个表格中”,与当前行单号相同,但金额为相反数的总次数。
- -C2
:取当前金额的相反数(如 43.08 → -43.08,-302.74 → 302.74)。 - 作用
:看有多少笔“能抵消当前金额”的记录。
举例:
D2(金额=43.08):找整个表中单号=A0002 且金额=-43.08 的记录 → 如果没有 → 结果=0。 D3(金额=-302.74):找整个表中单号=A0002 且金额=302.74 的记录 → 有3笔(D10、D14、D26)→ 结果=3。
3. 整体判断:左边 <= 右边
逻辑:当前行的“出现次数”是否 ≤ “能抵消它的总次数”?
- 如果成立(TRUE)
:说明当前金额能找到“配对对象”,是有效记录。 - 如果不成立(FALSE)
:说明“配对名额已满”,当前行是多余的重复项。
举例:
D2(43.08):左边=1,右边=0 → 1 <= 0?不成立 → FALSE。 D3(-302.74):左边=1,右边=3 → 1 <= 3?成立 → TRUE。 D10(135.55):左边=2(第2次出现),右边=1(只有1个-135.55)→ 2 <= 1?不成立 → FALSE。
应用场景
这个公式常用于财务对账或费用报销场景,目的是:
自动识别哪些费用是“真实发生且可报销”的(有对应支出/收入记录)。 过滤掉重复录入或无法匹配的无效数据
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。