自学相伴,共同进步,大家好,这里是 EXCEL 自习室。
今天解决一个同学批量生成入库单的问题,他有一份明细表,记录了客户名称、单据编号、每单商品明细等,需要根据客户名称和单据编号将对应的商品明细提取出来,批量生成入库单。
一、核心制作逻辑
已有数据源:明细表,包括客户名称、单据编号、开单日期、业务员、货品明细、收支数量、金额等数据
制作需求:以单据编号+客户名称为唯一识别码,拆分生成独立入库单,单与单自动空行分隔,保留原有入库单格式,可直接打印。。

表 1:明细表

表 2:入库单
步骤 1:将明细表设为超级表
- 点打开 Excel 文件,切换至原始明细表工作表;
- 点击表格内任意单元格,按下快捷键 CTRL+T;
- 在弹出的创建表窗口中,勾选表包含标题,点击【确定】。
作用:转为超级表后,后续新增数据可自动扩展,筛选、排序、公式引用也会更便捷。

步骤 2:整理原始数据,统一排序
1. 打开 Excel 文件,切换至原始表工作表;
2. 按下Ctrl+A全选所有数据,点击右键—排序—自定义排序;
3. 主要关键字选择单据编号,排序依据为「单据编号」,次序选择「升序」,点击确定;
✅ 作用:将同一单据的所有商品明细集中排列,方便后续复制使用。

步骤 3: 提取不重复的入库单抬头信息
- 回到原始明细表,选中客户名称、业务名称、开单日期、单据编号四列全部数据,按下 Ctrl+C 复制;
- 切换到「批量入库单」工作表,在空白单元格按下 Ctrl+V 粘贴;
- 选中刚粘贴的四列数据,点击【数据】→【删除重复值】;
- 弹窗内勾选全部 4 列,点击确定,即可筛选出所有唯一单据的抬头信息。

步骤 4:编制单据唯一序号
在步骤 3 提取的不重复入库单抬头信息表前面设置一个序号列,依次填入序号,一个号码对应一个入库单

步骤 5:根据序号提取对应数据
1.在第一张入库单右侧空白单元格录入序号1,利用序号联动匹配整张单据抬头
2.根据序号 1 提取对应的表头数据:
客户名称:=XLOOKUP(J1,K:K,L:L)
开单日期:=XLOOKUP(J1,K:K,N:N)
单据编号:=XLOOKUP(J1,K:K,O:O)
业务员:=XLOOKUP(J1,K:K,M:M)
注意:J1 不要绝对引用,后续公式要向下拖动

步骤 6:根据单据编号从明细表中提取对应商品信息
依托调取出来的【单据编号】,一键抓取该单据下所有货品、数量、金额:
商品名称:=FILTER(表1[ 商品名称 ],表1[单据编号]=入库单!F2,"")
开单数量:=FILTER(表1[开单数量],表1[单据编号]=入库单!F2,"")
出库数量:=FILTER(表1[出库数量],表1[单据编号]=入库单!F2,"")
结余数量:=FILTER(表1[结余数量],表1[单据编号]=入库单!F2,"")
应收金额:=FILTER(表1[应收金额],表1[单据编号]=入库单!F2,"")
实收金额:=FILTER(表1[实收金额],表1[单据编号]=入库单!F2,"")
未付金额:=FILTER(表1[未付金额],表1[单据编号]=入库单!F2,"")

步骤 7:向下拖动扩展序号
- 查看步骤4编制的单据序号最大值,确定一共需要生成多少张入库单;
- 选中第一张入库单旁序号1 + 整张入库单 + 下方分隔空白行;
- 向下拖拽填充,直至序号匹配最大单据编号。

步骤 8:向下拖动入库单区域数据
- 选中第一张完整入库单区域,再多选下方一行空白分隔行;
- 向下拖拽至单据最大序号位置;
- 右下角自动填充选项,选择复制单元格。

答疑:为什么序号、表单要分两步拖拽? 如果一起拖拽,入库单侧边序号会连续递增打乱编号,分开操作,才能保证每张入库单侧边序号依次为1、2、3,精准匹配单据编码。
步骤 9:调整入库单格式
调整入库单格式,使其正好一张入库单打印在一页

整套实操极简思路总结
整体核心思路:数据源标准化提纯→编号绑定联动→公式自动取数→分区批量复制排版
- 打底:明细表转为超级表+单号排序,统一数据源,适配后续公式调取;
- 提纯:去除重复单据,整理每单专属抬头,给每张单据编独立序号;
- 联动:序号当做钥匙,XLOOKUP调取单据抬头,FILTER匹配对应货品明细;
- 生成:分开两步拖拽,先填序号、再复制整张入库单,避免编号错乱;
- 收尾:微调页面格式,实现一单一页,直接打印使用。
夜雨聆风