Excel的VLOOKUP函数实现数据批量提取

2024-06-24 0

问题背景:在工作或者生活中,经常需要合并两个表的数据。例如,两张表是同一产品在不同时间段的价格或销售数据,根据产品名称将两张表组合起来进行更深入的统计和分析。我们知道,我们可以使用vlookup函数进行查找和提取,利用vlookup函数对基于列表的数据进行查找和引用,从而实现多表集成。

但vlookup是通过指定第三个参数指定范围的列号来提取数据的,例如:

VLOOKUP(B3,(工作表2!B:D),3,0)

逻辑是:给定sheet1上B3单元格(B列)的内容,到sheet2上B列到D列的范围内查找相同内容,并引用B3内容所在行的第三列位于(选择范围的第三列)值。

由于指定提取特定列的数据,这意味着一次只能提取一列数据。如果需要整合多栏内容怎么办?

根据vlookup逻辑,可以通过两种方式实现:第一,为每个列操作编写一个公式,并将其第三个参数更改为给定内容的列号。在这种情况下,公式将被重写与要组合的列数一样多的次数;第二个是第三个参数格式化变量,以便公式可以支持在列的正确方向上填充。第三个参数,这样您可以编写一次公式来提取多列数据。

示例1:逐列编写公式

将Sheet2中的“5月销售额”和“1月至5月累计”列提取到Sheet1。

第一步:将sheet2的“5月销售量”提取到sheet1中,即从sheet1的H列中提取sheet2的指定范围B:E的第三列,即D列。公式为VLOOKUP(B3,(表2!B:E),30)

步骤2:同理,将sheet2的“一月到五月累计”提取到sheet1中,即从sheet1的I列中提取sheet2的给定范围B:E的第四列,即E列。公式为VLOOKUP(B3,(Sheet2!B:E),40)

示例2:变量公式

将Sheet2中的“5月销售额”和“1月至5月累计”列提取到Sheet1。根据案例1的分析,vlookup的第一个参数、第二个参数、第四个参数保持不变,直到第三个参数改变。实际中,第三个参数是列号加1。例如sheet1的H列提取sheet2上的B:E范围的第3列,sheet1的I列提取sheet2上的B:E范围的第4列sheet2vlookup参数从3开始递增。对于变量1,您只能得到3和4。

此时,我们可以使用COLUMN函数作为vlookup的第三个参数。COLUMN是一个函数,用于检索指定单元格所在的列数。公式为COLUMN(A1),结果返回1。如果COLUMN(B255),则返回2。

那么为什么要使用COLUMN来获取列号呢?为什么不使用ROW公式来获取结果3和4的可构建行号?

这是因为公式必须向右填充,而COLUMN可以用来向右递增。如果使用ROW来获取行号,则只能向下填充递增。

步骤1:将Sheet2的“5月销量”提取到Sheet1中。这意味着我们改进了例1的公式。由于这里我们不仅需要向下填充公式,而且还要为下一步向右填充做准备,所以我们必须为常量参数VLOOKUP($B3,(列表2!$B:$E),(列(C1)),0)

步骤2:同样的方法,将Sheet2的“一月到五月累计”提取到Sheet1中。由于第三个查找参数使用了变量,所以现在只需填写右侧的H3公式和COLUMN(C1)即可。3更改为COLUMN(D1),即4。

由于vlookup函数的第一个和第二个参数都使用对单元格或列的绝对引用,因此只有向下的行的填充会改变,而向右的列的填充不会改变,因此可以确保vlookup函数的Lookupvalue和Tablearray函数提取的数据是准确的,无需通过公式右侧的填充来更改它们。

本站文章均由用户上传或转载而来,该文章内容本站无法检测是否存在侵权,如果本文存在侵权,请联系邮箱:2287318951@qq.com告知,本站在7天内对其进行处理。

发布评论