跳到主要内容
哒哒星球DADA PLANET

实践笔记

Excel 清洗四行数据:空金额留下“待核实”

Excel 清洗四行数据:空金额留下“待核实”

这四行合成数据故意放了几种常见脏值:姓名里有全角空格,邮箱大小写不一,金额带货币符号,还有一格空白和一格“待定”。

先保留原 A:C 三列,把清洗结果写到 D:G。下面是本次生成并静态核对过的公式;预期值已用 Python 核过,Excel 365 中还没有实际计算。

D2 清洗姓名,再向下填到 D5:

=TRIM(SUBSTITUTE(A2," "," "))

E2 清洗邮箱,再填到 E5:

=LOWER(TRIM(B2))

F2 解析金额,再填到 F5。空白和解析失败都保留“待核实”:

=IF(TRIM(C2)="","待核实",IFERROR(NUMBERVALUE(SUBSTITUTE(SUBSTITUTE(TRIM(C2),"¥",""),"¥",""),".",","),"待核实"))

G2 标记重复邮箱,再填到 G5。同一邮箱出现多次,所有对应行都标记:

=IF(E2="","",IF(COUNTIF($E$2:$E$5,E2)>1,"重复",""))

用这四行作为核验输入,金额都先按文本填入:

第2行:姓名=' 李 雷 ',邮箱=' LI.LEI@EXAMPLE.COM ',金额=' ¥1,280.50 '
第3行:姓名='韩梅梅',邮箱=' HAN@EXAMPLE.COM ',金额='2,000'
第4行:姓名=' 李 雷 ',邮箱='li.lei@example.com',金额为空
第5行:姓名='王宁',邮箱='wang@example.com',金额='待定'

应得到下面这张表。真正放进工作簿后,逐行检查数值和类型,再扩到自己的数据:

原行号D:清洗姓名E:清洗邮箱F:金额结果F类型G
2李 雷li.lei@example.com1280.5数值重复
3韩梅梅han@example.com2000数值空白
4李 雷li.lei@example.com待核实文本重复
5王宁wang@example.com待核实文本空白

1280.5 和 2000 要保留为数值,不能为了显示两位小数转成文本。重复邮箱先标记,原行继续保留,是否删除留给后续核对。

这组公式限定于上面列出的字符与金额格式。若 Excel 使用分号分隔参数,需要替换参数间的逗号,引号内的千位分隔符“,”保留。

复用这份示例的完整提示词:

请给下面的小表写能直接在Excel 365使用的清洗方案,保留A到C原列,只向D到G输出。【示例输入】A姓名/B邮箱/C金额,值均按文本:第2行“ 李 雷 ”/“ LI.LEI@EXAMPLE.COM ”/“ ¥1,280.50 ”;第3行“韩梅梅”/“ HAN@EXAMPLE.COM ”/“2,000”;第4行“ 李 雷 ”/“li.lei@example.com”/空白;第5行“王宁”/“wang@example.com”/“待定”。D把全角空格换普通空格并TRIM,保留姓名中间一个空格;E清理首尾空格并小写;F将金额转数值,空白或非法值输出“待核实”;G按清洗后的邮箱标出所有重复项,不自动删行。F2请从这个公式开始验证:=IF(TRIM(C2)="","待核实",IFERROR(NUMBERVALUE(SUBSTITUTE(SUBSTITUTE(TRIM(C2),"¥",""),"¥",""),".",","),"待核实"))。给D2到G2完整公式,使用英文函数名和逗号分隔,说明向下填充到第5行。列出四行预期结果,金额必须保留数值类型;别用TEXT伪装数字,不给宏。最后说明本例只处理列出的空格与金额格式,区域设置使用分号的环境需替换参数分隔符。

本次输入(确切变量取值;以上要求保持不变):
Excel 365;A姓名/B邮箱/C金额,数据均按文本输入。第2行:A=' 李 雷 ',B=' LI.LEI@EXAMPLE.COM ',C=' ¥1,280.50 ';第3行:A='韩梅梅',B=' HAN@EXAMPLE.COM ',C='2,000';第4行:A=' 李 雷 ',B='li.lei@example.com',C为空;第5行:A='王宁',B='wang@example.com',C='待定'。