excel学习库

excel表格_excel函数公式大全_execl从入门到精通

INDIRECT函数的常见和重要使用方法,跨工作表引用及多级联动下拉

返回由文本字符串所指定的引用A1R1C1定义名称数据引用区域

1.了解直接引用和间接引用的区别

英文状态下的双引号A1单元格的值不是单元格地址或定义名称,要加双引号,否则不用加。

图1

2.INDIRECT函数的第一参数可为定义名称

我们可以直接构建定义名称,然后作为INDIRECT函数的第一参数,此方法常见于制作多级联动下拉菜单。如图1-1所示,在G3单元格选择省份时,H3单元格下拉菜单出现该省份对应的市,该如何操作呢?图1-1

点击公式——名称管理器——新建,分别新建“安徽”“福建”“甘肃”“广东”这四个省份的定义名称,引用位置为各省份分别对应的下属市所在的单元格区域。以安徽为例,如图2所示,“名称”里面我们输入“安徽”,引用位置我们圈选A2:A17,点击确定即可。其他省份以此类推,最终结果为图3所示。

图2 图3点击G3单元格,点击数据——有效性,“允许”下拉选项中选择“序列”,来源选择省份所在的单元格区域A1:D1,点击确定,结果如图4所示。图4

点击H3单元格,点击数据——有效性,“允许”下拉选项中选择“序列”,来源输入:=INDIRECT($G$3),点击确定,结果如图5所示。

图5

3.跨工作表引用

INDIRECT函数常用于跨工作表数据引用,如图6所示,有1月、2月、3月的销量表,要求在汇总表中将每个员工的三个月的销量都统计起来。

图6

在“汇总”表的B2单元格输入公式:=INDIRECT(B$1&"!"&"B"&ROW()),向左向下填充完毕即可,结果如图7所示。ROW()的值由公式所在的行决定,公式在第二行即为2,公式在第三行即为3。

图7

B$1是一个动态单元格区域,这个区域的值分别对应三个月份的工作表名称,用英文状态下的感叹号“!”链接工作表和单元格区域,"B"&ROW()为工作表对应的单元格地址。

4.跨工作表求和

同样还是上个案例,这里我们要求取的结果更改一下,现在我们要求每个员工三个月的总销量。如图8所示,在B19单元格输入公式:=SUM(SUMIF(INDIRECT(ROW($1:$3)&"月"&"!A:A"),A19,INDIRECT(ROW($1:$3)&"月"&"!B:B"))),然后按下Ctrl+Shift+Enter三键。图8

此案例用INDIRECT函数构建SUMIF函数的条件区域和求和区域,ROW($1:$3)为一维的垂直数组{1;2;3},ROW($1:$3)&"月"即为{"1月";"2月";"3月"},再用“!”连接1月2月3月三个工作表的A列,即构成员工姓名所在的条件区域,连接1月2月3月三个工作表的B列,即构成销量所在的求和区域。SUMIF即能求和每名员工三个月分别对应的销量,最后再用SUM对三个月份的销量进行求和。

5.查询数据

提到数据查询,大家脑海中第一想到的肯定是VLOOKUP、XLOOKUP等专业数据查询函数,其实,灵活运用INDIRECT函数也能达到数据查询的目的。

如图9所示,根据姓名查询对应的3月销量,其公式为:=INDIRECT("d"&MATCH(F2,A1:A6,0),TRUE)。

图9

公式中的“d”为d列,因为3月销量在D列,MATCH(F2,A1:A6,0)来返回姓名所在的行数,有列数和行数,我们就能精确到具体对应的是哪一个单元格,"d"&MATCH(F2,A1:A6,0)返回的值即为"d6","d6"所在的值即为38,第二参数为TRUE表示运用了INDIRECT函数的A1用法。

当然,我们也可以运用R1C1用法来查询数据,所谓的R1C1用法,R表示行,C表示列,其后的数值为具体的行数列数。问题不变,同样求取3月销量,如图10所示,其公式为:=INDIRECT("R"&MATCH(F2,A1:A6,0)&"C"&MATCH(G1,A1:D1,0),FALSE)。

图10"R"&MATCH(F2,A1:A6,0)&"C"&MATCH(G1,A1:D1,0)即为"R6C4",意思是第六行第四列,第六行第四列对应的值即为38。大家注意,第二参数为FALSE时才表示R1C1用法。

点赞收藏和关注

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接