如何基于1/2标识自动填充会计借贷多列数据
会计借贷自动分类解决方案
数据源表(假设表名为「数据源」)
| 类型 | 描述 | 金额 | 日期 | 备注 |
|---|---|---|---|---|
| 2 | 电缆 | 50 | 5月12日 | 1.0mm扁平线 |
| 1 | 付款001 | 30 | 5月24日 | |
| 2 | 插头 | 10 | 8mm规格 | |
| 2 | 零星配件 | 15 | ||
| 1 | 付款002 | 20 | 5月30日 |
方案一:动态数组FILTER函数(推荐,适配Excel 365/2021及以上)
自动筛选分类,新增数据后无需手动刷新,无无效FALSE值。
贷方表(匹配类型1)
在贷方表对应单元格输入以下公式:
- 描述列(如A2):
=FILTER(数据源!B:B, 数据源!A:A=1, "") - 日期列(如B2):
=FILTER(数据源!D:D, 数据源!A:A=1, "") - 备注列(如C2):
=FILTER(数据源!E:E, 数据源!A:A=1, "") - 贷方类型列(如D2):
=FILTER(数据源!A:A, 数据源!A:A=1, "") - 金额列(如E2):
=FILTER(数据源!C:C, 数据源!A:A=1, "")
公式说明:FILTER(目标列, 筛选条件, 无匹配时显示内容),用空字符串替代FALSE,避免无效值。
借方表(匹配类型2)
将筛选条件改为数据源!A:A=2即可,例如描述列公式:
=FILTER(数据源!B:B, 数据源!A:A=2, "")
其余列按贷方表逻辑替换对应数据源列。
方案二:INDEX+SMALL组合公式(兼容旧版Excel)
适配不支持动态数组的Excel版本,需下拉填充,无匹配时显示空值。
贷方表(匹配类型1)
- 描述列(如A2):
输入后按=IFERROR(INDEX(数据源!B:B, SMALL(IF(数据源!A:A=1, ROW(数据源!A:A)), ROW(A1))), "")Ctrl+Shift+Enter触发数组公式(新版Excel直接回车),再下拉填充至足够行数。 - 日期、备注、类型、金额列同理,替换公式中对应的数据源列即可。
借方表(匹配类型2)
将公式中的数据源!A:A=1改为数据源!A:A=2,例如描述列公式:
=IFERROR(INDEX(数据源!B:B, SMALL(IF(数据源!A:A=2, ROW(数据源!A:A)), ROW(A1))), "")
同样按数组公式操作后下拉填充。
注意事项
- 固定数据源表的表头和列位置,避免引用错误。
- 方案一新增数据后自动更新;方案二需下拉填充覆盖新增数据行。
- 通过
IFERROR或FILTER的空字符串参数,彻底解决原公式返回大量FALSE的问题。
内容的提问来源于stack exchange,提问作者Jacques
相关产品推荐
相关产品推荐

