VLOOKUP和MATCH嵌套以高效引用多列数据 - janicemvidal

janicemvidal 2021-12-29 原文


VLOOKUP和MATCH嵌套以高效引用多列数据


VLOOKUP函数在日常工作中十分常见,以至于你要是没用过VLOOKUP函数,你都不好意思说你懂EXCEL。

 

一般情况下,我们需要在源数据中查找某个指定列的数据,就会用到VLOOKUP函数(如果是指定行的数据,则用HLOOKUP函数)。这个时候“指定列”一般习惯用常数(如1,2,3,4,5)。

 

那么,如下图,当需要在绿色单元格引用源数据表中的多列函数时,公式/函数该如何写?

 

乍一看,这个不难啊,三个字段“性别”,“兴趣”“电话”分别用VLOOKUP函数写个公式就好了。嗯,用三个VLOOKUP函数固然可以。但是,如果有5个字段,20个字段呢?这个,是不是有点烦躁?

VLOOKUP函数与MATCH函数嵌套

今天我们要用VLOOKUP函数与MATCH函数嵌套使用获取多列数据,以提高效率。

 

1.    VLOOKUP函数

语法:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

第三参数 col_index_num 可以是常量(指定第几列),也可以是变量(通过函数运算返回一个数字)。如果能在第三参数写进一个函数,是不是可以根据不同字段返回不同列数呢?

 

2.   MATCH函数

含义:返回指定数值在指定数组区域中的位置

语法:MATCH(lookup_value, lookup_array, match_type)

从MATCH函数含义可以看出,MATCH函数返回的是“位置”(数字),恰好可以满足我们的要求。

 

3.   VLOOKUP函数与MATCH函数嵌套使用

现在我们在I2单元格输入以下公式:

=VLOOKUP($H2,$A$1:$F$9,MATCH(I$1,$A$1:$F$1,0),0)

然后复制粘贴到所有的绿色单元格,或者向右,向下拖拽。可以看到结果完全正确。

在这里,MATCH函数将查找“性别”,“兴趣”,“电话”在A1到F1中的位置,再将返回值(数字)赋与VLOOKUP第三参数。那么,无论有多少个需要查找的字段,这个MATCH函数都相应返回对应的位置数字。也就是说,我们只需要写这一个公式就够了。

 

4.   成败关键—混合引用

$A$1  绝对引用。复制或者拖拽,引用单元格固定不变。

A1    相对引用。复制或者拖拽,引用的单元格根据行/列位置变化而变化。

$A1或者A$1 混合引用。复制或者拖拽,$符号后面的行/列保持不变。

 

在上面的例子中,我们需要在固定在H列中找到查找值,所以VLOOKUP函数中一定要在H2的H前加上$符号,得到$H2

同时,我们需要固定在第一行中找到查找的字段,所以MATCH函数中一定要在I1的1前加上$符号,得到I$1

如此,才能确保我们在复制/拖拽过程中单元格被正确引用。如果希望进一步加深理解绝对/相对/混合引用,可以尝试做一个“九九乘法表”。如下图:

5.   延伸思考

COLUMN函数,ROW函数返回的分别是单元格所在第几列,第几行。在这个例子中能不能用VLOOKUP函数和COLUMN函数嵌套?效率如何?在什么情况下时候嵌套更好用呢?

这几个问题留给大家思考,有兴趣的话欢迎私信我交流讨论。

 

飞机从北京飞往纽约,一定不止一条航线,可以往北极方向飞,也可以往南极方向飞,还可以跨太平洋飞。但是最后航空公司一般会选择往北极方向飞。因为这条航线效率高,经济效益最好。

 

同理,在使用EXCEL的过程中,我们也需要不断思考,如何让我们的工作效率变得更高?

Copyright reserved @ 黄波艺带你玩转Excel。欢迎转载,但请注明出处。

 

发表于
2018-03-20 11:18 
janicemvidal 
阅读(17975
评论(0
编辑 
收藏 
举报

 

版权声明:本文为janicemvidal原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/janicemvidal/p/8608142.html

VLOOKUP和MATCH嵌套以高效引用多列数据 - janicemvidal的更多相关文章

  1. 函数计算自动化运维实战1 — 定时任务

    函数计算 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码 […]...

  2. 八一的专属上网导航服务 – Hoganbin

    网页中提供常用的数学工具(论坛、杂志、博客、考研专栏以及部分国内中文核心期刊)以及编程之家、新闻、视频、游戏、 […]...

  3. mysql 查看mysql版本的四种方法 – 铭记此刻

    mysql 查看mysql版本的四种方法    1 命令行中使用status可以查看。     mysql&g […]...

  4. 怎么获取红米6 Pro的root权限 – 吓了一跳哦

    怎么获取红米6 Pro的root权限 红米6 Pro能有啥方法获得ROOT超级权限?做开发的人知道,andro […]...

  5. js总结–加载外部js文件(十五) – 源无极

    js总结–加载外部js文件(十五)   今天在网上找到了一个可以动态加载js文件的js加载器,具体 […]...

  6. css之BackGround属性介绍 – asdsd

    css之BackGround属性介绍  1CSS之Background属性介绍2006–08 […]...

  7. Thread.Join()的详解 – 二郎神

    Thread.Join()的详解 什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序 […]...

  8. 关键词工具 – linFen

    关键词工具  Google Adwords关键词工具  查询指定关键词的扩展匹配,搜索量,趋势和受欢迎度. h […]...

随机推荐

  1. 如何保证消息队列的高可用?

    如何保证消息队列的高可用? 面试题 如何保证消息队列的高可用? 面试官心理分析 如果有人问到你 MQ 的知识, […]...

  2. 【转】 Android的设置界面及Preference使用

    一.基础知识     我们在使用Android手机时,可能会经常用到其中的设置界面,如下所示:   图1 An […]...

  3. Android 实现页面跳转并传递参数教程

    首先我们来看一下实现的功能:     第二,我们看一下实现这个功能,总共会接触到哪些文件和代码。 1、实现本功 […]...

  4. GN3 Telnet-会话清理

    前篇总结了telnet访问需要做哪些设定:https://www.cnblogs.com/zzh-zjh/p/ […]...

  5. win7下提权代码

    inline BOOL SetPrivilege() { HANDLE hProcess, hToken; T […]...

  6. 一款全新的平面UI套件,专门用于桌面应用程序

    At-ui:一款全新的平面UI套件,专门用于桌面应用程序,由Vue.js 2.0制作而成。 [Github s […]...

  7. 一次失败的创业经历

    离创业结束已经有一段时间,在刚刚结束的时候,就想复盘下这段经历,但怕当时的自己可能不够客观,就想着调整一段时间 […]...

  8. Linux console 重定向

    Linux从启动到启动完成的所有输出均复制到Com口上,一共需要修改3个文件。在此之前还要确认/sbin/ag […]...

展开目录

目录导航