ARTICLE · 1278987
不在验证清单上的那张Excel,正在替你做GMP决策:影子系统的穿透式审计
引子:一台电脑桌面上的"原料台账"
检查的最后一天,我在QC办公室的一台电脑上,看到一个桌面文件:
《原料效期预警台账_2025.xlsx》
打开看:一张表,列着几十种原辅料的名称、批号、到货日期、复验期、剩余天数,最后一列是公式算出来的"是否临近复验",还带了条件格式——超过阈值的会变红。
我问:“这个表是做什么用的?”
“提醒我们哪些原料快到复验期了,好提前安排。”
“这个表在系统清单里吗?”
“……不在,这是我们自己做的。”
“做过验证吗?”
“就是个Excel,不用验证吧。”
我又问了三个问题:
第一:“这个表里的复验期数据从哪来?” “从ERP里导出来,粘过来的。”
第二:“多久更新一次?” “想起来就导一次……大概一周吧。”
第三:“如果ERP里的复验期改了,这个表会自动更新吗?” “不会,要重新粘。”
“那么,如果ERP改了而你没重新导,这张表会告诉你们一个错的日期——而你们是基于这张表去安排复验的?”
沉默。
这就是影子系统:一个不在系统清单上、从未被验证、没有任何访问控制、没有审计追踪、不在备份范围内的工具,却在实际业务中承担着GMP判断。
它可能是Excel,可能是Access,可能是某个部门自己写的小程序,可能是微信群里的一张共享文档,可能是某人U盘里的一份数据。
它们共同的特点是:做着GMP的事,却不在GMP的管辖之下。

