---
title: 科目余额表借贷不平的 8 种成因与定位方法
summary: 科目余额表借贷不平，绝大多数时候不是账做错了，而是表被读错了：辅助核算行被当成一级科目、按编码前几位猜科目、方向列被当成金额列清零、父子科目重复累加——这四类占了我们处理过的两千多份余额表里不平案例的大头。
category: 审计实务
published: 2026-09-15T10:25:14.650148
source: https://www.opencpai.com/blog/trial-balance-imbalance-8-causes/
---

# 科目余额表借贷不平的 8 种成因与定位方法

科目余额表借贷不平，绝大多数时候不是账做错了，而是表被读错了：辅助核算行被当成一级科目、按编码前几位猜科目、方向列被当成金额列清零、父子科目重复累加——这四类占了我们处理过的两千多份余额表里不平案例的大头。本文按出现频率列出八类成因，每类给出能复现的定位方法，先查高频的，通常十分钟内能定位。

## 什么是"借贷不平"，先把口径说清楚

试算平衡是指：所有科目的期末借方余额合计，应当等于所有科目的期末贷方余额合计；同理期初余额、本期发生额也各自应平。这三组里任何一组不平，都叫借贷不平。

要注意的是，试算平衡只在**同一层级、同一口径**上成立。把一级科目和它的明细科目混在一起加，或者把辅助核算的往来单位行和科目行混在一起加，平不了是正常的——那不是账的问题，是表的读法问题。

## 科目余额表为什么会借贷不平？

按我们处理过的样本，成因大致有八类，出现频率从高到低：

| 成因 | 典型表现 | 一句话定位 |
|---|---|---|
| 辅助核算行混入科目行 | 权益类或往来类合计偏大，差额恰好是某一类的两倍 | 看首行是不是往来单位而不是科目 |
| 按编码前几位猜科目 | 五位一级编码的账套凭空多出"假科目" | 用科目名称对，不用编码位数对 |
| 方向列被当成金额列 | 大片金额变成 0.00 或方向全为借 | 检查"借/贷"单字列有没有被当数值处理 |
| 父子科目重复累加 | 合计恰好是明细合计的两倍 | 只加叶子科目，父级不再加 |
| 期初与期末列错位 | 期初平、期末不平，或反之 | 逐列核对表头对应的期间 |
| 损益类取了双侧余额 | 利润表科目出现借贷两侧都有数 | 损益类只取单侧发生额 |
| 多 sheet 拼接串期间 | 某几个科目的数明显不是同一年的 | 看每个 sheet 的期间标注是否一致 |
| 金额单位混用 | 差额是某个科目的 999 倍或 0.001 倍 | 查"元/千元/万元"的单位标注 |

前四类占了大头，所以排查顺序也按这个来。

## 怎么确认是哪一类成因？

先把差额算出来，再拿差额去对照上表的"典型表现"——差额本身携带的信息比想象中多。

1. **差额等于某个类别合计的两倍**：几乎肯定是重复累加或符号归一的问题。回到那个类别，看是不是父级和子级都被加了，或者往来单位行和科目行都被加了。
2. **差额等于某一个科目的余额**：多半是该科目的方向被读反了，或者它所在的行被跳过了。
3. **差额是 999 倍或 0.001 倍这种整数量级**：单位混用，通常是某个 sheet 用了万元。
4. **期初平、期末不平**：本期发生额那两列大概率错位了；反过来则是期初列错位。
5. **差额毫无规律**：往上翻，八成是多 sheet 拼接时把不同期间的数拼到了一起。

### 差额不是整数倍关系怎么办？

那说明不止一个成因叠在一起。这时不要试图一次找全，先把最高频的那一类（辅助核算行）排除掉，重新算差额，往往剩下的就是一个干净的整数倍关系了。

## 辅助核算行为什么是头号成因？

辅助核算是指在某个科目下再按往来单位、部门、项目等维度分别记账的做法，导出时这些维度行会和科目行并排出现在同一张表里。用友、金蝶的余额表导出默认就会带上这些行，而它们的编码列往往是空的或沿用了上级科目的编码。

问题就出在这里：如果读表的时候按"第一行有编码就是科目"来判断，某些账套里往来单位行会恰好排在科目行前面、抢走了那个编码，于是一个客户名被当成了科目，它下面的金额被重复算进了权益或往来类合计。我们在一份样本里见过因此权益少算了九千多万的情况，表面看只是"不平"，实际是父级科目被造错了。

定位方法很直接：看编码列，凡是编码为空、或者和上一行编码完全相同的行，先当作辅助核算行排除，再算一遍试算平衡。

## 为什么不能按编码前几位判断科目？

很多人习惯用"编码前四位是 1002 就是银行存款"这种规则。这在多数沿用财政部编号的账套里看着能用，但它不是通则：客户可以自定义编码，民间非营利组织、小企业准则下的账套编码体系各不相同，估值系统的编码和准则编号更不是一套。按前几位猜，遇到五位一级编码的账套就会凭空造出假科目。

稳妥的做法是：**编码只用于判断层级和排序，科目含义一律用科目名称去对**。名称有变体（"银行存款"和"银行存款-工行"），维护一张名称到标准科目的对照表，比猜编码可靠得多。

## 常见误区

- 以为不平就是账做错了。先排查表的读法，再怀疑账。
- 把所有行不加区分地求和。父级、子级、辅助核算行必须分开。
- 用编码前缀推断科目。编码只管层级和排序。
- 损益类科目取了借贷双侧余额。损益类看的是发生额，且只取一侧。

## 排查清单

按顺序过一遍，通常在第三步之前就能定位：

1. 差额是多少？是某个类别的整数倍吗？
2. 首行是科目还是往来单位？编码为空或与上一行相同的行有多少？
3. 一级科目是四位还是五位编码？有没有"看着像科目但名称对不上"的行？
4. 借/贷方向列是单独一列还是和金额混在一起？
5. 父级和子级是否都被加进了合计？
6. 期初、发生额、期末三组列的表头对不对得上？
7. 多个 sheet 的期间标注是否一致？
8. 单位是元、千元还是万元？

如果把余额表交给审小匠清洗，上面这八步是自动跑的，不平时会直接给出差额和最可能的成因。但无论用不用工具，知道差额里藏着什么信息，都是审计人该有的基本功。