序言

使用Excel做数据分析工作已经快10年了,因为经常要处理几十甚是上百万行的数据,所以常常要用到查找和定位的公式。而平时用的最多的就是两个,也就是,Vlookup以及Sumifs,单独用,搭配着用都有。基本上一套复杂的项目成本核算方案,用这两个公式为主体就能搭建出来。这里呢就和大家分享一下这两个公式的使用技巧,注意事项等等,零零碎碎说的比较多,大家就耐心看吧。

正文

Vlookup以及Sumifs的基础功能相信大家都清楚,这里为了文章的完整性就简单的说一下。

一、VLOOKUP

vlookup,是针对数值的单条件(使用数组可以实现多条件,本文就不展开了)查询;可以根据提供的条件,在指定的区域中返回要查找的值。

有两个功能相近的公式,hlookup和lookup,区别就是:

vlookup是在垂直方向查找(v代表vertical);

hlookup是在水平方向查找(h代表horizontal);

xlookup不预设查找方向,比vlookup和hlookup功能更加强大。

这样说可能不太直观,我们来举个栗子,如果我们有如下的数据:

图1

如果我们的条件是姓名,根据姓名,查找成绩,那就是从左往右查(姓名列在左边,成绩列在右边),这样我们要用的就是vlookup,垂直方向查找。

如果我们的数据是这样的:

图2

条件还是姓名,那我们就要用hlookup,水平查找。

至于xlookup就强大了,xlookup可以替代vlookup和hlookup;也就是说vlookup和hlookup能做的,xlookup都能做,反过来则不行。

那为什么反而是vlookup使用的最多呢,道理也很简单,那就是“合适”。这就像找另一半,没有最好的,只有最合适的。

大家想一想,图1的格式比较多见还是图2的格式比较多见?做过数据处理或者接触过数据库的同学肯定知道,必然是图1。所以hlookup的使用频率自然就不高了,而xlookup理解起来更难一点,那么自然而然vlookup就用的多了。如果大家关注一些讲Excel使用技巧或者Excel培训机构的公众号,就可能看到这种标题:

“你还在用VLOOKUP么,有一个公式比它强百倍!!!”

点击去,就会发现基本上都是介绍xlookup的,公式写的花里胡哨,一长串。还是那句话没有最好的,只有最合适的。不过要是大家感兴趣后面可以做一期专门介绍xlookup的,毕竟微软自己都说xlookup是vlookup的改进版。

跑题了,我们言归正传,vlookup有四个参数,lookup_value,table_array,cal_index_num,以及range_lookup,含义分别是:

lookup_value:查找的条件

table_array:查找的范围

cal_index_num:要查找的列相对查找条件所在列的距离(列数)

range_lookup:模糊查找还是精确查找

我们用图1的数据来具体的写一下:

图3

公式很简单,就是在a1-b17这个范围内查找“张三”所在的列(a列)后面一列(参数2)的值,这个公式如果写成:

=VLOOKUP("张三",A2:D17,2,0)

结果也是一样的,虽然后面这个公式里面我们的查找范围扩大到了d列,但是因为第三个参数依旧是2,因此查找的还是第一列后面一列的值。如果我们把第三个参数从2改成3,那么图3里面的公式会报错,因为查找的范围只有两列,而后面一个公式则会返回"数学"。

当然像上面一样的公式在现实工作环境中是毫无意义的,那我们就把数据弄得复杂一点,先看数据:

图4

假如某个学生一个学年的综合得分的算法如下:

综合得分=(学科1得分*学科1权重+学科2*学科2权重)*0.5*MAX(奖项权重1,奖项权重2)

那我们该怎么算第一学年,每个学生的综合得分呢?

这里就要用到vlookup了,我们可以把学科权重lookup到D列后面。这里提醒各位,在做之前记得一定一定要备份一遍原文件,在备份文件里面做修改。

让我们来看公式:

这里涉及到的自动填充方面的知识这边就展开讲了。把权重lookup过来,然后我们就可以写公式计算了。但是到了这一步我们不去计算,来讲一下vlookup的进阶应用。先看一下修改后的数据:

现在的数据中,不同的学年学科的权重不同,这时候如果我们要用vlookup,而且要只写一遍公式的话就要想点办法了。只用vlookup肯定不行,因为现在的查询条件有两个,一个是学科,还有一个是学年。那这里我们就要用到另一个定位函数match,这个函数的作用简单来说就是返回要查找的值在一个数组中的位置。我们想要达到的目的就是在查到一年级的时候vlookup的第三个参数是2,查到二年级的时候第三个参数变为3。所以macth正合适,公式也比较简单,如下:

