Excel已知到第一行,第一列的值,然后着么快速对应到相交的值上?

在日常工作中,我们经常用EXCEL函数处理表册,函数的运用,大幅度提升了我们的工作效率。笔者集合工作实际,把最常用的EXCEL函数进行逐一详细讲解,课程中有大量案例,为便于朋友们更加深入了解各个函数的用法,将于每天上午7:00同步发布视频教程和图文教程(包含公式)。只要不懈努力和不断实践,通过30天的系统学习,你也能成为EXCEL函数高手,从此告别加班,让同事和朋友刮目相看。

今天,我将和大家一起分享按行查找函数HLOOKUP的用法,上节课分析了按列查找函数VLOOKUP的几个经典案例,希望朋友们多练习,举一反三融会贯通。

一、HLOOKUP函数基础知识

HLOOKUP函数定义:HLOOKUP函数是EXCEL表格中的横向查找函数(按行),它与LOOKUP函数和VLOOKUP函数属于一类函数。用HLOOKUP函数可以在表格或数值数组的首行查找指定的数值,并返回表格或数组中指定行的同一列的数值,HLOOKUP中的H代表“行”,与之对应的VLOOKUP是按列查找。

语法:HLOOKUP(查找值,查找区域,区域中包含要返回值的行号,返回近似匹配或精确匹配)

查找值:是指需要在数据表第一行中进行查找的数值,可以为数值、引用或文本字符串等。

查找区域:是指需要在其中查找数据的数据表,可以是对区域或区域名称的引用。

区域中包含要返回值的行号:为“查找区域”中查找数据的数据行序号。当值为1时,返回“查找区域”第一行的数值,当值为2时,返回“查找区域”第二行的数值,以此类推。如果值小于1,函数HLOOKUP返回错误值#VALUE!;如果值大于“查找区域”的总行数,函数HLOOKUP返回错误值#REF!。

返回近似匹配或精确匹配:和VLOOKUP函数一样,是逻辑值,指明函数HLOOKUP查找时是精确匹配,还是近似匹配。如果为FALSE或0,则返回精确匹配,如果找不到,则返回错误值#N/A。如果为TRUE或1,函数HLOOKUP将查找近似匹配值,也就是说,如果找不到精确匹配值,则返回小于“查找值”的最大数值或大于“查找值”的最小数值。

注意:如果HLOOKUP函数找不到“查找值”,且第4参数为TRUE,则使用最接近且小于“查找值”的最大值。如果函数HLOOKUP小于“查找区域”第一行中的最小数值,函数HLOOKUP返回错误值#N/A。如果第4参数为FALSE且“查找值”为文本,则可以在“查找值”中使用通配符问号(?)和星号(*)。

二、HLOOKUP函数案例实践

清楚了HLOOKUP函数的定义、语法及相关知识,下面,我们进行几个案例解析。

(一)查找学生姓名3的各科考试成绩

某学校在组织学生考试后,把全年级学生的考试成绩按列统计在一个表格里,需要单独发送学生的成绩通知单,涉及语文、数学、英语三门课,因为三门课的成绩是按列统计的,需要用到HLOOKUP函数进行查找。

HLOOKUP函数是按行查找,与按列查找行数VLOOKUP的功能和用法大致相同,只是出现了行和列的转置。本例中,共有5行多列,要查找数学、英语和总分的成绩,只需要修改第3参数即可,第3参数的“2”表示语文成绩在“查找区域”的第二行,要查找数学成绩,只需要把“2”改成“3”即可,表示数学成绩在“查找区域”第三行,英语成绩改成“4”,总分改成“5”。

某单位为了使管理更加规范,需要为职工制作工作证,该工作证包含职工的姓名、编号、性别、部门和职务5项内容,现在需要根据“职工信息表”制作所有职工的工作证。本例中,制作职工的工作证需要同时在“职工信息表”中查找出职工的姓名、编号、性别、部门和职务5项内容,这是一个根据查找内容返回同一行中不同列的数据问题,可以通过单元格的引用实现对不同数据的查找,通过ROW函数查找到不同的数据的返回结果在同一行。

在“工作证”表B2单元格输入公式:=IFERROR(HLOOKUP(A2,职工信息表!$A$2:$E$8,ROUNDUP(ROW/6,0)+1,FALSE),""),按回车键即可得到第一个姓名“姓名1”,往下拖动继续填充其他信息和下一个姓名的信息。见下图:

本例中,使用了ROUNDUP(ROW/6,0)控制HLOOKUP函数的返回结果,表示返回每6行的结果在“职工信息表”中始终处于第一行。本例中为了分隔工作证,每个人的工作证中间都空了一行,这就要求在空行中返回的结果必须也为空,所以使用IFERROR函数实现此功能。

1.ROUNDUP函数是指朝着远离0的方向将数字进行向上舍入。有两个参数,语法为:ROUNDUP(参数1,参数2),两个参数均为必需参数,“参数1”是指需要向上舍入的任意实数,“参数2”是指要将数字舍入到的位数。

