单位要采购一批文具,具体清单如下:
文具店老板提供了一份价格表:
如果想计算一下采购这些文具需要申请多少资金,该怎么办呢?有的朋友可能擅长FCV大法……Ctrl+F、Ctrl+C、Ctrl+V……如果像我发的这个,只有很少几种,FCV大法真是超级好用,如果像下面这种情况呢?
这个时候,就该让vlookup出场了!我们可以在Excel中按F1调出帮助文档,查找VLOOKUP,能找到以下内容:
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
VLOOKUP 函数语法具有下列参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。):
- lookup_value 必需。要在表格或区域的第一列中搜索的值。lookup_value 参数可以是值或引用。如果为 lookup_value 参数提供的值小于 table_array 参数第一列中的最小值,则 VLOOKUP 将返回错误值 #N/A。
- table_array 必需。包含数据的单元格区域。可以使用对区域(例如,A2:D8)或区域名称的引用。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。
- col_index_num 必需。table_array 参数中必须返回的匹配值的列号。col_index_num 参数为 1 时,返回 table_array 第一列中的值;col_index_num 为 2 时,返回 table_array 第二列中的值,依此类推。
如果 col_index_num 参数:
- 小于 1,则 VLOOKUP 返回错误值 #VALUE!。
- 大于 table_array 的列数,则 VLOOKUP 返回错误值 #REF!。
- range_lookup 可选。一个逻辑值,指定希望 VLOOKUP 查找精确匹配值还是近似匹配值:
- 如果 range_lookup 为 TRUE 或被省略,则返回精确匹配值或近似匹配值。如果找不到精确匹配值,则返回小于 lookup_value 的最大值。
要点 如果 range_lookup 为 TRUE 或被省略,则必须按升序排列 table_array 第一列中的值;否则,VLOOKUP 可能无法返回正确的值。
有关详细信息,请参阅对区域或表中的数据进行排序。
如果 range_lookup 为 FALSE,则不需要对 table_array 第一列中的值进行排序。
- 如果 range_lookup 参数为 FALSE,VLOOKUP 将只查找精确匹配值。如果 table_array 的第一列中有两个或更多值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。
不明白?简单来说,这个公式是这样的:
vlookup(查找关键字,从哪个区域查找,查询结果在第几列,精确查询还是模糊查询)
就像上图所示,我需要按照商品名称查找商品的单价:
选中B2单元格,商品名称在A2,这样第1个参数就是A2;
从哪个区域查找呢,当然是商品价格表了,这里可以直接使用列名【商品价格表!A:B】表示,也可以指定具体的区域,比如【商品价格表!$A$2:$B$10】;
查询结果在第几列呢,从关键字(商品名称)所在列开始数,价格在第2列,这样第3个参数就填2;
第4个参数通常使用“精确查询”,直接输入0就可以表示,1表示模糊查询。
这样一来,这个问题是不是就很简单了呢?
在“采购清单”的B2单元格,输入=VLOOKUP(A2,商品价格表!A:B,2,0),下拉
依照该方法,再将F列、J列填充起来,很快就能计算出采购物资所需的金额啦!
需要注意的是,在第2个参数这里,要注意相对引用和绝对引用,以免公式下拉、粘贴的时候查询区域位置发生变化。
还不明白什么是相对引用和绝对引用的小伙伴,请参考:
如果小伙伴们还有不明白的地方,欢迎私信交流!