最近,在学习数据分析方向的东西,众所周知,Excel是数据分析所不可或缺的工具,由于过往并没有对Excel进行过深入研究,因此当首次接触到Excel中的函数时,不可避免地被其中一些函数的逻辑绕得有些晕,故在经过自己练习理清后,考虑到自己看不进生硬教程的尿性,决定将自己的理解用更加生动风趣的方式记录下来。

(本文中所用到的资料均来自b站UP主戴戴戴师兄)

函数说明

以下语法均来自Microsoft Excel 2022。

VLOOKUP

应用场景

当要通过某一内容去查找与之匹配的另一内容时,会使用到VLOOKUP函数,这么说可能有些难以理解,接下来,我们来举个例子。

当你手上有这样一张表时,你想要通过其门店ID去获取到相应的门店名称,此时就可以用上VLOOKUP函数了。

那么,究竟要怎样才能实现想要的结果呢?下面,我们先来掰扯掰扯VLOOKUP的语法结构。

语法结构

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

参数说明

  • lookup_value:要查找的内容。
  • table_array:要查找的位置。
  • col_index_num:包含要返回的值的范围内的列号。
  • [range_lookup]:返回近似或精确匹配,可选择的两个值为:1/TRUE(近似匹配),0/FALSE(精确匹配)。

当然,这些东西在Excel的帮助中就能找到了,要是就这么列在这里,或许要不了两天,就连我自己都会忘记到底应该填些什么东西吧?所以,为了帮助理解,我将结合上面的例子来对各参数进行解释。

函数使用

首先,我们的目的是根据已有数据将下面这张表格填满。

当然,你也可以不动脑子地逐条到原数据表里去查找,然后复制粘贴,那么此教程或许对你就派不上用场了,点击网页右上角的小×可以助力你快速离开此页面(bushi)。

但是,当所要查找的项越来越多时,这个笨法子显然就不够用了。

那么,问题来了,要怎样才能快速精确地获取到我们想要的信息呢?

相信用过Excel的人都知道,Excel有个相当方便的拖动功能,只需要将鼠标挪到表格右下角,待鼠标变为黑色十字时,即可将此表格的样式复刻到后续列表中。

此处之所以说是复刻,是因为Excel的拖动不但可以完成复杂的迭代功能,也可以去选择简单的复制功能,拖动功能的具体细节在此就不过多赘述,下面,我们回到问题本身上来。

可以看到,在原表中,门店ID和门店名称是一一对应的关系,如果可以到原表的门店ID中去找到我们所要查找的门店ID,然后再自动返回其相应的门店名称,不就能实现我们所要的效果了吗?

VLOOKUP函数,所做的就是这么一回事儿,由此也不难理解各个参数的具体指向了。

  • lookup_value:在这里我们要找的是含空白单元格的表格中的门店ID,即空白单元格左边的那个单元格里的内容。
  • table_array:这个参数则要填写你查找的范围,比如这个案例中,就是原表数据,你可以只框选我标红的这两列,当然也可以直接将整个原表框起来,但需要注意的是,你选择的查找范围必须包含门店ID和门店名称这两列,即,如果这两列中间还有其他列,那么你需要将他们全部包含在内,且table_array的选择将影响到第三个参数的填写。
  • col_index_num:根据你上一个参数所选择的范围,去数门店名称所处的列数,即,如果你选择了标红的这两列,那么门店名称是第二列,填2就可以了,如果你选择的是整个列表,那么门店名称是第五列(图上并没有截全,门店名称的的列号是E,在原表中并非第三列),这里就要填5了。
  • [range_lookup]:关于这个地方,无脑填0即可,因为Excel的近似匹配,它或许跟你所想象的近似匹配不太一样(如实在好奇,可以自行举例实验或者到文末连接中观看戴师兄的举例)。

那么,到此,我们就已经完成了四个参数的选取了,综合以上信息,第一个空白处要填写的内容就已经可以明确了:

=VLOOKUP(B96,'拌客源数据1-8月'!D:E,2,0)

INDEX 与 MATCH

应用场景

经过对VLOOKUP函数的讲解,相信看到这样一张表格后,大家已经知道该如何去填写门店ID列的空白了吧?

那么恭喜你,已经成功闯过了VLOOKUP这道关卡,但是,在真正的实际应用场景中,我们所需要的表格显然并不可能这么简单,当上述表格变成了下面这样,又该如何去填写呢?

或许有人会说,可以对每一列去做VLOOKUP(因为原表中的内容并没有规矩到可以让我们任意摆布,因此通过一列的填写去拖动实现整个表格并不现实,所以这里说是对每一列做VLOOKUP),你当然可以这么做,但是,有没有更加简单的方式,可以像我们之前所做的那样,只填写一格内容,然后通过拖动就填充满整个列表呢?

既然这一板块是在讲INDEX函数与MATCH函数,那么显而易见的,这两位正是应对这个场合的Mr.Right了!

