建立正确的数据处理思维

我们用一个“学生信息管理”的例子,一步步来看如何应用这三个范式。

  • 学号|学生姓名|课程名称|课程学分|系别|系办电话|学科成绩

  • 1001|张三|数据库|4|计算机系|88880001|90

  • 1001|张三|数据结构|3|计算机系|88880001|85

  • 1002|李四|数据库|4|电子系|88880002|95

这张表虽然信息全,但存在很多问题:

  • 数据大量重复(如“计算机系”和它的电话),

  • 修改学分或系办电话需要更新多行,

  • 如果删除所有学生记录,课程和系别信息也会丢失。

为了解决这些问题,我们需要引入范式。

一、数据存储三范式

第一范式 1NF:原子性

核心:表中的每一列都必须是不可再分的单一属性。

例子: 上面的“大宽表”已经满足了第一范式,因为每一列(如“学生姓名”、“课程名称”)都是单一值。 反例: 如果有一列叫“联系方式”,里面同时存了“手机号”和“家庭电话”,那就不符合1NF。应该拆分成“手机号”和“家庭电话”两列。

小结: 不相关的内容绝不放在一个格子里。


第二范式 2NF:消除部分依赖

核心: 在满足1NF的基础上,表中的非主键列必须完全依赖 于整个主键,而不能只依赖于主键的一部分(这主要针对联合主键)。

分析:

  • 1. 在上面的“大宽表”中,我们需要用 (学号, 课程名称) 作为联合主键,才能唯一确定一行记录(一个学生的某一门课成绩)。

  • 2. 但是,学生姓名只依赖于 学号,课程学分只依赖于 课程名称。它们并没有完全依赖于 (学号, 课程名称) 这个整体。这就是“部分依赖”。

解决方案: 将存在部分依赖的字段拆分到独立的表中。

  • 学生表 (学号, 学生姓名, 系别, 系办电话)

  • 课程表 (课程名称, 课程学分)

  • 成绩表 (学号, 课程名称, 学科成绩)

现在,每个非主键字段都完全依赖于自己表的主键了。

小结 :表里所有数据,都必须完完整整靠整行主键决定,不能靠一半。


第三范式 3NF:消除传递依赖

核心: 在满足2NF的基础上,表中的非主键列必须直接依赖 于主键,而不能依赖于其他非主键列。也就是不能存在 A → B → C 这样的“传递依赖”。

分析: 我们来看拆分后的学生表 (学号, 学生姓名, 系别, 系办电话)。主键是 学号。 学号 决定了 系别,而 系办电话 实际上是由 系别 决定的。 这就形成了一个传递依赖链:学号 → 系别 → 系办电话。系办电话 并没有直接依赖于主键 学号。 解决方案: 将存在传递依赖的字段再次拆分。 学生表 (学号, 学生姓名, 系别) 系别表 (系别, 系办电话) 现在,学生表中的 系别 作为一个“外键”,指向系别表。系办电话 信息只在系别表中存储一次。

小结: 不要在一张表里,通过 A 字段推导出 B 字段;能用编号关联,就绝不重复存文字。

精简知识点

  • 1. 1NF :一格只存一件事,不混装

  • 2. 2NF :一表只做一件事,字段全靠主键定

  • 3. 3NF :文字别重复存,用编号查表,表内不传递绕弯子

拓展知识点: 了解一维表格和二维表格

二、重点学习EXCEL的快捷键

(一)基础操作快捷键

  • Ctrl + N:新建工作簿

  • Ctrl + O:打开现有工作簿

  • Ctrl + S:快速保存

  • Ctrl + W:关闭当前工作簿

  • Ctrl + P:打开打印界面 ==

  • Ctrl + Z==:撤销上一步操作 ==

  • Ctrl + Y==:恢复撤销的操作 ==

  • Ctrl + F==:查找内容 ==

  • Ctrl + H==:替换内容 ==

  • Ctrl + A==:全选当前数据区域(按两次全选工作表)

(二)导航与选择快捷键 快捷键 功能说明 Ctrl + ↑/↓/←/→ 快速跳转到数据区域边缘 Shift + ↑/↓/←/→ 扩展选择单元格范围 Ctrl + Shift + ↑/↓/←/→ 选择整行/列到数据末尾 Ctrl + Home 跳转到工作表开头(A1单元格) Ctrl + End 跳转到数据区域末尾 Alt + PageUp/PageDown 向左/右滚动一屏(笔记本可能需要配合Fn键)

