请教某数组函数意义INDEX(B:B,SMALL(IF(MATCH($B$2:$B$1999&"",$B$2:$B$1999&"",0)=ROW($B$2:$B$1999),ROW

excel已知B1:B1999是一列文字,在C1单元格输入请教某数组函数意义INDEX(B:B,SMALL(IF(MATCH($B$2:$B$1999&"",$B$2:$... excel已知B1:B1999是一列文字,在C1单元格输入请教某数组函数意义INDEX(B:B,SMALL(IF(MATCH($B$2:$B$1999&"",$B$2:$B$1999&"",0)=ROW($B$2:$B$1999),ROW($B$2:$B$1999),4^8),ROW(B2)))&"" 再按CTRL+SHIFT+ENTR再往下拖,就能在C列得到B列中不重复的名称列表,谁能帮我解释下这个数组,表达成白话文……

另外如果B列是从B2:B1999有文字,想在C2:C1999得到B2:B1999中不重复的文字列表,该怎样更改上面的数组公式?

INDEX(B:B,SMALL(IF(MATCH($B$2:$B$1999&"",$B$2:$B$1999&"",0)=ROW($B$2:$B$1999),ROW($B$2:$B$1999),4^8),ROW(B2)))&""

改成什么样
展开
 我来答
10993358
2010-08-26 · TA获得超过4279个赞
知道大有可为答主
回答量:1813
采纳率:100%
帮助的人:2258万
展开全部
函数的意思是INDEX(b:b 意思是 在B:B里面返回有一个值 INDEX 函数 你搜索一下INDEX(区域,行,列)
一般是怎么写的 你看你的公式里面 SMALL(IF(MATCH($B$2:$B$1999&"",$B$2:$B$1999&"",0)=ROW($B$2:$B$1999),ROW($B$2:$B$1999),4^8) 这个其实是返回一个值 就是对应的行数 INDEX区域是一列的时候 列数可以省略不写
INDEX写好了 那就给你说行数了
SMALL是一个数组
SMALL(IF(MATCH($B$2:$B$1999&"",$B$2:$B$1999&"",0)=ROW($B$2:$B$1999),ROW($B$2:$B$1999),4^8)
这个意思是 如果在B2:B1999里面查找B2:B1999 0是精确匹配的意思 返回的顺序号和B2:B1999的行号一样的话 就返回b2:b1999的行号 要不就返回4^8 就是返回无穷大 你复制来的函数应该还少了一个small(数据区域,ROW(A1))
MATCH 意识是查找区域内 某个值出现的顺序号 也可以是数组形式
这是这个函数难点
你理解一下A1:A10分别是 1 2 3 4 5 6 7 8 9 1
你match(1,a1:a10,0)
就返回1 在A1:A10第一次出现的地方就是 第一个 最后一个1被忽略掉了
联系上面公式意思就是 B2:B1999里面第一次出现的地方和行号一样 就返回行号
你的公式应该有点错误 你是走B2:B1999开始的,所有 行号应该减去1 才会和MATCH 返回结果一样
上面说的你的 SMALL 贴上来的公式少了个参数 你下拉的时候其实
small(数据,ROW(A1))
是要一次返回数据里面第一个 第2个 第3个最小行号的意思
还有B2:B1999 后面&"" 是为了规避空值 而写的 !!
我给你写个完整的公式
如下
=INDEX($B$2:$B$1999,SMALL(IF(MATCH($B$2:$B$1999&"",$B$2:$B$1999&"",0)=ROW($B$2:$B$1999)-1,ROW($B$2:$B$1999)-1,2^8),ROW(A1)))你一直拉
就是没有了的意思
注意我写的时候按你区域写的行号减去1了
最后 似乎回答过你问题 都不及时采纳的 我也要赚积分的哇~~~~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式