乐于分享
好东西不私藏

前置学习阶段:数据规范——Excel高效管理的基石

前置学习阶段:数据规范——Excel高效管理的基石

为什么数据规范比学函数更重要?

很多人一上来就急着学函数、做透视表,结果发现:

  • VLOOKUP总是返回#N/A

  • 透视表统计数字明显不对

  • 明明有数据,公式就是算不出来

90%的进出库管理问题,根源都是数据不规范。

这2天看似简单,却是后续所有学习的基础。基础不牢,地动山摇。请一定沉下心来,认真完成每一项实操。


第1天:分清一维表与二维表

一、什么是二维表?(错误示范)

二维表的特点:行和列都是“类别”,中间区域是数值。

❌ 错误案例:常见的手工台账

物料名称
1月1日
1月2日
1月3日
1月4日
1月5日
轴承6205
入库50
出库20
入库30
出库10
库存50
螺栓M6
入库200
入库100
出库50
出库30
库存220

问题分析

  • 日期作为列标题 → 每天都要新增一列,表格无限向右扩展

  • 库存状态混合在记录中 → 分不清哪些是“发生额”,哪些是“余额”

  • Excel无法按“日期范围”筛选 → 想查某段时间的入库记录,非常困难

  • 无法用透视表汇总 → 行列结构不符合数据透视表要求

这就是典型的“给人看的表”,不是“给Excel算的表”。

二、什么是一维表?(正确示范)

一维表的特点:每一行是一条完整的“业务记录”,列是固定的“字段”。

✅ 正确案例:标准化出入库记录表

日期
单据类型
物料编码
物料名称
规格
数量
单位
单价
供应商/领用部门
2026-05-01
入库
6205
轴承
6205-2RS
50
12.5
震坤行
2026-05-02
出库
6205
轴承
6205-2RS
20
12.5
装配车间
2026-05-03
入库
6205
轴承
6205-2RS
30
13.0
哈轴集团
2026-05-04
出库
6205
轴承
6205-2RS
10
12.5
装配车间
2026-05-01
入库
M6
螺栓
M6×30
200
0.3
振华紧固件
2026-05-02
入库
M6
螺栓
M6×30
100
0.31
振华紧固件
2026-05-03
出库
M6
螺栓
M6×30
50
0.3
金工车间

优势分析

  • 每一行都是独立的业务事件 → 记录了“某天、某物料、发生了多少数量”

  • 列是固定的 → 可以用筛选、排序、透视表自由分析

  • 数据可以无限向下扩展 → 不会出现“列不够用”的问题

  • 符合数据库设计规范 → 为后续VBA读取打下基础

三、实操任务:改造你的库存表

第一步:找出现有的“二维表”

打开你当前使用的库存台账,检查是否存在以下情况:

  • 行是物料,列是日期(1号、2号、3号……)

  • 行是物料,列是仓库(甲仓、乙仓、丙仓……)

  • 行是车间,列是物料

  • 单元格里有“入库50/出库30”这样用斜杠分隔的多项内容

第二步:按照一维表结构重建

按照上文的7列标准结构(日期、单据类型、物料编码、物料名称、规格、数量、单位、单价、供应商/领用部门)重建。

第三步:历史数据转换(进阶技巧)

如果历史数据量大,可以用以下方法快速转换:

使用【数据】选项卡→【从表格/区域】→Power Query编辑器→取消透视列

具体操作:选中日期列的多个列 → 右键“取消透视” → 即可快速将二维表转为一维表。


第2天:数据规范三原则

原则一:绝对不合并单元格

❌ 错误案例:合并单元格的表头

| 物料信息 | 出入库记录 ||----------|----------|------|| 编码 | 名称 | 日期 | 数量 |

问题:Excel会把合并单元格后的第一个单元格视为有值,后面的视为空白。当用排序、筛选、透视表、VBA读取时,会出现大量空白或错位。

✅ 正确做法

  • 表头占一行,每个字段独立一列

  • 需要分组的视觉效果,用“跨列居中”代替合并单元格(格式→对齐→水平对齐→跨列居中)

原则二:每列一个字段,不混填

❌ 错误案例:一个单元格里塞多个信息

物料编码
物料信息
6205
轴承6205-2RS,品牌哈轴,价格12.5

问题:无法按“品牌”“价格”单独筛选、排序或计算。

✅ 正确做法:拆分为多个独立列

物料编码
物料名称
规格
品牌
单价
6205
轴承
6205-2RS
哈轴
12.5

原则三:无空行、无空列

❌ 错误案例:表格中间有空行

日期
物料
数量
5月1日
轴承
50
(空行)
(空)
(空)
5月2日
螺栓
100

问题

  • 筛选时,空行下面的数据会被“切断”,无法筛选到

  • 透视表默认认为空行是表格结束,不会统计下面的数据

  • VBA循环读取时,遇到空行会停止

✅ 正确做法

  • 数据连续存放,中间不留空行、空列

  • 新增数据直接追加在最后一行下面

  • 删除数据时,删除整行,而不是清空单元格

如何快速清理空行

  1. 选中任意一个数据单元格 → Ctrl+A(全选数据区域)

  2. 【开始】→【查找和选择】→【定位条件】→【空值】

  3. 右键删除→【下方单元格上移】或【整行删除】


综合实操演练(第2天完成)

试例:将以下“给人看的台账”改造成标准一维表

原始台账(错误示范):

物料
期初
5月1日
5月2日
5月3日
期末
轴承
100
入库50
出库20
入库30
160
螺栓
500
入库200
入库100
出库50
750

改造后的标准一维表(正确示范):

日期
单据类型
物料
数量
备注
5月1日
入库
轴承
50
5月2日
出库
轴承
20
5月3日
入库
轴承
30
5月1日
入库
螺栓
200
5月2日
入库
螺栓
100
5月3日
出库
螺栓
50

说明

  • 期初库存、期末库存不存储在记录表中,而是通过公式动态计算

  • 动态计算公式:当前库存 = 期初 + SUMIF(入库) - SUMIF(出库)


常见问题排查清单

问题
排查方法
解决方案
VLOOKUP返回#N/A
检查查找列是否有合并单元格、空格、不可见字符
删除合并单元格,用TRIM清除空格
透视表统计结果为0
检查数据区域是否有空行、空列
重新选择数据区域,删除空白行列
筛选时数据不全
检查表格中是否有空行
删除空行
日期无法按月分组
检查日期列是否为“文本”格式
使用“分列”功能转为日期格式
数字无法求和
检查是否有文本型数字(单元格左上角有绿三角)
使用“转换为数字”批量处理

第2天结束后的成果检查

完成以下自检,全部打√后再进入下一阶段学习:

  • 所有进出库记录都在一张表里,每一行是一条完整记录

  • 表头只有一行,没有任何合并单元格

  • 每一列都有明确的字段名,没有“备注”里塞大量结构化信息

  • 表格中没有空行、空列

  • 日期列是真正的日期格式(不是文本),可以按年月日筛选

  • 数量列是数字格式(不是文本),左上角没有绿三角


总结:一句话记住今天的内容

让每一行成为一条独立的业务事件,让每一列只有一个纯粹的业务属性。

数据规范做得好,Excel后续学习效率提升一倍;做得不好,后面每一步都会踩坑。

我是蜗壳科技的小蜗,祝工作中的你天天轻松,聚焦AI,Cad,Excel,二次开发,参数化,自动化设计,如果需要,请关注