工作中不常使用 Excel,导致每次用到时要现查函数,用完之后又忘记,实在是浪费时间。今天上午用 Excel 处理了一个小需求,花点时间记下来,以免以后忘记。
需求:
两个工作表,一个是项目部所有员工的手机号清单(表 A),另一个是电话公司发过来的我方统一付费的手机号清单(表 B)。因为项目部人员流动较多,有些员工已经离开项目了,项目部还在为其手机付费。办公室要对照这两个清单,把仅在表 B 里面出现而未在表 A 里出现的手机号的服务取消。
处理步骤:
(1)数据清洗。把两个表中的手机号整理成相同格式。
(2)数据对比。把表 B 中的每个号码都在表 A 中查找。如果有,返回使用者姓名,如果没有,返回 N/A 。
(3)数据显示。把所有显示 N/A 的格子显示成红色。
工具:
Excel for Mac 15.37
数据清洗:
表 A 中的手机号格式是(012)xxxxxxxx,表 B 中的手机号格式是 012-xxx xxxxx。要统一整理为 012xxxxxxxx。
针对表 A,要把“(”和“)”去掉,所以是
TRIM(SUBSTITUTE(SUBSTITUTE(单元格参考值,"(",""),"(","")),安全起见,在外面套了个 TRIM 去掉前后空格。
针对表 B,要把“-”和“ ”去掉。所以是
TRIM(SUBSTITUTE(SUBSTITUTE(单元格参考值,"-","")," ",""))
数据对比
先把要清洗后要对比的两列号码及号码使用者放在同一张工作表中。对 A 列中的每一行,在 B 列中查找,如果有,则返回 C 列中对应行的值(使用者姓名)。使用 VLOOKUP。
VLOOKUP(A 列单元格参考值, B 列 C 列, 2, 0)
第 3 个参数“2”的意思是返回 C 列中对应行的值(使用者姓名)。
最后这个 0 的意思是精确查找。
数据显示
数据对比后,没有找到使用者的格都返回#N/A,所以使用 Excel 的条件格式,把错误值的格子都显示成红色。
Done.