返回博客GDPR 与合规

Excel与GDPR:如何匿名化数百列个人信息

Excel是企业运营中个人信息密度最高的文件类型之一。了解为何标准文本分析在电子表格上会失效,以及列上下文感知分析如何破解这一难题。

March 6, 20268 分钟阅读
Excel GDPRspreadsheet anonymizationXLSX complianceHR datadata minimization

为何Excel是您风险最高的文件类型

Excel文件是大多数企业面临的最大GDPR风险之一。医疗记录单行数据的敏感程度可能更高,但电子表格中个人信息的积累速度极快——合规团队往往对此估计不足。

Excel文件难以管理的原因有三点。

数量庞大: 一个XLSX文件可包含50,000行和100列,即500万个单元格,任何人工审查都无法覆盖所有内容。

网格布局: 普通文本单向流动,而Excel将数据分布在行和列之间,个人数据可能隐藏在网格的任意位置。

内容混杂: 薪资区间、部门代码、职级与社会安全号码和电子邮件地址存储在同一文件中,若全部删除则文件失去价值。

保留时间长: 员工名单和客户记录在Excel中存放多年。GDPR第5(1)(e)条规定数据保留时间「不得超过必要期限」,而「可能有用」的文件往往留存远超这一时限。

为何标准文本扫描在电子表格上会失效

文本分析工具为文档处理而设计,在电子表格上会以几种常见方式出现故障。

社会安全号码被存为数字

Excel将无破折号的社会安全号码(如123456789)保存为普通数字,而非文本。专为识别###-##-####格式而构建的扫描工具会遗漏这些数字。有效的工具必须能够识别:「SSN」列中的9位数字就是社会安全号码。

日期被存为序列数字

Excel将日期存储为序列号,2024年2月6日被存储为45329。CSV导出文件在「出生日期」列中会显示「45329」。扫描工具必须先将该数字转换为真实日期,才能标记该值。

部分社会安全号码

某些系统仅显示社会安全号码的后四位(如***-**-1234),完整号码存储在受保护的列中。这个局部值仍需匿名化——即使它看起来不像完整的社会安全号码。

公式生成的个人信息

某些单元格从其他单元格构建个人信息,例如含有=CONCATENATE(B2," ",C2)的单元格会显示全名。如果清除了B列和C列,公式单元格中的全名仍然可见。仅读取存储值而不分析公式链接的工具会遗留个人信息。

多工作表问题

大型工作簿可能包含五个工作表:客户列表、订单、支持工单、账单和分析。客户姓名出现在所有五个工作表中。某一工作表中的「张三」必须与其他工作表中使用相同的标记——如「PERSON_0047」。使用两个不同标记会破坏记录关联。

列标题作为检测信号

电子表格个人信息检测中最有价值的改进,是列标题分析。

标题为「SSN」的列告诉工具:该列中的所有值都是社会安全号码,即使这些值不完整、格式特殊或以数字形式存储,这一判断依然成立。

列标题信号含义
SSN / Social Security / Tax ID将9位数字视为社会安全号码
Email / E-mail / Email Address标记即使不完整的电子邮件模式
Phone / Telephone / Mobile / Cell接受任何电话号码格式
DOB / Date of Birth / Birthday将序列数字转换为日期
First Name / Last Name / Full Name降低姓名检测阈值
Address / Street / City / ZIP合并相邻地址字段
Patient ID / MRN / Record Number应用医疗ID识别模式

列上下文不是对内容扫描的替代,而是补充。以「SSN」列中的100个值为例:内容扫描能捕获99个格式规范的值,而列上下文能捕获那一个格式异常的值。

保留结构,删除个人信息

大多数Excel GDPR合规案例的目标,不是销毁文件,而是在去除个人数据的同时保留使文件有价值的部分。

对于一份15,000行员工记录文件,合规专员需要:

删除:

  • 员工姓名 → PERSON_XXXX标记
  • 社会安全号码 → REDACTED(已删除)
  • 电子邮件地址 → REDACTED
  • 电话号码 → REDACTED
  • 家庭住址 → REDACTED

保留:

  • 部门代码
  • 职位(仅通用角色描述)
  • 薪资区间(宽泛类别)
  • 绩效评分(分组数据)
  • 入职日期(用于工龄统计)
  • 经理代码(如已假名化)

能够区分「识别个人身份的数据」和「描述职务的数据」的工具,可以输出一份既满足HR分析需求、又符合GDPR数据最小化规则的文件。

真实案例:并购中的人力资源数据传输

一家收购方获得目标公司的员工记录:一份包含40列、15,000行的XLSX文件。该文件需发送给外部人力资源公司用于福利规划。GDPR规定只能共享该任务所需的数据。

处理前: 40列,含完整姓名、社会安全号码、电子邮件、家庭住址、紧急联系人和银行信息。

经列上下文处理后:

  • 直接识别个人身份的12列(姓名、社会安全号码、电子邮件、电话、地址、银行数据):替换为一致的标记
  • 间接识别个人身份的3列(员工编号、经理代码、职务代码):替换为文件内一致的假名标记
  • 汇总数据的25列(薪资区间、部门、工龄、职级):保持不变

处理时间: 处理600,000个单元格耗时8分钟

输出: 保持40列的相同XLSX布局,其中15列已匿名化,25列不变

审计日志: 每项操作的单元格级记录,包含实体类型、置信度评分和使用的列信号

人力资源公司获得了完整的数据集,却不含任何姓名或身份标识。合规记录证明只共享了必要的数据。

这一挑战并非Excel独有,每种文件格式都有各自的缺陷。请参阅格式碎片化如何影响个人信息检测,了解跨文件类型的全面分析。

三条GDPR第5条规则,一个处理流程

结构化的电子表格匿名化处理可同时满足三条规则。

数据最小化(第5(1)(c)条): 只有接收方任务所需的列发送给接收方,识别身份的列已清除。

存储限制(第5(1)(e)条): 原始文件按法律规定保留,仅供共享的干净副本已创建,其保留期限更短或无需保留。

完整性与保密性(第5(1)(f)条): 任何识别性数据均不离开受控区域,仅共享干净副本。

处理过程中产生的审计日志也是您的第5(2)条证明文件,它显示了每条规则如何在每个文件上得到满足。

如果您的团队处理DSAR或大型数据导出,同样的逻辑在API层面同样适用。请参阅GDPR数据最小化如何在实时API中运作。

对于在紧迫时间限制下处理大量工作的团队,请参阅GDPR DSAR规模化批处理了解同样适用的工作流程模式。

参考资料

准备好保护您的数据了吗?

开始使用 273 种实体类型在 48 种语言中匿名化 PII。