原创

使用Excel的VLOOKUP函数合并不同Sheet页中的相同项

前言

最近朋友(非程序员)找我帮忙处理一份excel,需求是:将B表格中的某一列的值合并到A表格中指定的列(A表格包含B表格中的数据),同时保证A表格的数据顺序不可变。

数据大约有700多条,如果按照一般普通人的做法就是按个手动匹配、填充,这样算下来,差不多一晚上不用下班也搞不定了。

既然朋友找到咱程序员了,当然要帮忙解决。

主要涉及的就是一个函数:VLOOKUP

合并

源文件数据格式

A表格

B表格

新建临时文件

新建一个临时文件result.xlsx,同时创建两个Sheet,如下图

Sheet1中的商品编码对应A表格中的商品编码盘点数量对应A表格中的盘点数量(复制整列到临时文件)


Sheet2中的商品编码对应B表格中的商品编码总库存对应目标表格中的总库存(复制整列到临时文件)

使用VLOOKUP函数合并值

点击Sheet1中的B2单元格。输入公式:=IFERROR(VLOOKUP(A2,Sheet2!A:B,2,0),0)


点击确定后即可将Sheet2中20000109对应的总库存合并到Sheet1中,然后在Sheet1中鼠标定位到B2单元格右下角,鼠标显示“+”号后按住向下拖动到最后一列

复制临时文件中的结果到A表格

选中并复制Sheet1中的盘点数量列 

在A表格中右键盘点数量列的列头H,选择粘贴值默认是粘贴值和公式的,这儿切记选择只粘贴值!!!) 

数据列合并完成

知识点解释

IFERROR 函数(两个参数):

2007以上版本,可以使用IFERROR函数来容错。

输入=IFERROR(原公式,0) 2003以下版本,可以使用IF(ISERROR)函数来容错。 输入=IF(ISERROR(原公式),0,原公式) 当原公式错误时,显示为0

VLOOKUP 函数(四个参数):

第一个是要检索的数值,此处是根据商品编码检索,所以是A2;
第二个参数是检索的区域范围,因为在第二个Sheet页中检索,而第二个Sheet页名字是Sheet2,检索的是AB两列,所以第二个参数是“Sheet2!A:B
第三个参数是返回第几列(注意:是在查找区域范围中的第几列),B列返回的是盘点数量,盘点数量是第二列,所以公式中第三个参数是2. 第四个参数是是否启用模糊查询,1:模糊查询,0:精确查询。

可能碰到的问题

使用VLOOKUP函数时,可能会遇到下面两个问题:

1、#REF 一般是返回了错误的列,如果公式改为= VLOOKUP(A2,Sheet2!A:B,3,0)  ,那么查找区域是两列,结果要求返回第三列,就会报#REF的错误。

 2、#N/A 如果要检索的列(Sheet1中的商品编码)在查找的区域中(Sheet2)没有检索到,就会抱这个错误,如上面提到的,使用IFERROR函数强制转0。



正文到此结束