=VLOOKUP(C2,$G$9:$I$11,MATCH(D2,$G$9:$I$9,0),0)

这样呢我们就实现了写一遍公式就完成把两个学年不同的权重添加到e列。

vlookup和match是绝配,大家可以自己多多操练一下。

二、SUMIFS

sumifs的基础功能呢我们也简单介绍一下。

这个函数的功能是条件求和,比如上面的数据里面,如果我要求张三第一学年语文数学的成绩合计,我们就可以用

sumifs最起码要有三个参数,也就是:

sum_range:要求和的目标所在的列或范围

criteria_range1:第一个条件所在的列或范围

criteria1:第一个条件

然后还可以接着写第二个条件,第三个条件。。。。。

和sumifs相关的函数还有,sumif,averageifs,maxif等等,很多

那为啥一个条件求和的公式会被用来作为查找定位?

首先excel大部分情况下处理的都是数字,其次条件多了,结果就唯一了。

还是比如上面的用vlookup查找张三成绩的语句:

=VLOOKUP("张三",A2:D17,2,0)

这个语句会在找到第一个符合条件的结果后就中止并返回结果,也就是说我们最终得到的是张三在一年级是的数学成绩,如果用sumifs来写的话:

=SUMIFS($B$2:$B$19,$A$2:$A$19,"张三")

这样得到的结果和vlookup是不一样的,得到的是张三所有的成绩的和,如果要达到和上面的vlookup一样的效果我们就需要添加条件:

=SUMIFS($B$2:$B$19,$A$2:$A$19,"张三",$C$2:$C$19,"数学",$D$2:$D$19,"一年级")

这样得到的就是和vlookup一样的结果了。

大家别看好像sumifs写的更复杂,实际应用中要的就是sumifs的效果;vlookup碰到第一个符合的就中止了,结果无法预期,这是个很大的问题。

和sumifs搭配的比较多的是vlookup,index等,比如上面的数据,我们要求第一学年各个同学的综合得分,这就需要vlookup和sumifs搭配使用,我们来看结果:

大家可以看到,加了两个辅助列,这两个辅助列都是使用了vlookup,最终的计算用的是sumifs,搭配了maxifs;当然这个例子里面实际maxifs没有啥作用,完全可以用vlookup替代,但我们要严谨。

三、注意点

用vlookup和sumifs的时候大家特别要注意自动填充的锁定,实际工作中公式不止要能下拉,还需要能向右拉。举个例子,我们来修改一下数据,如果没有奖项权重,没有学科权重,只是求每个学院每个学年的平均得分(也就是说两个学科权重一样),那我们就可以这样做:

=SUMIFS($B$2:$B$19,$A$2:$A$19,$L3,$D$2:$D$19,M$2)/2

这个公式里面有3种锁定方式,全锁,下锁和右锁,大家可以自己理解消化一下。

然后还有两个至关重要的注意点,

一个是vlookup找不到会报错,sumifs找不到会返回0,所以如果你看到sumifs写好之后是0的话要谨慎一点;需要确认一下到底是原始数据就是0还是你写的条件不对。

还有一个就是用sumifs一定要注意原始数据有没有重复值,或者你给的条件够不够。

这里给大家说一个我实际经历过的惨痛教训。楼主当时给一个单位做成本核算,每个月甲方爸爸都会把当月的成本数据给到楼主,楼主呢会简单的整理好后导入到核算模板中,出了结果反馈给甲方,甲方呢用这个成本来做预算和绩效。话说有一个月,公司给楼主塞了个刚培训完的小白,楼主就让他/她做成本的前期清洗汇总。没成想甲方爸爸那边对接人也换成了个小白,给到公司的成本数据中有部分数据是两个月的。然后楼主手下的这位小白同学看都没看,还是用sumifs,而且条件中没限定日期,因为以前给的都是一个月的,不需要。再然后呢,我也是傻乎乎的没有检查小白的作业直接把结果算出来给到了甲方爸爸。而甲方爸爸也没有仔细看,就用这个错误的成本数据给各个部门核定了当月的考核得分,绩效发放总额等等。然后,就没有然后了,一地鸡毛。幸亏楼主平时舔甲方爸爸比较给力,甲方爸爸的总会出面平息的一场风波。

所以,再次提醒大家,看数据很重要,不要一上来就咔咔的写公式,先看数据,找规则

好了这次就讲这么多吧,其实还有很多没有讲,后面有时间再说吧,希望本文能给大家带来点什么吧

