背景
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(A21,F:H,3,0),IFERROR(VLOOKUP(A2,G:H,2,0),0))
拿A文档的商品编码转换成数值格式后与已经转换成数值类型的B文档商品编码匹配 如果匹配不上就用原来的文本型取匹配
附带个转数值转文本的公式 =A2&”” 假定A2原为数值型 该公式即把A2的内容转成文本类型
