EXCEL公式及函数的高级应用(5)
2.1.2.9 INDEX函数
INDEX函数的功能是返回表格或区域中的数值或对数值的引用。INDEX函数有以下两种形式:
1.返回数组中指定单元格或单元格数组的数值。公式为
= INDEX(array,row_num,column_num)
式中 array—单元格区域或数组常数;
row_num—数组中某行的行序号,函数从该行返回数值。如果省略row_num,则必须有 column_num;
column_num—数组中某列的列序号,函数从该列返回数值。如果省略column_num,则必须有 row_num。
需要注意的是:如果同时使用 row_num 和 column_num,函数 INDEX 返回 row_num 和 column_num 交叉处的单元格的数值。如果数组只包含一行或一列,则相对应的参数row_num 或column_num为可选。如果数组有多行和多列,但只使用row_num 或column_num,函数INDEX返回数组中的整行或整列,且返回值也为数组。如果将row_num或column_num设置为0,函数INDEX则分别返回整个列或行的数组数值。如果需要使用以数组形式返回的数值时,请在一个水平单元格区域中将函数INDEX作为数组公式输入。此外,row_num和column_num必须指向array中的某一单元格,否则,函数INDEX返回错误值#REF!。
例如:INDEX({1,2;3,4},2,2)
= 4。如果作为数组公式输入,则:INDEX({1,2;3,4},0,2)
= {2;4}
2.返回引用中指定单元格。公式为
INDEX(reference,row_num,column_num,area_num)
式中 reference—对一个或多个单元格区域的引用;
如果为引用输入一个不连续的选定区域,必须用括号括起来。如果引用中的每个区域只包含一行或一列,则相应的参数row_num或column_num分别为可选项。例如,对于单行的引用,可以使用函数INDEX(reference,column_num)。
row_num—引用中某行的行序号,函数从该行返回一个引用;
column_num—引用中某列的列序号,函数从该列返回一个引用;
area_num—选择引用中的一个区域,并返回该区域中row_num和column_num的交叉区域。选中或输入的第一个区域序号为1,第二个为2,以此类推。如果省略area_num,函数INDEX使用区域1。
说明:row_num、column_num和area_num必须指向reference中的单元格,否则,函数INDEX返回错误值#REF!。如果省略row_num和column_num,函数INDEX返回由area_num所指定的区域。
函数INDEX的结果为一个引用,且在其他公式中也被解释为引用。根据公式的需要,函数INDEX的返回值可以作为引用或是数值。例如,公式 CELL("width",INDEX(A1:B2,1,2))等价于公式CELL("width",B1)。CELL函数将函数INDEX的返回值作为单元格引用。而在另一方面,公式2*INDEX(A1:B2,1,2)将函数INDEX的返回值解释为B1单元格中的数字。
2.1.2.10 ADDRESS函数
ADDRESS函数的功能是按照给定的行号和列标,建立文本类型的单元格地址。公式为
= ADDRESS(row_num,column_num,abs_num,a1,sheet_text)
式中 row_num—在单元格引用中使用的行号;
column_num—在单元格引用中使用的列标;
abs_num—指明返回的引用类型,其中:当为1或省略时为绝对引用,当为2时为绝对行号,相对列标,当为3时为相对行号,绝对列标,当为4时为相对引用;
a1—用以指明A1或R1C1引用样式的逻辑值。如果A1为TRUE或省略,函数ADDRESS返回A1样式的引用,如果A1为FALSE,函数ADDRESS返回R1C1样式的引用;
sheet_text—一文本,指明作为外部引用的工作表的名称,如果省略sheet_text,则不使用任何工作表名。
例如,ADDRESS(2,3)
等于“$C$2”;ADDRESS(2,3,2)
等于“C$2”。
2.1.2.11 INDIRECT函数
INDIRECT函数的功能是返回由文字串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身时,可使用此函数。公式为
= INDIRECT(ref_text,a1)
式中 ref_text—对单元格的引用,此单元格可以包含A1样式的引用、R1C1样式的引用、定义为引用的名称或对文字串单元格的引用,如果ref_text不是合法的单元格的引用,函数INDIRECT返回错误值#REF!;
a1—一逻辑值,指明包含在单元格ref_text中的引用的类型,如果a1为TRUE或省略,ref_text被解释为A1样式的引用,如果a1为FALSE,ref_text被解释为R1C1样式的引用。
需要注意的是,如果ref_text是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数INDIRECT返回错误值 #REF!。
例如:如果单元格A1包含文本"B2",且单元格B2包含数值1.333,则:INDIRECT($A$1)=
1.333。
上述介绍的几个查找函数LOOKUP、VLOOKUP、HLOOKUP、MATCH、INDEX、ADDRESS、INDIRECT等在财务分析与决策、预测及建立动态图表等中是非常有用的。