龙空技术网

第二十四天:EXCEL引用单元格地址函数INDIRECT和ADDRESS经典用法

办公神操作 1076

前言:

目前你们对“excel无法引用单元格”都比较关心,我们都想要剖析一些“excel无法引用单元格”的相关内容。那么小编同时在网络上汇集了一些关于“excel无法引用单元格””的相关知识,希望看官们能喜欢,小伙伴们快快来学习一下吧!

朋友们,大家好!

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

今天,我将和大家一起分享单元格地址引用函数INDIRECT和ADDRESS的基本知识和案例,用好INDIRECT和ADDRESS函数,能解决很多单元格引用的问题。

一、INDIRECT函数基础知识

(一)INDIRECT函数定义

INDIRECT函数是指返回由文本字符串指定的引用,如果需要更改公式中对单元格的引用,而不更改公式本身,则使用该函数,INDIRECT函数为间接引用。

语法:INDIRECT(引用单元格,引用类型)

引用单元格:是指对单元格的引用,此单元格可以包含如A1-样式的引用、R1C1-样式(R后面的数字表示行,C后面的数字表示列)的引用、定义为引用的名称或对文本字符串单元格的引用。

如果该参数不是合法单元格的引用,函数INDIRECT返回错误值#REF!或#NAME?。如果该参数是对另一个工作簿的引用(外部引用),工作簿必须被打开,如果源工作簿没有打开,函数INDIRECT返回错误值#REF!。

引用类型:为逻辑值,指明包含在“引用单元格”中的引用类型。如果值为TRUE或省略,“引用单元格”被解释为A1-样式的引用;如果值为FALSE,“引用单元格”被解释为R1C1-样式的引用。

注意事项:

要使用这个函数,主要记住以下两点就可以轻松掌握:

—函数的参数:单元格名称或符合单元格地址的格式,如A1、$A$1、“EXCEL”等的字符串。

—函数的返回值:参数所指定的单元格的值。

当在创建公式时,对某个特定单元格进行了引用,如果使用“剪切”命令或插入、删除行或列使该单元格发生了移动,则单元格引用将被更新。

如果需要使得无论单元格上方的行是否被删除或是单元格是否移动,都在公式上保持相同的单元格引用,请使用语法如=INDIRECT("A9")进行引用。

(二)INDIRECT函数案例实践

明白了INDIRECT函数的用法和基本知识,下面,我们进行几个案例分析。

1.拆分合并单元格并填充数据

有的朋友喜欢在表格中使用合并单元格,将一些具有相同属性的记录合并在一起,但是合并单元格的使用,常常会给公式的使用带来不便,此时就需要对合并单元格进行拆分,拆分后的单元格中均应该包含原合并单元格中的内容。

本例中需要将某学校各班级的合并单元格进行拆分,拆分后只有第一个单元格中含有数据,其余单元格均为空白,这时就需要使用公式对空白单元格进行填充。

选中所有需要拆分填充数据的单元格,输入公式:=IF(A3<>"",A3,INDIRECT("B"&ROW()-1)),按【Ctrl+Enter】组合键,即可根据合并单元格对拆分后的单元格进行数据填充。见下图:

我们知道,合并单元格的地址等于其左上角单元格的地址,合并单元格中的其他单元格值为空白或0。

