Excel2010.14-Indirect函数&数组

标签:
excel公式函数 |
分类: 学习心得 |
Ø
-
在命名范围内使用INDIRECT函数
INDIRECT函数的功能是返回文本字符串所指定的引用。通过这个函数可以实现对单元格地址的间接引用,例如在单元格A1中的内容是文本‘C6’,C6单元格的内容数字999,则公式=INDIRECT(A1)的返回值就是999。
同样,INDIRECT函数也能实现对范围地址的引用,下图显示的工作表包含了多个范围引用的名称,每列的名称是第一行的五列的内容,每行的是A列的内容前加上一个下划线“_”(因为名称不能以数字开始,另外,A列和1行没有范围引用名称),例如“_3月”的引用地址是B4:F4,在B16单元格输入的是 =SUM(INDIRECT(A16)) ,结果已经在下图中显示出来,就是B4:F4的求和。
http://s13/middle/53e35d2fh9076f056568c&690
你还可以用INDIRECT函数来引用工作表层级的名称。例如,假设有一些工作表,名称是Region1,region2……,每个工作表都有个工作表层级的名称TotalSum,在每个工作表的A1单元格中输入当前的表的名称,则公式
=INDIRECT(A1&”!TotalSum”)
从适合的工作表中取值。(这段未完全理解,仅仅是从字面翻译,做个标记,回头在研究。)
-
使用INDIRECT函数创建固定地址的名称范围
创建一个总是指向某一特定单元格或区域的名称是有可能的,即使你在工作表中插入行和列也不变。例如我们计划让B2单元格的名称始终是 CELL2_2 ,如果按照以前的正常方式创建该名称,如果在B列前插入一列,名称CELL2_2就指向了C2格;如果在2行之上插入一个新行,则名称CELL2_2就指向了B3格。要使CELL2_2始终指向B2单元格,则需要在该名称的引用位置中输入 =INDIRECT(“$B$2”) ,这样名称 CELL2_2 就始终引用B2单元格,无论你怎样插入新的行或列。因为在INDIRECT函数的参数中使用了 双引号(” ”) ,参数就不会改变。
-
在命名公式中使用数组
数组就是项的集合。你可以将数组形象化成为一个单行水平的集合,也可以形象化成为一个单列垂直的集合,还可以是多行多列的集合。
数组规定使用 花括号“ { }” ,逗号“,”或分号“;”来分隔数组中的项,逗号是分隔水平的项,分号是分隔垂直的项。
现在我们建立一个名称为 MonthNames 的名称,引用位置的命名公式就是数组: ={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}
这就是一个定义了12个项的水平数组,如下图:
http://s5/middle/53e35d2fh9076f5e325c4&690
注意:在定义这个名称数组的时候要注意检查是否是以花括号开始和结束的,是否有多余的双引号,否则可能被定义成字符串。
MonthNames定义后,你就可以在公式中使用它了,你的公式中可以指定使用数组中哪一个项目,INDEX函数就可以实现,例如,下面的公式就会返回值
Apr :
你也可以显示全部12个项,这需要12个相邻的单元格,例如下图的A4:L4。操作步骤如下:
1.在 新建名称 对话框中创建 MonthNames,
2.选择范围单元格 A4:L4,
3在 公式栏 中输入公式 =MonthNames ,
4同时按下组合键 Ctrl Shift Enter 。
http://s3/middle/53e35d2fh9076f9fbe4d2&690
组合键
Ctrl Shift Enter 在Excel中的功能就是将数组中的每一项插入到选中的单元格中。Excel还会在 公式栏 的数组公式上自动加上花括号,就像上图看到的一样,来提醒你这个公式的特定类型。