背景

2份不同数据源导出的Excel表格,两者的数据有差异,现在目标是合并两份excel文档,求出差异数据,两份Excel的文档格式都为

A B
1 商品编码 库存数量
2 5566 10
3 CL212 11

常用方法就是用VLOOKUP 函数 通过商品编码匹配 把2份不同的库存数据放到1个Excel文档中

A B C D E F G
1 商品编码 A文档库存数量 B文档库存数量 A-B差异 商品编码 B文档库存数量
2 5566 10 #N/A #N/A CL212 10
3 CL212 11 10 1 5566 11

例如在C2这个单元格中输入=VLOOKUP(A2,F:G,2,0) 结果会报错没有结果,原因这商品编码这一列中既有全数字的编码 也有带字母的编码,如果把商品编码这一列设置为文本格式 只能匹配带字母那种商品编码,如果设置为数值,带字母的商品编码又会出错

解决方法

通过IFERROR 函数匹配多种情况,直到取到结果

A B C D E F G H
1 商品编码 A文档库存数量 B文档库存数量 A-B差异 商品编码 商品编码 B文档库存数量
2 5566 10 11 -1 =G2*1 CL212 10
3 CL212 11 10 1 =G3*1 5566 11

将B文档的数据拷贝过来之后新增一列商品编码 用公式=原商品编码1 转换为数值形式
在C2这个单元格输入=IFERROR(VLOOKUP(A2
1,F:H,3,0),IFERROR(VLOOKUP(A2,G:H,2,0),0))
拿A文档的商品编码转换成数值格式后与已经转换成数值类型的B文档商品编码匹配 如果匹配不上就用原来的文本型取匹配
附带个转数值转文本的公式 =A2&”” 假定A2原为数值型 该公式即把A2的内容转成文本类型