ROUNDUP(ROW/6,0)中,ROW/6为“参数1”,表示获取单元格所在行除以6,然后用“参数2”0取整。

2.IFERROR函数是指处理公式中的错误,IFERROR返回公式计算结果为错误时指定的值,否则,它将返回公式的结果。语法为:IFERROR(检查参数,错误时要返回的值),如果两个参数为空单元格,则IFERROR会视为空字符串值("");如果“检查参数”是数组公式,则IFERROR返回“检查参数”中指定区域内单元格的结果数组。

(三)查找某销售员某月的销售量

某公司的年度业绩统计表记录了该公司所有销售员1~12月的销售量,现需要查找销售员“姓名2”在5月的销售量。本例中,查询的值有两个,即销售员的姓名和月份,分别处于同一个工作表中的一行和一列,属于行列混合的查找问题,可以考虑使用HLOOKUP函数在第二行查找月份,然后使用MATCH函数在A列中查询销售员“姓名2”在A列中的位置,将其作为HLOOKUP的第3参数即可得到所需结果。

对于行列混合查找的问题,一般使用一个函数在行或列上进行查找,然后使用另外函数在列或行上定位另一个要查找的数据。本例中,使用按行查找函数HLOOKUP与MATCH函数配合解决问题。除了使用HLOOKUP函数按行查找外,也可以使用按列查找函数VLOOKUP进行查找,公式可写成:=VLOOKUP(A12,A2:M8,MATCH(C12,A2:M2,0),FALSE),两种方法的结果完全相同。

知识拓展:MATCH函数是指返回指定数值在指定数组区域中的位置,是EXCEL主要的查找函数之一。上例中的MATCH(A12,A2:A8,0)是指A12单元格的销售员“姓名2”在指定区域A2:A8中的行序号,后续课程会详细讲解。

以上就是HLOOKUP函数的几个经典案例,想要学习好EXCEL函数,要学会多个函数的组合,后续课程中我们会讲到多函数结合的用法,能进行更为复杂的计算,对提升工作效率有很大帮助。

个人建议:在学习EXCEL函数时,首先要熟悉函数的功能和语法,尽量多写,通过反复书写和实践,对照文中的案例,举一反三,我相信,你的EXCEL技巧会得到快速提升,日积月累,必成大器!

感谢朋友们的支持,如果你有好的意见建议和问题,欢迎在评论区留言交流,期待你的精彩!

编按:战斗的钟声再次打响, EXCEL大擂台终于迎来了查询双雄VLOOKUP和LOOKUP的世纪大战!在接下来的八个回合斗战中,是查询巨星VLOOKUP成功捍卫荣誉守住擂台,还是野性十足的LOOKUP首次登顶擂主一炮走红?且让我们拭目以待!

——————————————

EXCEL函数江湖烽烟再起,函数大擂台迎来两位重量级选手。守擂者是号称全民偶像、人见人爱车见车载的巨星级函数VLOOKUP,挑战者则是名气不大实力强劲高手的LOOKUP函数!这对与生俱来的对手,究竟会在函数擂台上擦出怎样的火花?青梅煮酒论英雄,让我们拭目以待!

VLOOKUP是在表格或区域中按列查找内容的函数,它的基本语句是:

=VLOOKUP(查找值,查找区域,返回值的列号,精确/近似匹配 )

其中:参数1必须出现在参数2的首列,参数3必须在参数1和参数2的列数之间,参数4可以表示为1或0。举个例子,某位海迷想要根据姓名找出人物对应的绰号,于是,他写了如下公式:

VLOOKUP函数的参数1是单元格D2——尤斯塔斯·基德,它在参数2A1:B12的首列A1:A12之中,参数3的值为2,表示返回参数2A1:B12的第二列,即B列中的绰号。参数3不能大于参数2的最大列数2。参数4为0,表示精确匹配。于是整个函数公式的含义可以表达为,从A1:B12的首列中找出值等于D2的单元格,返回A1:B12的第二列中与之对应的内容。

LOOKUP函数用于查询一行或一列并查找另一行或列中的相同位置的值,它的基本语句是:

=LOOKUP(查找值,查找区域,[返回区域])

其中,参数2查找区域须按升序排列。参数3返回区域不是必填项目,当参数3被省略,则以参数2查找区域的最后一行或最后一列作为返回区域,我们称这种使用方式为数组形式。但是我们通常建议使用向量形式,即保留参数3,此时查找区域和返回区域均为一列或一行,且大小相同。同样的例子,我们看看LOOKUP是怎么做的?

什么情况?我用眼睛都能看出的查询结果LOOKUP竟然算错了,莫非LOOKUP函数失灵了?当然不是,你再返回上一段看一下,没错,标红部分,参数2查找区域须按升序排列

升序排列!升序排列!升序排列!重要的事情说三遍,是谁的小眼睛还没有看老师!

