引用函数index的用法1——数组用法
index函数返回区域中的值或值的引用。它包含两种用法:一种是数组用法,另一种是引用用法。今天先说数组用法。
-01-
函数说明
可以看到它有2种写法,第一种就是数组写法,意思是返回区域或数组中的元素值,此值由区域中的行号和列号的数字给定。当index函数的第一参数为常量数组时,使用数组公式。
array:必需。单元格区域或数组常量。
如果数组只包含一行或一列,则相对应的参数row_num或column_num 为可选参数。
如果数组有多行和多列,但只使用row_num或column_num,函数 index返回数组中的整行或整列,且返回值也为数组。
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设置为 0,函数index则分别返回整个列或行的数组数值。若要使用以数组形式返回的值,请将index函数以数组公式形式输入,对于行以水平单元格区域的形式输入,对于列以垂直单元格区域的形式输入。若要输入数组公式,请按Ctrl+Shift+Enter。
-02-
示例解释
如下表所示,在E1单元格中输入公式=INDEX(A2:A10,2,1)。意思是返回A2:A10这个区域中,第2行第1列的值。因为这个区域只有1列,所以列数可以忽略不写,公式可简写为=INDEX(A2:A10,2),结果是一样的。
此时index的第一参数是个单元格区域,所以它返回的既可以是值也可以是引用。如果不理解也没关系,下次再说。如果第一参数是数组,返回的就是值而不是引用,如下图所示。此时E1单元格的公式只不过由区域变成数组,结果是一样的。
在E1单元格中输入公式=INDEX(A2:C2,1,2),意思是在A2:C2这个区域中,返回第1行第2列的值。由于这个区域只有1行,所以行数可以忽略不写,公式可以简写为=INDEX(A2:C2,2),结果是一样的。
在E1单元格中输入公式=INDEX(A2:C10,5,3)。意思是在A2:C10这个区域中,返回第5行第3列的值。
在E1单元格中输入公式=INDEX(A2:C10,5,)。意思是在A2:C10这个区域中返回第5行的所有单元格的值。因为列数不写,就是取所有的列,就是返回整行。在单元格可能显示错误值,但在编辑栏中你可以选中公式按F9查看。
在E1单元格中输入公式=INDEX(A2:C10,,1)。意思是在A2:C10这个区域中返回第1列的所有单元格的值。因为行号不写,就是代表所有的行。
-03-
具体应用
1.课程表查询
在A18和B18中分别设置数据有效性,A18序列区域为周1到周5,也就是A12:A16,B18序列为B11:I11。这样就可以自由选择日期和节数了。C18单元格为查询的结果,课程表中的标红单元格设置了条件格式,为了和C18的结果进行对照。C18公式为=INDEX(B12:I16,MATCH(A18,A12:A16,),MATCH(B18,B11:I11,))。这样就可以动态查询课程表了。
当改变日期和节数时,查询结果自动改变。
2.每个月份每个部门总销量动态查询。
A29和B29分别设置了数据有效性,C29为查询的总销量。源表中标绿的单元格设置了条件格式,为的就是对比。C29公式为=SUMPRODUCT(INDEX(C20:H27,,MATCH(B29,C19:H19,))*(B20:B27=A29))。index这个函数返回月份列的每一个单元格的值。
当改变部门和月份时,查询结果自动改变。是不是挺有趣的。这个列子用的是index的数组用法,其实也可以用引用用法来做,明天继续。
index这个函数的数组用法,你学会了吗?