本例中,首先使用IF(A3<>"",A3判断合并单元格左上角的A3单元格是否有数据,作为IF函数的第1个参数“真值”,然后用INDIRECT("B"&ROW()-1)判断B列中当前单元格的行号,作为IF函数的第2个参数“假值”,如果当前合并单元格没有数据,说明不是左上角的单元格,所有要用当前行ROW()减去1,得到上一个单元格的值。

合并单元格的拆分,使用引用函数OFFSET同样可以解决,公式可写成:=IF(A3<>"",A3,OFFSET(B2,0,))。

本例也可以用最简单的IF函数解决,公式可写成:=IF(A3<>"",A3,B2),三个公式结果完全相同。

2.多区域统计总分在200分及以上的学生人数

某班级的学生成绩表记录了全班学生的考试成绩,需要统计的数据位于多个不连续的单元格区域中,初步考虑用COUNTIF函数进行统计,但是COUNTIF函数的第1个参数只支持一个单元格区域,不支持常量数组或者联合区域,本例可以使用INDIRECT函数实现COUNTIF函数中使用多个区域作为参数,最后用SUM对符合条件的个数进行求和。

F14单元格输入公式:=SUM(COUNTIF(INDIRECT({"E3:E12","J3:J12","O3:O12"}),">=200")),按回车键即可计算出总分在200分及以上的学生人数。见下图:

在EXCEL中,有一些函数仅仅支持1个单元格区域作为参数,但在实际工作中,常常需要使用多个不连续的区域作为参数,这时就可以通过INDIRECT函数实现以多个单元格作为参数的目的。

二、ADDRESS函数基础知识

(一)ADDRESS函数定义

ADDRESS函数是指按照给定的行号和列标,建立文本类型的单元格地址。

语法:ADDRESS(行号,列号,引用类型,引用样式,外部工作表名称)

行号:必需参数,指定要在单元格引用中使用的行号,为数值。

列号:必需参数,指定要在单元格引用中使用的列号,为数值。

引用类型:可选参数,指定要返回的引用类型,为数值。

—1或省略:引用类型为绝对值,如$A$1、R1C2;

—2,引用类型为绝对行号,相对列标,如A$1、R1C[2];

—3,引用类型为相对行号,绝对列标,如$A1、R[1]C2;

—4,引用类型为相对值,如A1、R[1]C[2]。

引用样式:可选参数,是一个逻辑值,指定A1-或R1C1-引用样式。在A1-样式中,列和行将分别按字母和数字顺序添加标签。在R1C1-引用样式中,列和行均按数字顺序添加标签。如果参数A1-为TRUE或被省略,则ADDRESS函数返回A1-样式引用;如果为FALSE,则ADDRESS函数返回R1C1-样式引用。

外部工作表名称:可选参数,为文本值,指定要用作外部引用的工作表名称。例如:公式=ADDRESS(1,1,,,"工作表")返回“工作表!$A$1”。如果省略该参数,则不使用工作表名称,函数返回的地址引用当前工作表上的单元格。

当在创建公式时,对某个特定单元格进行了引用,如果使用“剪切”命令或插入、删除行或列使该单元格发生了移动,则单元格引用将被更新。

如果需要使得无论单元格上方的行是否被删除或是单元格是否移动,都在公式保持相同的单元格引用,请使用语法如=ADDRESS("A9")进行引用。

(二)ADDRESS函数案例实践:计算一班的总分最高分

某年级把各班考试成绩记录在了多个表,在计算某班级总分最高分时,首先需要确定引用的数据所在的工作表,然后对该工作表中的数据求最大值。本例采用ADDRESS函数来设置引用的单元格地址,然后使用INDIRECT函数将地址转换为单元格引用,最后使用MAX函数计算最大值。

在B3单元格输入公式:=MAX(INDIRECT(ADDRESS(3,5,1,,A3)&":"&ADDRESS(12,5,,1))),按回车键,即可计算一班的总分最高分,如果需要计算平均分,只需要把最外层的MAX函数修改为AVERAGE就可以了。见下图:

ADDRESS函数返回的结果为文本型数据,可以直接当作文本处理,本例将两个ADDRESS函数返回的单元格地址使用文本连接符&组成跨表引用的单元格地址。

本例也可以使用INDIRECT函数得到单元格区域的引用,公式可写成:=MAX(INDIRECT(A3&"!E3:E12")),两个公式结果完全相同。

在引用的单元格比较简单时,直接使用INDIRECT函数比较简单,当引用的单元格需要经过复杂的运算才能得到时,使用ADDRESS函数作为INDIRECT函数的参数则会使计算过程变得更为简单。

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

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

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

标签: #excel无法引用单元格