excel函数index的用法

来源:百度知道 编辑:UC知道 时间:2024/06/23 17:19:26
谁能帮我解释一下下边这个函数的意思?
=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行,都是有数据的,那你就可以不用加这个了 “&""”,这时,不加这个,也不会错误。它就是起这个作用。

公式还有一个小问题,如果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的形式出现,