避免Excel改写心理测评编号的导入方法

Excel可能把超过15位的数值型记录编号改写。通过两个末位不同的虚构编号,说明怎样核对原CSV、在导入时指定文本,以及发现损失后从原始来源重取。

看到测评导出表里的编号变成科学计数法,先暂停匹配和回传。它可能只是显示方式变化,也可能已经发生数字损失;把列拉宽或改成文本,不能保证找回原编号。

对机构来说,风险不只是一列“不好看”。两个原本不同的测评记录编号,如果导入后变得相同,查找公式可能把报告配到错误记录。因此,工号、项目内人员编号和测评记录编号这类标识,应作为文本读取,不参与数值计算。

先看原文件有没有丢字符

微软说明,Excel数值最多保留15位有效数字;超过这个范围的数字型编号可能被改写。自动类型转换也可能去掉前导零。[1]

例如,以下两条完全虚构的16位记录编号,只在最后一位不同:

1234567890123456

1234567890123457

若被当作数值处理,末位信息可能消失,两条记录都变成1234567890123450。此时单元格再改成“文本”,保留下来的也是已经改变的内容。

先在机构批准的本地文本查看工具中打开未经修改的CSV副本,检查原始字符。若CSV仍完整,重新按文本导入;若文件已经被覆盖保存,回到原测评系统或受控备份重新导出。不要凭相邻行顺序、姓名相似或“应该是几”补回末位。

编号导入前指定文本类型,避免两条不同编号变成同一条
编号导入前指定文本类型,避免两条不同编号变成同一条;虚构教学示例,非真实项目数据

从导入入口指定文本,而不是打开后再补救

以支持Power Query的桌面Excel为例:

1. 保留原始CSV,打开一个空工作簿,从“数据”进入“从文本/CSV”

2. 选择文件后进入“转换数据”,先检查预览和“应用的步骤”

3. 若已出现把编号列转成数字的自动“更改的类型”步骤,应删除或修改该步骤,回到字符尚未丢失的来源,再将编号列明确设为“文本”

4. 核对分隔符、编码、列名和编号,再加载到工作表;分数列仍按实际需要保留数值类型

不同Excel版本按钮名称可能略有差别。微软的官方方法同样要求在导入过程中指定列类型;部分新版还提供自动数据转换设置,但不能假定协作者使用了相同版本和设置。[1]

只把受损数字外观改成000000,可能让“127”显示为“000127”,却不能证明原编号本来就是六位。固定长度的补零,也须有权威编号规则和原始来源支持。

导入成功,再核对能否一对一连接

准备一小组不含真实个人资料的测试编号,至少包括前导零、16位以上编号、带字母的编号,以及只在末位不同的两个编号。导入后逐字符对照,确认数量、长度与内容均未改变。

真正匹配前,分别检查两张表中“连接键”是否符合预定唯一性。如果一侧每个编号应只有一行,却出现两行,先查原因,不能让查找公式默认返回第一行就算成功。复测数据本来可能一人多行,应按项目、轮次、问卷或记录编号等实际关系连接,不能强行做成一人一份报告。

同时保留匹配成功、未匹配和多重匹配的数量。未匹配记录留待核查,不用模糊姓名匹配悄悄补齐,也不把完整心理答案发给无需查看的人协助认人。

最后,CSV本身不保存Excel的列格式。即使这次工作簿处理正确,下一位同事双击CSV仍可能重新触发类型转换。交付时附上编号列为文本的字段说明和导入步骤,再用收件方实际流程试读一份合成样例,才算把风险控制到了交接处。

参考来源

[1] Microsoft Support:Keeping leading zeros and large numbers

Leave a Reply

Your email address will not be published. Required fields are marked *