(三)单元格编辑快捷键

  • F2:进入单元格编辑模式

  • Ctrl + Enter:在选中的多个单元格中同时输入相同内容

  • Alt + Enter:在单元格内换行(输入多行文本) ==

  • Ctrl + D==:向下填充(复制上方单元格内容) ==

  • Ctrl + R==:向右填充(复制左侧单元格内容)

  • Ctrl + ;:插入当前日期

  • Ctrl + Shift + ;:插入当前时间

  • Delete:清除单元格内容(保留格式)

  • Ctrl + -:删除选中的行/列/单元格

  • Ctrl + Shift + +:插入行/列/单元格

(四)格式调整快捷键

  • Ctrl + B:加粗/取消加粗

  • Ctrl + I:斜体/取消斜体

  • Ctrl + U:下划线/取消下划线 ==

  • Ctrl + 1==:打开“设置单元格格式”对话框

(五)公式与数据操作快捷键

  • F4:切换单元格引用方式(绝对/相对引用,如 A1 → $A$1)

  • Alt + =:自动求和(SUM函数)

  • F9:手动重新计算所有公式 ==

  • Ctrl + Shift + L==:启用/取消筛选(数据透视表同样适用) ==

  • Alt + D + S==:打开“排序”对话框(依次按键)

(六)其他高效技巧

  • 快速填充(Flash Fill) 输入示例后按 Ctrl + E (自动提取或拆分数据,如分离姓名和电话)。

  • 复制可见单元格 选中区域 → Alt + ; → 再按 Ctrl + C(跳过隐藏行复制)。

  • 快速跳转到指定单元格 按 F5 或 Ctrl + G ,输入目标单元格地址(如 X100)。

  • 批量插入批注 选中区域 → Shift + F2。

  • 掌握 ALT 快捷键

举例:ALT+H+M+U:取消合并单元格

三、建立数据源表和查询表的概念

日常做表格、做报表、做统计,第一件事就是把这两张表彻底分开 ,这是 Excel 专业用法的核心。

1. 什么是数据源表?

(1) 数据源表 = 原始基础数据表

  • 只存原始明细 。

  • 一行一条真实记录,结构规整:表头固定、列不乱插 。

  • 是所有报表、统计、透视表、函数引用的唯一源头 。

(2) 在遵循“三范式”的基础上,数据源表注意不要有以下几个动作:

  • 不要排版。

  • 不要用各种“合并单元格”,改用**“跨列居中”** (Ctrl+1设置单元格格式——对齐——水平对齐——跨列居中)。

  • 不要“合计、小计”。

  • 按年、月下载、录入的数据,不要分表存放 ,而要纵向存放在一张表中,并将原表头的一些共用信息如“日期"、”部门“等,建立新列存放。

  • 每张表只能有一行标题行,且在第一行。

举例:

  • 每日销售流水表

  • 员工信息明细表

  • 费用报销明细表

  • 库存进出明细表

2. 什么是查询表

查询表 = 结果报表 / 统计报表 ,查询表相当于”虚拟表“,不存放真实数据,只存放数据关系集合。

特点:

  • 不手动录原始数据 ,全部从数据源表引用、统计、计算。

  • 可以做汇总、筛选、条件统计、透视、图表、排版美化。

  • 专门给人看、给领导看、用来打印、做分析。

  • 数据绝不手动改 ,改只改数据源,查询表自动更新。

举例:

  • 月度销售汇总表

  • 部门费用统计表

  • 员工工资查询表

  • 库存余量统计表

作用 :相当于前台展示,只负责 “展示、分析、出结果”。

3.为什么一定要分开?(核心价值)

  • 避免重复录入 原始数据只录一次,所有查询报表都从它取数,不用反复抄数据。

  • 修改只改一处 数据源改一行,所有查询表、公式、透视表全部自动跟着变,不用每张表挨个改。

  • 不会改错原始数据 查询表只看结果、不碰原始明细,避免误删、误改基础数据。

  • 方便做函数、透视表、Power Query 只要数据源结构标准(符合”三范式“),VLOOKUP/XLOOKUP、SUMIFS、数据透视表、Power Query 都能稳定运行,不会因为乱改列、合并单元格报错。

  • 报表整洁、可复用 查询表可以随便排版、加颜色、合并单元格、做图表,不影响底层原始数据。

4.引用数据源表的函数

  • 1. 按编号查单个信息 → XLOOKUP

  • 2. 旧版 Excel 只能用 → VLOOKUP

  • 3. 按条件求和统计 → SUMIFS

  • 4. 批量筛选整片数据 → FILTER (365/2021 及以上)

  • 5. 不想写公式、长期用 → 数据透视表 / Power Query

四、必知必会函数

XLOOKUP、SUM/SUMIF/SUMIFS、AVERAGE、COUNT / COUNTA / COUNTIF、IF、AND、OR、LEFT / RIGHT / MID、MAX / MIN、FILTER、TRIM

五、进阶之路

上述内容——数据透视表——power query(数据清理)——power pivot(超级透视表)——SQL(结构化查询语言,取数不求人)——python(办公自动化)