数据处理与分析:助你成为数据达人的指南!

同学们好!欢迎来到香港中学文凭考试(HKDSE)信息及通讯科技科最实用、最有力量的课题之一:数据处理与分析。有没有想过企业如何分析趋势,或者各机构如何可靠地管理成千上万的学生记录?答案都在于有效处理与组织数据。

在这一章,我们将会探讨必修部分考核的两大核心工具:电子表格关系数据库。你可以将电子表格视为灵活的计算与建立模型网格,而数据库则是专为维持数据完整性而设计的结构化多数据表系统。让我们一起开始学习吧!




第一部分:精通电子表格

电子表格让你可以将数值与文本数据存储、整理、格式化及计算在由行和列组成的网格里面。

1.1 电子表格的基本构成要素

单元格 (Cell):网格里面的一个方格,以单元格地址识别(例如:A1、B2)。
行与列 (Row & Column):行是一行横向的单元格,以数字编号(1、2、3...);列是一行纵向的单元格,以字母标签(A、B、C...)。
工作表与工作簿 (Worksheet & Workbook):工作表是单一的网格;工作簿则是包含一张或多张工作表的电子表格文件。
公式 (Formula):输入到单元格中的计算或表达式。所有公式都必须以等号 (\(=\)) 开头。

重点概念:单元格引用

1. 相对引用 (Relative Reference)(例如:A1)
当复制到不同的行或列时,会根据相对位置自动改变。
例子:如果单元格 C1 包含 `=A1+B1`,当向下复制到 C2 时,它会自动调整为 `=A2+B2`。

2. 绝对引用 (Absolute Reference)(例如:\$A\$1)
同时锁定列和行,因此复制时地址不会改变。\$ 符号用于锁定引用。
例子:如果单元格 H1 存储了 5% 的强积金(MPF)供款率,计算 A2 总薪金扣除额的公式为 `=A2 * \$H\$1`。当向下复制时,A2 会更新为 A3,但 `\$H\$1` 会保持固定不变。

3. 混合引用 (Mixed Reference)(例如:\$A1 或 A\$1)
复制时只锁定列(`\$A1`)或只锁定行(`A\$1`)。

1.2 公式、函数与错误值

运算符

算术运算符:`+`、`-`、`*`、`/`、`^`(次方)
关系(比较)运算符:`=`、`>`、`<`、`>=`、`<=`、`<>`(不等于)。这些运算符的运算结果为 TRUE(真)或 FALSE(假)。
逻辑运算符:`AND()`、`OR()`、`NOT()`

核心电子表格函数

基本聚合函数:`SUM(范围)`、`AVERAGE(范围)`、`COUNT(范围)`(仅计算数值)、`COUNTA(范围)`(计算非空单元格)、`MAX(范围)`、`MIN(范围)`。
条件计算:
• `IF(条件判断, 为真时返回值, 为假时返回值)`:评估条件。例如:`=IF(A2>=50, "Pass", "Fail")`
• `COUNTIF(范围, 条件)`:计算符合条件的单元格数目。例如:`=COUNTIF(B2:B50, ">=50")`
• `SUMIF(范围, 条件, [求和范围])`:将符合条件的单元格求和。例如:`=SUMIF(A2:A30, "Class 5A", C2:C30)`
查找函数:
• `VLOOKUP(查找值, 数据表范围, 列号, [查找模式])`:在数据表的第一列中向下垂直搜索,并从指定的列中检索数值。将 `查找模式` 设置为 `FALSE`(或 `0`)以进行精确匹配的搜索。
• `HLOOKUP(查找值, 数据表范围, 行号, [查找模式])`:在数据表的第一行中横向水平搜索。
数学与排名函数:
• `INT(数值)`:将数值向下取整至最接近的整数。
• `ROUND(数值, 小数位数)`:将数值四舍五入至指定的小数位数。
• `MOD(被除数, 除数)`:返回除法运算后的余数。
• `RANK(数值, 引用范围, [次序])`:返回数值在列表中的排名(次序为 `0` 代表降序,`1` 代表升序)。

常见电子表格错误代码

#DIV/0!:尝试除以零或空单元格。
#VALUE!:函数或公式中使用了错误的数据类型(例如:在需要数值的地方输入了文本)。
#REF!:单元格引用无效(通常是因为所引用的单元格已被删除)。
#NAME?:电子表格无法识别公式中的文本(通常是函数名称拼写错误)。
#N/A:数值无法取得(常见于 `VLOOKUP` 找不到匹配项时)。

