请教筛选公式数组含义=INDEX(A:A,SMALL(IF(MATCH...

要用excel做个筛选公式,在网上查到一个,但不知含义,请高手解释之=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$7&$B$1:$B$7&$C$1:... 要用excel做个筛选公式,在网上查到一个,但不知含义,请高手解释之
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$7&$B$1:$B$7&$C$1:$C$7,$A$1:$A$7&$B$1:$B$7&$C$1:$C$7,)=ROW($1:$7),ROW($1:$7)),ROW(4:4)))
有大量数据,多行多列。如果同时有多行数据相同,只是如何用公式实现筛选删除相同数据
展开
 我来答
levi_wzh
2011-08-07 · 知道合伙人互联网行家
levi_wzh
知道合伙人互联网行家
采纳数:2160 获赞数:7470
excel公式,条件格式

向TA提问 私信TA
展开全部
这个公式要解释起来很费劲,我试试
index+small+match+row函数通常用来对某列的数据进行去重处理.
你粘贴的公式最后的参数是row(4:4),应该不是处于第一个位置的公式,第一个公式应该是row(1:1)
把你的公式简化一下方便解释
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$7,$A$1:$A$7,)=ROW($1:$7),ROW($1:$7)),ROW(1:1)))
我们假设你A1:A7中存放的是A B B A C D B
公式执行顺序为:
1,MATCH($A$1:$A$7,$A$1:$A$7,) 在A1到A7中分别查找A1:A7第一次出现的位置得到 {1,2,2,1,5,6,2},

2,MATCH($A$1:$A$7,$A$1:$A$7,)=ROW($1:$7),上面得到的数组与 {1,2,3,4,5,6,7}进行对比,相同为ture 不同为false得到新的逻辑数组{ture,ture,false,false,ture,ture,false}

3,IF(MATCH($A$1:$A$7,$A$1:$A$7,)=ROW($1:$7),ROW($1:$7)),根据上面的逻辑数组,为ture返回对应位置的行号,否则返回false 得到新数组 {1,2,false,false,5,6,false}

4,SMALL(IF(MATCH($A$1:$A$7,$A$1:$A$7,)=ROW($1:$7),ROW($1:$7)),ROW(1:1)) 用small函数返回数组中第1小的数字1(公式下拉时会返回第2小,第3小 第4小的数字),逻辑值false是不会参与返回的

5,=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$7,$A$1:$A$7,)=ROW($1:$7),ROW($1:$7)),ROW(1:1))) 最后用index返回A列对应最小数字行号的数据1 2 5 6行对应的A B C D

当然公式继续下拉会返回错误值,另外有解决办法,这里就不说了.

总之这样就达到了去重的目的
至于你原公式中$A$1:$A$7&$B$1:$B$7&$C$1:$C$7,只是把ABC3列结合为1列来进行去重,道理和上面说的是一样的.
追问
十分感谢你的回答,真是佩服,你写的我差不多能看懂的,还有一个问题,如果我要筛选的数据有很多列(A——T)筛选的时候A-N列看做整体,“$A$1:$A$7,$A$1:$A$7,”这部分就要很长的写出来么,有没有什么简便的方法?
勤峻孟1159
2011-08-07 · 贡献了超过194个回答
知道答主
回答量:194
采纳率:0%
帮助的人:48.9万
展开全部
真专业啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式