首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vlookup函数的灵活扩展用法

在Excel 中Vlookup函数是很常用到的用于匹配数据的函数。

今天我们要更进一步地学习它的进阶用法。

如下图所示:

我们在左侧黄色单元格分别输入查询编号,商场号,是否促销

来获得左下的商品编号,商品名称,价格

在本例中主要使用VLOOKUP函数扩展方法来实现

具体步骤如下:

在左下侧B7单元格输入=B2B8单元格输入=VLOOKUP(B7,INDIRECT($B$3),2,0)B9单元格输入=VLOOKUP(B7,INDIRECT($B$3),$C$4,0)C4单元格输入=IF(B4="是",3,4),这里C4单元格的取值由B4单元格的值来决定的当为4时C4就是3否则是4。这样就可以通过是、否促销来改价格了。在B3单元格设置数据有效性

6. 在B4单元格设置数据有效性

这里具体说下INDIRECT($B$3)

这里的INDIRECT($B$3)等效于三张表的A:D

当B3单元格是store_28时对应的是28商场的表的A:D的区域,store_28是通过菜单中的公式——定义名称来定义的。如下图所示:

当$B$3单元格变为store_16 时数据源就是16商场的数据了

INDIRECT($B$3)作用是随着B3的变化将相应的数据源引用提取出来。

我们来看下使不使用INDIRECT() 的差别:

如:

B8单元格输入=VLOOKUP(B7,INDIRECT($B$3),2,0)

B7=20944

B3=store_28

等效:

=VLOOKUP(20944,'28'!$A:$D,2,0) 。

B8单元格输入=VLOOKUP(B7,$B$3,2,0)

B7=20944

B3=store_28

等效:

=VLOOKUP(20944,“store_28”,2,0) ,这样就会出错“store_28”不是一个数据区域而是一个字符,通过INDIRECT(“store_28”)能将其解析出'28'!$A:$D 区域。

通过本例的学习我们能够掌握通过更加灵活的改变VLOOKUP()函数中的各个参数动态的获取我们所需要的结果。本例仅为大家提供一个思路,事实上这样的灵活拓展可以在更多的函数和更的工作实例中应用。希望本节讲解对大家在工作实际中能有所帮助和启发。

附—

INDIRECT函数语法:

INDIRECT(ref_text, [a1])

INDIRECT 函数语法具有以下参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。):

Ref_text 必需。对单元格的引用,此单元格包含 A1 样式的引用、R1C1 样式的引用、定义为引用的名称或对作为文本字符串的单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF! 。

如果 ref_text 是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数 INDIRECT 返回错误值 #REF! 。如果 ref_text 引用的单元格区域超出行限制 1,048,576 或列限制 16,384 (XFD),则 INDIRECT 返回 #REF! 错误。 注释 此行为不同于 Microsoft Office Excel 2007 之前的 Excel 版本,早期的版本会忽略超出的限制并返回一个值。

A1 可选。一个逻辑值,用于指定包含在单元格 ref_text 中的引用的类型。

如果 a1 为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。如果 a1 为 FALSE,则将 ref_text 解释为 R1C1 样式的引用。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201215A0GJSY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券