详解Excel中最常用的查找公式Vlookup及Sumifs相关推荐

  1. linux打开文件命令_详解Linux中3个文件查找相关命令

    来自:民工哥技术之路 1.which命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which  查看可执行文件的位置. whereis 查看文件的位置. ...

  2. linux服务器做游戏服务器配置,详解Linux中搭建常用服务器

    1.搭建telnet服务器 2.搭建DHCP服务器 3.搭建DNS服务器 4.搭建sendmail服务器 5.搭建FTP服务器 6.搭建web服务器 安装 apache tomcat 7.搭建samb ...

  3. Excel中最常用的求和公式集合

    转自:http://www.pinlue.com/article/2020/12/2012/1011431576520.html

  4. c#中regex的命名空间_C#_详解C#正则表达式Regex常用匹配,使用Regex类需要引用命名空间 - phpStudy...

    详解C#正则表达式Regex常用匹配 使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 一.利用Regex类实现验证 示例1:注释的代码所起 ...

  5. python xlrd安装_详解python中xlrd包的安装与处理Excel表格

    一.安装xlrd 地址 下载后,使用 pip install .whl安装即好. 查看帮助: >>> import xlrd >>> help(xlrd) Help ...

  6. 计算机中常用软件列表,详解win10中常用软件列表不要在任务栏显示的方法

    我们在win10系统的使用中,在win10的界面中我们经常使用软件在电脑任务栏中会在电脑中显示,那很多的小伙伴在电脑中是不想要显示的遇到这个问题我们怎么取消这个常用的软件在任务栏一直显示的情况呢,今天 ...

  7. pythonnamedtuple定义类型_详解Python中namedtuple的使用

    namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型.相比于list,tuple中的元素不可修改,在映射中可以当键使用. namedtuple: na ...

  8. 详解Java中的正则表达式

    详解Java中的正则表达式,并列出常用的正则表达式语法和一些常用的场景. 判断一个字符串是否是由数字组成: 当不使用正则表达式的时候的实现代码: public class RegexDemo01 {p ...

  9. 218.94.78.76:20001/index.php,详解spring中使用Elasticsearch的实例教程

    本篇文章主要介绍了详解spring中使用Elasticsearch的代码实现,具有一定的参考价值,有兴趣的可以了解一下 在使用Elasticsearch之前,先给大家聊一点干货. 1. ES和solr ...

  10. python namedtuple用法_详解Python中namedtuple的使用

    namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型.相比于list,tuple中的元素不可修改,在映射中可以当键使用. namedtuple: na ...

最新文章

  1. 搜索进程内存地址_Linux编程 6 (查看进程 ps 及输出风格)
  2. 图灵奖得主Judea Pearl 智源大会演讲:从“大数据革命”到“因果革命”
  3. 第二讲,我们来谈谈:“什么是二进制”
  4. [开源]KJFramework.Message 智能二进制消息框架 -- 性能提升
  5. Python学习笔记:常用内建模块5
  6. Spring基于 XML 的声明式事务控制(配置方式)
  7. python条形堆积图_python – 使用DataFrame.plot显示堆积条形图中...
  8. 数据库过滤操作中 != 或者 指定操作数并不能改匹配到NULL值
  9. springboot 找不到mapper问题
  10. Python爬虫——爬取Python岗位的那些事
  11. Go 每日一库之 zap
  12. Garden Planner中使用3D视图的技巧
  13. a deep leaning
  14. 电脑闪光代码_清华姚班毕业生开发新特效编程语言,99行代码实现冰雪奇缘,网友:大神厉害了!创世的快乐...
  15. win10 Python3安装pysqlcipher3的问题总结
  16. 计算机算法实验报告二——递归
  17. CRT 字体颜色设置不生效
  18. 泛泰android phone下载,这里泛泰手机全系列驱动和刷机临时RECVOVERY下载,自测全部好用...
  19. 电阻触摸屏 linux 校准软件,android 电阻单点触摸屏校准
  20. python oled_树莓派使用 OLED 屏显示图片及文字

热门文章

  1. 【渝粤题库】广东开放大学 综合英语1 形成性考核
  2. 360企业版的IT管理价值
  3. greedy算法策略高效求解分数背包问题
  4. PHP所支持的时区列表
  5. springboot教学工作量管理毕业设计-附源码221541
  6. 编译原理复习(5)语法分析--自下而上分析
  7. codeforces每日5题(均1500)-第十七天
  8. 如何用最简单的方法创建一个超好用的微信公众号页面模板?
  9. Tinker 合并及加载补丁过程源码分析 (三)
  10. simulink官方电机控制示例汇总