SO,如果LOOKUP函数像这样不听使唤,那你有可能掉进了LOOKUP的陷阱里,此时你应该检查参数2是否是按升序排列。如下图,当A2:A12升序排列后,得到了正确结果。

PS:与VLOOKUP的遍历查询法不同,LOOKUP的查询原理是二分法,LOOKUP陷阱正与二分法有关,感兴趣的小伙伴可以看看往期教程《LOOKUP函数用法全解(下)——LOOKUP函数的二分法原理》。

由此观之,在基本用法的较量中,LOOKUP的语句较复杂且需要对查找区域进行升序排列,不如VLOOKUP函数简洁实用。

第一回合,函数基本用法,VLOOKUP小胜!!!

有时候,我们需要查找的数据并不能直接通过LOOKUP和VLOOKUP的基本用法精确匹配。换句话说,查找值和查找区域存在某种肉眼可见的对应关系,但并非完全相等。比如,对《海贼王》 这部漫画不熟悉的小伙伴可能记不全主人公路飞的全名,此时,我们如何利用路飞这个简称在对照表中找到他的绰号呢?这种问题在工作中也非常常见,比如已知供应商简称找全称、已知名字找全名等等。类似这样的问题,我们姑且称之为“模糊包含查找”。

对付“模糊包含查找”问题,我们不能简单地使用VLOOKUP或LOOKUP函数的基本用法来解决,不然结果是前者“不知所措”,后者“张冠李戴”!!!

那么遇到这种问题,VLOOKUP和LOOKUP是不是就都束手无策了呢?当然不是,作为实力强劲的明星查询函数,怎能就此溃败!和基本用法一样,VLOOKUP和LOOKUP在解决模糊包含查找问题时也是“你有你的张良计,我有我的过墙梯。”

先来看看VLOOKUP函数的张良计——通配符,星号"*"和问号"?"

星号"*":通配任意个字符,通常单独使用,表示此处可以没有字符,也可以有任意个字符。

问号"?":通配单个字符,可以重复使用,表示此处必须有与问号相同个数的字符。

我们将通配符置于查找值的前面或后面,用英文双引号将其圈定表示常量字符,并用文本连接符"&"连接起来,形成“"*"&B2”或“"*"&B2&"?"”之类的查找值作为VLOOKUP的第一参数,其余参数与基本用法一致即可。

公式说明:查找值中使用了通配符,"*"&D3&"*"表示D3的前后均允许存在任意字符,即只要查找区域首列A2:A12中的单元格值包含D3(路飞),就返回对应的B列值。这就是VLOOKUP的模糊包含查找之道!

我们再来看看LOOKUP函数的过墙梯——FIND函数。

由于LOOKUP函数首个参数不能使用通配符,我们只能通过文本查找函数FIND来帮助LOOKUP识别查找区域中是否包含查找值。FIND函数的基本语句是=FIND(查找文本,包含查找文本的文本),它可以返回所查找的文本在包含其的文本中首字符出现的位置,例如FIND(孙,孙悟空)=1,FIND(悟空,孙悟空)=2。

我们使用FIND函数来构造一个全新的查找区域,再赋予LOOKUP的第一参数一个足够大的数字,即可完成LOOKUP的模糊查找。

公式说明:查找值100是一个足够大的数,它一定大于FIND函数的任意一个返回值,即它大于查找区域A2:A12的最大文本长度。FIND函数一一查找D9单元格文本“路飞”在A2:A12中的每个单元格文本中出现的位置。如果只有一个单元格包含文本“路飞”,则A2:A12单元格文本中仅有一个单元格返回数字,其余单元格均因不包含文本“路飞”而返回错误值#VALUE!。那么,由FIND函数构成的新查找区域仅由1个数字和多个#VALUE!组成。

由于LOOKUP的查找值100始终大于FIND的返回值,即查找值大于查找区域中的值。根据二分法原理,LOOKUP函数将返回最接近查找值且小于查找值的数所对应的单元格。在这个例子中,100作为查找值,查找区域中除了一个数字6,其他都是错误值,因此只能找到6。6所在的单元格是A9,而A9在返回区域B2:B12中对应的单元格是B9,所以返回B9的值“草帽”。

关键要点:LOOKUP的查找值一定要大于FIND的返回值!!!

由此观之,在模糊包含查找的较量中,VLOOKUP仅凭几个简单符号即可四两拨千斤, LOOKUP却需要劳师动众地搬来FIND救场,VLOOKUP在语句的简便性和易读性上都远超LOOKUP。

第二回合,模糊包含查找,VLOOKUP完胜!!!

在这两回较量中,VLOOKUP占据上风,赢得漂亮,有了不错的开头。但LOOKUP会甘愿就此落败吗?其实他们的较量才刚刚开始,究竟LOOKUP能否扳回劣势甚至反超,敬请期待它们的第三、第四回合较量!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

我要回帖

更多关于 excel表格无法增加一列 的文章

 

随机推荐