至于为什么是两个函数结合起来,我打个比方,你应该就能明白了。

当你在寻找某样东西的时候,总共有几个步骤?

答:两步。

1、知道东西的位置在哪。

2、到那个位置上去取。

而INDEX函数与MATCH函数则在这个过程中分别扮演者取物与定位的作用。

但是,即便知道了他们各自的作用,要如何使用他们去达到我们的目的呢?那就要劳烦诸位继续听我絮絮叨叨了。

语法结构

-- INDEX
=INDEX(array, row_num, [column_num]) -- MATCH
= MATCH(lookup_value, lookup_array, [match_type])

参数说明

INDEX函数

  • array:单元格区域或数组常量。
  • row_num:选择数组中的某行,函数从该行返回数值。
  • [column_num]:选择数组中的某列,函数从该列返回数值。

MATCH函数

  • lookup_value:要在lookup_array中匹配的值。
  • lookup_array:要搜索的单元格区域(某一列或某一行)。
  • [match_lookup]:返回近似或精确匹配,可选择的两个值为:1/TRUE(近似匹配),0/FALSE(精确匹配)。

同样,这些东西也几乎是从Excel的帮助中扒拉过来的,只能说,解释了,但没完全解释,所以,接下来,我将同样使用一个案列来解释这两个函数的使用方法。

函数使用

到这里,相信你已经知道了INDEX函数与MATCH函数分别担任着取物和定位的作用了(如果不知道,请拉回到应用场景的部分再次阅读),那么对于已经掌握了这两个函数本质的你来说,接下来的说明,就不过是水到渠成,信手拈来了。

定位(MATCH)

首先,在Excel中单元格是通过行号和列号来定位的,这一点想必大家都知道。

那么恭喜你,你已经成功掌握MATCH函数了!

为什么这么说?

答案很简单,MATCH函数中我们所陌生的参数只有两个,一个是lookup_value,另一个是lookup_array,而lookup_value就是你正在寻找的那个东西,至于lookup_array,是你所记得的上次见过它的地方,第三个参数与VLOOKUP函数中的[range_lookup]类似,想必此刻已经是你的老朋友了吧,在此就不再过多论述了。

既然已经明确了要找什么,也知道了它的所处范围,那么只需要将这些都填入到MATCH函数中,它就会自动去为你定位了,因此,MATCH函数最终会给出一个具体的数值,而这个数值则是你所寻找的东西在那一行或那一列中顺位数下来的位置。

取物(INDEX)

当你掌握了东西的具体位置后,接下来要做的,就是到它所在的位置去取到它了,而这个过程,即便我不说,诸位都应该无比地清晰了吧。

因此,对于INDEX函数,你只需要告诉他要到哪个范围(array)里的哪个坐标(row_num, [column_num])下去找,它就能很快找到你所需要的东西了!是不是很简单?

案例说明

自此,我们已经可以确定两个函数中的参数具体要填些什么了,下面将以门店ID为例,对每个参数进行说明:

MATCH:

  • lookup_value:对于门店ID下的某一空白单元格,它所要寻找的是它左边单元格中的内容,因此,这里选择它左边那格即可。
  • lookup_array:由于MATCH返回的值是相对于你所设定的范围而定的,为了方便后续INDEX函数的取物,这里推荐直接选取整个原表即可,当然,你也可以相应地去尝试设置不同的范围,不过要记得,一定要包含你所寻找的东西在内呀,毕竟,你也不想提前遇到“我记得上次明明放在客厅了啊,怎么会在餐厅里呢”这样的年纪大了才会出现的记忆混乱吧?
  • [match_lookup]:这里的填写同[range_lookup],就不在赘述了。

INDEX:

  • array:为了方便以后及拖动功能的使用,这里推荐直接选取整个原表,当然,你也可以在包含你所需要的信息和你已有的物件范围内去进行查找,不过相应的,需要更改后面两个参数的值。
  • row_num:我们实际上想要取得的物件其实是门店ID,但我们现在手上只有平台门店名称的位置,那么要如何去定位到门店ID的行和列呢?聪明如你想必已经猜到了,由于MATCH一次只会返回一个值,而平台门店名称所在行,正对应着其相应的门店ID所在行,因此,这个参数需要通过MATCH函数去定位平台门店名称去获取。
  • [column_num]:至于门店ID所在列,不正好就是门店ID这个字段在整个表头中所在的列吗?同样,通过MATCH函数,我们可以精确地获取到这个参数所需要填写的值

到此,我们就已经完成了两个函数各自参数的选取了,综合以上信息,第一个空白处要填写的内容也就可以明确了:

=INDEX('拌客源数据1-8月'!$A:$X,MATCH($B112,'拌客源数据1-8月'!$I:$I,0),MATCH(D$111,'拌客源数据1-8月'!$1:$1,0))