1.3 处理与分析数据

排序:使用单一或多个关键字以升序或降序排列记录(例如:主要关键字按班级,次要关键字按学生姓名)。
筛选:仅显示符合特定条件的行,同时隐藏其余部分。
假设分析与单变量求解:测试输入参数的变更如何影响计算结果,或寻找达成目标结果所需的输入值。
数据透视表与数据透视图:交互式汇总工具,可跨行、列、数值(例如:SUM、COUNT)及页面筛选器来汇总大型数据集。




第二部分:关系数据库

关系数据库将数据组织成结构化、相互关联的二维数据表,以尽量减少数据冗余并维持数据完整性。

2.1 数据库结构与概念

数据表 (Table / Entity):由行和列组织而成的一组相关数据。
记录 (Record / Tuple / Row):单一数据项,包含一个实体实例的所有属性。
字段 (Field / Attribute / Column):具有特定数据类型(例如:文本、数字、日期/时间、布尔值)的特定数据类别。
主键 (Primary Key, PK):唯一标识数据表中每条记录的一个字段(或字段组合)。它不能包含 null(空值)。
复合键 (Composite Key):由两个或多个字段组合而成的主键。
外键 (Foreign Key, FK):某数据表中的字段,引用另一数据表的主键,从而在它们之间建立关联。

数据表关联

一对一 (1:1):数据表 A 中的每条记录最多只关联数据表 B 中的一条记录。
一对多 (1:N):数据表 A 中的单一记录可以关联数据表 B 中的多条记录(例如:一个班级有多名学生)。
多对多 (N:M):数据表 A 中的多条记录可以关联数据表 B 中的多条记录(例如:学生与社团;在实现中会通过中介的关联数据表来解决)。

数据校验检查

校验规则可防止存储不正确的数据:

存在检查 (Presence Check):确保必填字段没有留空。
范围检查 (Range Check):确保数值或日期落在允许的范围之内(例如:分数介于 \(0\) 至 \(100\) 之间)。
类型检查 (Type Check):确保输入的数值符合字段的数据类型(例如:年龄字段只可输入数值)。
格式检查 (Format Check):确保数据符合预定义的模式(例如:香港身份证号码格式或电话号码模式)。

2.2 SQL 查询 (Structured Query Language)

SQL 用于从数据库数据表中检索、筛选、聚合及排序数据。

核心 SQL 语法与子句

`SELECT 字段1, 字段2, 聚合函数(字段3)`
`FROM 数据表名称`
`WHERE 条件`
`GROUP BY 字段1`
`HAVING 聚合条件`
`ORDER BY 字段1 ASC|DESC;`

主要 SQL 子句与运算符

SELECT 与 FROM:指定要显示的字段以及来源数据表。
WHERE:在分组前筛选记录。支持如 `=`、`<>`、`>`、`<`、`BETWEEN 数值1 AND 数值2`、`IN (数值1, 数值2)` 以及 `LIKE` 模式匹配(`%` 匹配任意字符序列;`_` 匹配单一字符)等运算符。
聚合函数:`COUNT()`、`SUM()`、`AVG()`、`MAX()`、`MIN()`。
GROUP BY:将具有相同数值的行分组,以便进行聚合计算。
HAVING:在聚合后筛选已分组的记录(与聚合函数一同使用)。
ORDER BY:以 `ASC`(升序)或 `DESC`(降序)次序为输出排序。

SQL 查询示例

`SELECT Class, COUNT(StudentID) AS TotalStudents, AVG(ExamScore) AS AverageScore`
`FROM Students`
`WHERE Status = 'Active'`
`GROUP BY Class`
`HAVING AVG(ExamScore) >= 60`
`ORDER BY Class ASC;`

2.3 窗体与报表

窗体 (Forms):为用户提供直观的图形界面,以便每次输入、查看和修改一条记录,同时强制执行校验规则。
报表 (Reports):为打印输出或屏幕展示组织并格式化查询/数据表的数据,包括分组页眉、汇总总计和页码。



本章摘要

电子表格中,掌握相对/绝对引用、错误疑难解答,以及重点函数(`SUMIF`、`COUNTIF`、`VLOOKUP`、`ROUND`、`RANK`)。

数据库中,理解关联结构(数据表、记录、字段、主键/外键、校验规则),并能使用 `SELECT`、`WHERE`、`GROUP BY`、`HAVING` 和 `ORDER BY` 编写精确的 SQL 查询。