excel函数index的用法

谁能帮我解释一下下边这个函数的意思?
=INDEX('分柜清单 '!A:A,SMALL(IF(MATCH('分柜清单 '!$A$1:$A$10000&"",'分柜清单 '!$A$1:$A$10000&"",0)=ROW('分柜清单 '!$A$1:$A$10000),ROW('分柜清单 '!$A$1:$A$10000),65536),ROW(A2)))&""

我想知道MATCH()里边为什么要加“&""”
还有结尾为什么要加“&""”
如果不加这个东西,上边的公式就是错误的
我知道""代表空值
谢谢大家的帮忙!
谢谢你们热心的回答!我相信你们真正想要的并不是分数,而是这种助人为乐的精神
我实在是难以取舍这个分到底给谁!
谢谢bergyan、qinqh_yl 、LWSHH
你们都是真正的高手!跟你们学到了不少东西!
但是我只能投票选举了!
谢谢你们!

因为你的数据不可能是从A1到A10000行都是有的,比如,你A1到A800是有数据的,其它后面有些单元格是空格的。数组公式应用时,如果没加“&""”就会出错,因为MATCH函数必须对这一万行都进行处理呀,如果没加,空单元格,它是要以零来处理呢,还是以空格来处理呢,你又要它精确匹配,这时,它就会犯混了,因为空单元格,即是空值,又是零值。不知道我说得你明白不。

即是这样,如果,你A1到A10000行,都是有数据的,那你就可以不用加这个了 “&""”,这时,不加这个,也不会错误。它就是起这个作用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-03

index函数:用于返回表格或区域中的数值或对数值的引用。


主要2种形式:


  数组:index(数组区域,N号,列号)

  引用:index(单元格区域的引用,行数,列数,从第几个选择区域内引用)


示例  


第2个回答  2010-06-07
INDEX

请参阅

返回列表或数组中的元素值,此元素由行序号和列序号的索引值给定。

INDEX 函数有两种语法形式:数组和引用。数组形式通常返回数值或数值数组,引用形式通常返回引用。当函数 INDEX 的第一个参数为数组常数时,使用数组形式。

语法 1

数组形式

INDEX(array,row_num,column_num)

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。
Row_num 和 column_num 必须指向 array 中的某一单元格;否则,函数 INDEX 返回错误值 #REF!。

示例 1

如果您将示例复制到空白工作表中,可能会更易于理解该示例。

操作方法

创建空白工作簿或工作表。
请在“帮助”主题中选取示例。不要选取行或列标题。

从帮助中选取示例。

按 Ctrl+C。
在工作表中,选中单元格 A1,再按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。

1
2
3
A B
数据 数据
苹果 柠檬
香蕉 梨
公式 说明(结果)
=INDEX(A2:B3,2,2) 返回单元格区域的第二行和第二列交叉处的值(梨)
=INDEX(A2:B3,2,1) 返回单元格区域的第二行和第一列交叉处的值(香蕉)

示例 2

如果您将示例复制到空白工作表中,可能会更易于理解该示例。

操作方法

创建空白工作簿或工作表。
请在“帮助”主题中选取示例。不要选取行或列标题。

从帮助中选取示例。

按 Ctrl+C。
在工作表中,选中单元格 A1,再按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。

1
2
3
A B
公式 说明(结果)
=INDEX({1,2;3,4},0,2) 返回数组常量中第一行、第二列的值 (2)
返回数组常量中第二行、第二列的值 (4)

注释 示例中的公式必须以数组公式的形式输入。在将示例复制到空白工作表中后,请选中以公式单元格开始的单元格区域 A2:A3,按 F2,再按 Ctrl+Shift+Enter。如果公式不是以数组公式的形式输入,则返回单个结果值 2。
第3个回答  2009-07-23
公式还有一个小问题,如果A1:A10000中如果在数据之间有空单元格,比如A1:A10有数据,A11没有数据,A12:A100又有数据,那么用这个公式时,它就会取一个空单元格,使返回的数据不是连续的.中间会有一条空记录.把它改成这样试试=INDEX('分柜清单 '!A:A,SMALL(IF((MATCH('分柜清单 '!$A$1:$A$10000&"",'分柜清单 '!$A$1:$A$10000&"",0)=ROW($A$1:$A$10000))*('分柜清单 '!$A$1:$A$10000<>""),ROW($A$1:$A$10000),65536),ROW(A2)))&""
MATCH()里边为什么要加“&""”因为MATCH()是查找不到真空单元格的,&""以后就把真空单元格变成了假空单元格,只要MATCH()第二个参数中包含有假空单元格,它就能查找到它的位置,MATCH()第二个参数&""就为了与第一参数保持一致,这样就保证了MATCH()第一个参数中的所有单元格在A:A10000中都能找到相应的位置,从而就不会返回#NA了
结尾为什么要加“&""”是为了让公式不出现不符合条件的0值,因为不符合条件的都返回65536,也就是A列最后一个单元格,而这个单元格肯定是没有数据的空单元格(真空单元格),INDEX()取到空单元格就会以0的形式出现,空单元格&""就返回空(假空),而不是返回0了.
第4个回答  2009-07-23
这个公式的作用相当于“高级筛选”/“选择不重复的记录”。
MATCH函数里面的&""的作用正如2楼所说。
结尾处的&"",是因为公式向下复制到某行(A列不重复的数据个数),再向下复制时引用的是A65536单元格的值,如果不加&"",得到的结果是0,加上后得到的结果是空白。
相似回答