补充

  • 由于MATCH函数一次只能寻找一个物体,因此,在选择第一个参数时,只能选中某一个单元格,即便是合并单元格的内容,它也是无法识别的,这一点需要特别注意。
  • 关于最终填写内容中的'$'符号说明:

考虑到后续将对单元格进行拖动,为了某些固定的范围不在拖动中被改变,可以用F4对其需要保持不变的行列进行锁定,这里就不具体阐述锁定的用法了,感兴趣的可以到参考教程中观看戴师兄的说明。

参考教程

【全网最良心的【数据分析自学课程】它来了!必备的Excel/SQL/Tableau/Python/数据黑话/产品|竞品|市场分析报告制作、数据分析启蒙免费课程教程】

一文搞懂VLOOKUP、INDEX、MATCH函数相关推荐

  1. 一文搞懂C语言回调函数

    转载自:https://segmentfault.com/a/1190000008293902?utm_source=tag-newest 博主:Rdou Typing 来源:segmentfault ...

  2. index match函数的使用方法_必学函数组合INDEX+MATCH,秒杀VLOOKUP函数

    VLOOKUP 职场里面用的太频繁的,是必须掌握使用的函数公式,在这个函数的使用过程中,有时候用起来也不是很方便,比如下面两个场景 ❶逆向查找匹配 左边是员工编号,姓名,工资表格数据,现在需要根据姓名 ...

  3. 一文搞懂property函数

    一文搞懂property函数 接下来我带大家了解一个函数的作用以及使用技巧,希望对大家都有帮助,话不多说,接下来就开始我的表演 特性 通过存取方法定义的属性通常称为特性(property) 让所有的属 ...

  4. ES6学习——一文搞懂ES6

    ES6学习--一文搞懂ES6 es6介绍 ES全称EcmaScript,是脚本语言的规范,而平时经常编写的EcmaScript的一种实现,所以ES新特性其实就是指JavaScript的新特性. 为什么 ...

  5. 一文搞懂 Raft 算法

    一文搞懂Raft算法 正文 raft是工程上使用较为广泛的强一致性.去中心化.高可用的分布式协议.在这里强调了是在工程上,因为在学术理论界,最耀眼的还是大名鼎鼎的Paxos.但Paxos是:少数真正理 ...

  6. 一文搞懂 MySQL 索引

    一文搞懂 MySQL 索引 1.MySQL 索引 简介 1.1.MySQL 索引 是什么?  索引是一个单独的.存储在 磁盘 上的 数据库结构 ,包含着对数据表里 所有记录的 引用指针. 1.2. M ...

  7. 一文搞懂RNN(循环神经网络)

    基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...

  8. 一文搞懂 Python 的 import 机制

    一.前言 希望能够让读者一文搞懂 Python 的 import 机制 1.什么是 import 机制? 通常来讲,在一段 Python 代码中去执行引用另一个模块中的代码,就需要使用 Python ...

  9. 一文搞懂如何使用Node.js进行TCP网络通信

    摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...

最新文章

  1. 【中级软考】什么是非对称加密算法?
  2. 多个页面同时跳转到一个页面,然后返回到上级页面
  3. matlab2c使用c++实现matlab函数系列教程-sort函数
  4. python模拟火车订票系统代码_100行Python代码实现自动抢火车票
  5. 1 三角函数的正交性
  6. linux系统查看内核版本是多少,在linux下查看内核版本、gcc版本、操作系统多少位等参数...
  7. fortran - 用函数进行kind定义
  8. SAP Archiving (归档)
  9. 有没有人被向量空间、内积空间、欧式空间、希尔伯特空间、巴拿赫空间概念折磨的?
  10. 用有限差分和牛顿法解非线性微分方程(边值问题)-python
  11. 基于android定制的会议盒子
  12. 普通话-命题说话1-10
  13. Jenkins 通过 Version Number Plug 优雅的生成项目版本号
  14. c语言和mysql实现超市的管理_C语言编写的超市管理系统
  15. OCR——视觉会议调研
  16. Asp.Net Ajax (1)---入门篇
  17. 如何搜索海康相机的数量以及得到设备的IP等信息
  18. python基础教程视频纸飞机_蜗牛笔记-文章-全年专题直播课四月课表正式上线!​...
  19. SOLID Principles
  20. css实现展示一行或两行,多余的显示为...

热门文章

  1. 联想旧电脑装Linux,改为网站服务器 - Part 1
  2. 迷你世界云服务器不见了,迷你世界找回老号方法 重新上架后的登录方法
  3. 使用 React Hooks实现一个返回顶部的按钮
  4. 精品:AG 1.3.8 for mac 百度网盘不限速下载软件
  5. testbench产生不同频同相位的时钟信号
  6. 汪峰的《光明》和食指的《相信未来》
  7. Linux内核中断号映射过程分析(三)
  8. 阿拉伯数字转换成中文或中文大写
  9. 在linux下vcd光盘提取,Linux下抓取Vcd视频文件的方法
  10. 修改JDK安装路径的作用