一、为什么影子系统一定会存在
先说一个判断:影子系统不是管理失败的结果,它是需求未被满足的必然产物。
只要有真实业务需求,而正式系统不能满足它,那么就一定会有人用非正式的方式满足它。你禁不掉需求,你只能禁掉Excel——然后它会变成别的形式。
影子系统产生的四个典型原因:
原因一:正式系统不好用。导出一份数据要八步,格式还不合适;想看一个趋势,系统只能一条条点开;想做一次批量比对,系统根本没有这个功能。
于是有人把数据导出来,在Excel里做完了。
原因二:正式系统缺功能。 ERP不管稳定性考察的到期提醒;LIMS不做跨批次趋势统计;MES没有产能排程。这些功能是真实需要的,而购买或开发它们需要预算和时间。
于是有人用Excel补上了。
原因三:流程跨系统,而系统不互联。一个决策需要三个系统的数据。三个系统的账号、界面、导出格式都不一样。于是有人建了一张"汇总表",把三边的数据粘到一起。
这张汇总表,从此就成了整个决策的唯一依据——而它没有任何校验。
原因四:历史遗留与人员习惯。“我一直这么做”“前任留下的”“这个表用了十年了”。
这一类最难处理,因为它已经内化为工作的一部分,没有人觉得它有问题。
关键认识:影子系统的存在,是对正式系统的一次"差评"。每一张影子表,都在指出正式系统的一个缺陷。审计员发现影子系统时,不应该只写"存在未受控的电子表格",还应该问:“它为什么必须存在?正式系统缺了什么?”
只禁止而不补功能,影子系统会在检查结束后立刻复活。
二、影子系统的风险,比想象中大
很多人觉得:“就是个Excel,能有多大事?”
风险有五层,逐层递进。
第一层:计算风险
Excel 的公式是手工写的,写错一个单元格引用、少算一个括号、拖拽时范围偏移、复制时相对引用变了——这些错误不会报错,只会给出一个错的答案。
更麻烦的是:
●公式没有版本控制,改了就改了;
●公式的更改没有记录;
●没有人复核过公式的逻辑;
●表格被传来传去,出现了多个版本,谁也不知道哪个是准的。
我见过最典型的一个案例:一张用于计算含量的表格,其中一列是"标准品纯度校正因子",某次维护时,某个人把这一列的公式向下填充时填错了范围,导致其中17行的因子是错的。这个错误持续了14个月,直到一次审计中被发现。
14个月里,基于这张表做出的所有计算,都是错的。而没有任何机制能发现它——因为每一步看起来都很正常。
第二层:数据风险
数据在从系统导出到Excel的过程中,发生了一系列不可控的转换:
●导出时的筛选:导出的条件是手工设的,可能漏了数据,也可能多了数据;
●复制粘贴:粘错了行、粘成了文本格式、粘丢了小数位、数字变成了科学计数法;
●格式转换:日期格式在不同地区设置下会反转(03/04 是3月4日还是4月3日?);
●字符编码:中文在导出导入中变成乱码;
●精度丢失:Excel 的浮点运算与系统的定点运算结果可能不同;
●时效性:导出之后,源系统的数据变了,而这张表不知道。
"导出—粘贴"这个动作,是数据完整性链条上最脆弱的一环。它没有任何技术保障,全靠人的仔细,而它往往是整个决策链上唯一的数据来源。
第三层:控制风险
影子系统没有任何GMP控制:
●没有访问控制(谁都能打开、都能改);
●没有审计追踪(改了什么、谁改的、什么时候改的,一概不知);
●没有版本控制(桌面上可能同时存在三个版本);
●没有备份(存在本地硬盘,硬盘坏了就没了;人员离职,文件就消失了);
●没有验证(没人确认过它算得对);
●没有归档(不在归档策略里,五年后读不读得出来全看运气);
●没有退役管理(没人负责在它不再需要时处置它)。
换句话说,影子系统是一块"GMP的飞地":在这里,所有的控制都不适用,但所有的决策都在发生。
第四层:责任风险
最危险的一层:影子系统里的判断,不会被任何人复核。
因为:
●它不在SOP里,所以没有人知道应该在哪个环节复核它;
●它不在审计追踪里,所以质量部门看不到它;
●它不在备份里,所以事后无法追溯;
●用它的那个人,往往是唯一懂它的人。
于是形成了一个"关键人物依赖":一张只有一个人看得懂的表,支撑着一个没有人复核的决策。
如果这个人离职、休假、或者只是记错了,这个决策就断掉了。
第五层:系统性风险
这一层是穿透式审计真正要挖的:
当影子系统成为决策依据,那么正式系统里的数据就变成了"二手的"。
举个例子:放行决策是基于一张Excel汇总表做出的,而这张表的数据是从LIMS里粘过来的。那么:
●LIMS里的原始数据,与这张表上的数据,是否一致?
●如果不一致,以哪个为准?
●如果以表为准,那么LIMS还算不算"原始数据"?
●如果粘的过程中丢了小数位,那么放行决策的有效性建立在什么之上?
影子系统的存在,会让"什么是原始数据"这个问题变得无法回答。
而"原始"是数据完整性的基础。一旦原始数据的定义模糊了,整个数据完整性体系就失去了锚点。
三、怎么找到影子系统:五个入口
影子系统不会自己出现在系统清单上。要找到它们,得从业务流里倒推。
入口一:跟着数据走一遍。选一个真实的GMP决策(比如一次放行、一次复验期判定、一次趋势分析),从头到尾问:“这个决策需要哪些数据?每一步数据是从哪里来的?经过了什么处理?”
在任何一个环节上,如果答案是"从系统导出到Excel里算的",就找到了。
入口二:问"你们有没有自己做的表"。这个问题要问对人说。问质量经理,他会说没有。要问具体干活的人,而且要问得具体:
●“你们平时算这个用什么?”
●“有没有什么表是你们自己维护的?”
●“系统里导出来的数据,你们会再加工吗?”
●“交接的时候,你会把哪些文件传给下一班?”
最后一句特别有效,因为交接清单里往往藏着真正被依赖的东西。
入口三:看文件服务器与共享盘。请IT列出:所有被访问频次最高的文件、所有包含关键词(如"台账"“统计”“汇总”“计算”“跟踪”“预警”“temp”“最新”“2025”)的文件、所有最近修改时间集中在月末的文件。
月末集中修改的表格,几乎一定是用于月度统计的影子系统。
入口四:看邮件附件。企业邮箱里,反复出现的附件就是影子系统。特别是那些被反复转发、文件名带着"最终版""v3"“改”"最新"的。
入口五:看系统导出的频次。从正式系统里导出数据的动作,通常是留痕的(或者至少可以被统计)。统计每个账号的导出次数,排名靠前的那些,导出的数据去了哪里?
这个入口最技术化,也最有效。因为导出是影子系统的唯一"上游证据"。
四、不是所有Excel都需要验证:正确划定边界
讲到这里必须澄清一个常见的过度反应:“那是不是所有Excel都要验证?”
不是。这既不可能,也无必要。
关键在于区分Excel被用来做什么。按用途分四类:
第一类:仅用于存储与查看(风险低)。比如把系统导出的数据存下来看看,不做任何加工,不影响任何决策。→ 管理要求:命名规范、存放位置受控、纳入备份即可,不需要验证。
第二类:用于计算,但计算结果被独立复核(风险中)。比如用Excel算一个收率,但结果会被第二人用另一种方式核对,且最终结果会被录入正式系统并经过审核。 → 管理要求:公式需要被确认(一次性的、有记录的公式核查)、模板需要被锁定、版本需要受控。
第三类:用于计算,且结果直接进入GMP决策,无人独立复核(风险高)。比如用Excel算含量、算效价、算复验期,结果直接写在记录上。 → 这一类必须被纳入验证或替换。没有中间地带。
第四类:用于流程控制与判断(风险高)。比如用Excel跟踪偏差到期情况、用Access管理培训矩阵、用共享文档管理变更状态。 → 这一类应当被正式系统取代。因为它承载的是流程,不是计算,而流程必须在有审计追踪、有权限控制的系统里运行。
划界的关键提问是两句:
“这张表算出来的东西,有没有人用另一种方式核对过?”“如果这张表算错了,会有人发现吗?”
两个答案都是"没有"的,就是必须被处理的高风险对象。
五、受控电子表格:一个务实的管理方案
对于确实需要保留的Excel工具(不是所有都能被系统取代),行业通行的做法是建立"受控电子表格"机制。
一套可用的管理机制包括:
1. 清单化。建立"受控电子表格台账",每一张在用的表都在册,标注:用途、责任人、使用部门、风险等级、管控要求、上次复核日期。
不入册的表,不允许用于GMP目的。这一条要写进SOP,并且要在培训中反复讲。
2. 模板化与锁定。每一张受控表格有一个唯一的、受控的模板文件:
●存放在受控目录,只读;
●公式区域锁定,只开放数据输入区域;
●使用者使用时另存为具体实例(带日期与批次号),模板本身不被修改;
●模板的任何修改走变更控制,并做公式复核。
3. 公式验证。模板建立时,做一次正式的公式验证:
●用已知答案的测试数据跑一遍,比对结果;
●覆盖边界值、异常值、空值;
●检查相对/绝对引用、填充范围、舍入规则;
●验证记录归档,作为该模板的"验证文件"。
这个验证不需要复杂,但必须被做一次,并且留下记录。这是"算得对不对"的唯一证据。
4. 版本与命名。文件名包含:用途、版本号、生效日期。旧版本明确作废并归档,不允许留在共享盘上造成混淆。
5. 定期复核。每年(或按风险定频次)复核一次:这张表还在用吗?公式还正确吗?用途有没有变化?有没有新的风险?
6. 存放与备份。受控表格存放在网络受控目录(不是个人电脑桌面),纳入备份,纳入归档,人员离职时交接。
这六条做完,Excel 从"影子"变成了"受控工具"。它仍然是Excel,但它不再是一块飞地。
顺带说一句:把这六条做下来,会发现一个有趣的现象——一部分表格会自然地消失。因为当使用者需要为一张表承担"登记、验证、定期复核"的成本时,他会重新评估:“这个真的需要用表吗?系统里是不是其实有这个功能?”
给影子系统加上成本,它就会自己减少。这和权限管理的道理是一样的。
六、穿透式提问:影子系统
A. 关于发现
1.请提供本企业"电子表格/本地工具"的受控清单。(如果答"没有清单",那么本文讨论的问题就已经存在了)
2.请IT提供:共享盘上访问频次最高的20个文件、最近3个月修改过的所有含计算功能的文件清单。
3.请统计各业务系统过去12个月的数据导出记录,按账号排序,列出导出频次最高的5个人。
4.请这5个人各自说明:导出的数据用来做什么?有没有在Excel里做进一步加工?
5.请任选一个完整的GMP决策流程(如放行、复验期判定、年度回顾),从头到尾走一遍,指出每一步数据来自哪里、经过什么处理。
B. 关于具体的表(针对发现的每一张)
6.这张表的用途是什么?它支撑的决策是什么?
7.表里的数据从哪里来?是手工录入还是从系统导出?导出条件是什么?多久更新一次?
8.表里有计算公式吗?公式是谁写的?有没有人复核过公式的正确性?请出示复核记录。
9.这张表算出来的结果,有没有人用另一种方式独立核对?
10.如果这张表算错了,有机制能发现吗?
11.这张表存放在哪里?谁有修改权限?有没有版本控制?桌面上有几个版本?
12.这张表的修改有没有记录?改了什么、谁改的、什么时候改的?
13.这张表纳入备份了吗?纳入归档了吗?保留期是多久?
14.如果维护这张表的人明天离职,谁能接手?有没有交接文档?
C. 关于根因与管理
15.这张表为什么必须存在?正式系统缺了什么功能?
16.有没有评估过"用正式系统实现这个功能"的可行性?评估结论是什么?
17.企业有没有关于"电子表格用于GMP目的"的管理规定?规定怎么划分管控等级?
18.有没有开展过影子系统的专项排查?上一次是什么时候?发现了多少?处理了多少?
19.受控电子表格的台账在哪里?上一次复核是什么时候?
20.培训中有没有讲过"不得使用未受控表格进行GMP计算"?使用者知道这条要求吗?
第9、10、14条是判断单张表风险的三把尺子。 第15条则决定了整改能否真正落地——不问"为什么有",就只会禁而不绝。
七、整改:三分类处置
发现影子系统之后,整改不应该一刀切。正确的做法是对每一张表做三分类处置:
第一类:消灭。判断标准:这个用途正式系统已经能实现,或者这个用途根本不是必需的。处置:停用,历史数据归档,使用者培训到正式系统。
第二类:受控。判断标准:确实需要,正式系统短期无法实现,且风险可控。处置:纳入受控电子表格管理,做公式验证,锁定模板,纳入清单与备份,定期复核。
第三类:系统化。判断标准:这是真实的、持续的、高风险的GMP需求。 处置:立项改造正式系统,或采购/开发专门工具,走完整的验证流程。
第三类是最容易被忽略、却最有价值的一类。因为它把一次"缺陷发现"变成了一次"体系改善"。
审计的意义,不只是把不合规的东西找出来。如果一份检查能把一个藏了十年的真实需求,从一个U盘里的Excel,搬进一个受控的系统里,那么这次检查的价值就超过了它开出的所有缺陷项。
八、结语
每一个企业都有两张系统清单。
一张是写在文件里的:ERP、LIMS、MES、DCS、QMS……经过验证,有台账,有责任人,有变更控制,有人维护。
另一张是没有人写下来的:桌面上的台账、共享盘里的统计表、邮件里的汇总、微信群里传的表格、某个人U盘里的计算工具。
第一张清单上写着企业"以为自己在用什么"。第二张清单上,是企业真正在用的东西。
而第二张清单上的东西,正在替企业做出真实的GMP判断:算一个含量、判一个效期、排一个计划、定一个趋势。
它们没有验证,没有审计追踪,没有备份,没有人复核。它们唯一的保障是"做这张表的人一直很仔细"。
穿透式审计的最后一块战场,就是把第二张清单翻出来,摆在第一张旁边,然后问一句:
“你告诉我,这两个系统,哪个在替你做决定?”















































































