怪象!为什么工程师不爱VLOOKUP却偏爱这四个函数?
★
编按
★
公式中有单元格的引用才能使公式具有更强的可变性,如果引用的单元格可以随着某些条件的变化而变化,就会使公式的功能更加强大,这就需要使用引用类函数来实现。下面一起来学习下几种常用的引用类函数。
1.CHOOSE()函数—根据情况选择值或单元格区域
在某些公式中,由于条件不同,需要使用不同的值,或者引用不同的单元格区域,这时候就可以使用CHOOSE()函数来实现选择。
其语法格式为CHOOSE(index_num,value1,[value2],…)。
从语法结构中可以看出,该函数包含两个必选参数,各参数意义为:
index_num:指定要选择的参数的序号,必须为1-254之间的整数。
value1、value2…:返回值列表,可以是单元格引用或名称、公式等,CHOOSE()函数将根据其排序,选择第index_num个参数作为函数返回值。
应用案例
客户消费评级
某公司要根据客户的消费金额将客户划分为5个等级。要按小于1000、1000-3000、3000-10000、10000-50000和大于50000的区间,分别划分为铁牌、铜牌、银牌、金牌、钻石5个等级。
【分析】可以使用CHOOSE()函数根据一个索引号在参数列表中选取一个值,这个参数列表就可以定义这5个等级的文本。
然后使用MATCH()函数进行模糊匹配,得到代表这5个区间的序号。再用CHOOSE()函数返回对应的等级文本。
扫码入群,下载Excel练习文件
【具体步骤】
在D2单元格中输入公式“=CHOOSE(MATCH(C2,{0,1000,3000,10000,50000},1),"铁牌","铜牌","银牌","金牌","钻石")”,按“Enter”键完成公式输入,然后向下填充,判定等级。
本例公式,是由MATCH()函数和CHOOSE()函数嵌套组成。首先通过MATCH()函数将D列单元格中具体数值转换为每个区间代表的序号。然后将这个序号作为CHOOSE()函数的index_num参数,用于从后面的参数列表中选择输出符合条件的文本。
2.HYPERLINK()函数—利用超链接快速跳转到其他位置
超链接在网页中是非常常见的,它在Excel表格中的用途也非常广泛。尤其是在数据非常多的表格中,用超链接导航可以省去很多数据查找的时间。这就需要HYPERLINK函数来实现。
该函数的语法结构为:HYPERLINK(LINK_LOCATION,[FRIENDLY_NAME])。
该函数一共就两个参数:
LINK_LOCATION:代表链接的地址;FRIENDLY_NAME:代表显示的标题。
应用案例
链接到当前工作表的指定区域
要求点击A3单元格能够跳转到D3单元格。
在A3单元格输入“=HYPERLINK("#D3","D3单元格")”。
其中“D3”代表链接的地址,“D3单元格”代表显示的标题。第一个参数加“#”这是固定用法,朋友们记住就行。最后摁“Enter”键完成输入。单击A3单元格,就会跳转到D3单元格。
其实,HYPERLINK函数还有链接到文件夹、链接到文件、链接到当前工作薄中其他工作表的指定区域、链接到网页等功能,非常简单,朋友们可以自己练习。
3.INDIRECT()函数——文本表示的引用也能返回正确的值
在某些公式中需要引用的单元格并不确定,或者这些单元格较为特殊,无法直接引用其地址。
此时也可使用文本来“描述”单元格,并最终将以文本表示的单元格地址转换为公式可引用的单元格地址。这种情况可以使用INDIRECT()函数来完成。
其语法结构:INDIRECT(ref_text,[a1])。
ref_text:以文本形式表示的对单元格的引用。
a1:指定包含在单元格ref_text中引用样式的逻辑值。当参数取值TURE或省略时,默认采用A1引用样式,当参数取值为FALSE时,采用R1C1引用样式。
应用案例
数据汇总
某公司每月都会制作一张月度销售表,年终需要将这些表格中数据汇总到一张表中,并从12张表中引用数据。
观察表格的结构可以发现,每张工作表的名称都在汇总的表格中列举了出来。此时,我们可以使用INDIRECT()函数和ROW()函数完成数据引用。
【具体步骤】
在“汇总”工作表中的C4单元格输入公式“=INDIRECT(C$3&"!C"&ROW()-1,TRUE)”,摁“Enter”键完成输入。
向右拖动单元格右下角的自动填充柄至N4单元格,分别引用了12张工作表中C3单元格的值。
保持选中状态,向下填充公式至11行,引用所有数据。
【分析】
公式先获取C3单元格的值“1月”,这个1月和工作表的名称“1月”相同,即要引用的工作表名称。
然后通过连接符连接“!C”文本,引用工作表通常使用感叹号连接,并且引用的单元格需要加上双引号,表示引用C3单元格所在的工作表中C列内容。
接着通过“ROW()-1”取得行号,即目标工作表中当前行号上一行的内容,最后通过INDIRECT()函数将连接起来的文本转换为A1引用样式引用的单元格。
4.OFFSET()函数——根据指定偏移量选择单元格区域
如果要以某个单元格为基准,引用与之距离指定行列数以后的单元格或单元格区域,则可以利用OFFSET()函数来完成。
其语法格式:OFFSET(reference,rows,cols,[height],[width])。
各参数意义:
reference:作为偏移量参照系的引用。也称为基准单元格,必须为对单元格或相连单元格区域的引用。
rows:相对于基准单元格向上(Rows取负值)或向下(Rows取正值)偏移的行数。
cols:相对于基准单元格向左(cols取负值)或向右(cols取正值)偏移的列数。
height:要返回的引用区域的行数,必须是正整数。
width:要返回的引用区域的列数,必须是正整数。
OFFSET()函数并不会改变任何单元格或更改选定区域,它只是返回一个引用。函数参数中,除第一个参数外,其它4个参数都必须是整数。
OFFSET()函数是比较难理解的函数,下面就详细介绍这个函数。
①将A1单元格内容克隆到D1单元格,在D1单元格输入=OFFSET(A1,0,0),D1单元格显示“A”。
②将OFFSET(A1,0,0)第二个参数0改成1,即改成=OFFSET(A1,1,0),写入D1单元格中,D1单元格显示“C”。
③将OFFSET(A1,0,0)第二个参数0改成2,即改成=OFFSET(A1,2,0),写入D1单元格中,D1单元格显示“E”。
相信大家已经看明白了,OFFSET(A1,2,0)的第二个参数,是以A1为基准,向下移动几个单元格。而第一个参数就是基准单元格。另外,第三个参数写几,以基准单元格向右移动几个单元格。
④以A1为基准,在D1单元格中克隆B3的内容,应该怎么写?答案是在D1单元格输入“=OFFSET(A1,2,1)”。
但是,OFFSET一共有5个参数,我们刚才只用了前3个参数,下面来说说剩下两个的用法。
⑤要求使用OFFSET函数一次性克隆A1和B1到D1和E1。
选择D3和E3单元格,在公式栏写入“=OFFSET(A1,0,0,1,2)”,按下快捷键<Ctrl+Shift+Enter>变成数组形式,这就得到所需要的结果。
到这里,大家应该领悟到第五个参数的真谛了吧。第五个参数是2,就是返回以第一个参数A2单元格为基准,横向两个单元格的内容,输出单元格也要同时选择横向两个单元格。不然,输出只选一个单元格会放不下,它就会报错。
⑥如何利用OFFSET一次性克隆A1:B3区域到D1:E3区域?选中D1:E3区域,在公式栏输入“=OFFSET(A1,0,0,3,2)”, 按下快捷键<Ctrl+Shift+Enter>变成数组形式,这就得到所需要的结果。
OFFSET(以A1单元格为基准,0,0,返回横向2个单元格区域,返回纵向3个单元格区域)。第四个参数是克隆显示纵向的单元格数量。这就是OFFSET()函数中5个参数的原理。
OK,今天我们学习了很多引用函数,包括:CHOOSE()函数、HYPERLINK()函数、INDIRECT()函数、OFFSET()函数,这些函数相对来说较难理解,但在EXCEL工作中都会用到,小伙伴们,请一定要掌握。还有别的什么想法,欢迎留言。
今日互动
在评论区留下你的足迹叭~
你是什么行业,工作中应用最多的函数是什么?