EXCEL提取不重复内容的函数解释一下

=INDEX(F:F,MIN(IF(COUNTIF(E$1:E1,$F$2:$F$100),1000,ROW($2:$100))))&""这个IF(COUNTIF(E$1... =INDEX(F:F,MIN(IF(COUNTIF(E$1:E1,$F$2:$F$100),1000,ROW($2:$100))))&""这个IF(COUNTIF(E$1:E1,$F$2:$F$100),1000,ROW($2:$100)))我不太明白,有人解释一下吗? 展开
 我来答
办公小子
2020-03-05 · 资深生产计划专员
办公小子
资深生产计划专员
采纳数:97 获赞数:16030
公司优秀员工,制定公司年度发展规划

向TA提问 私信TA
展开全部

PYninth
2019-07-04 · TA获得超过172个赞
知道小有建树答主
回答量:147
采纳率:63%
帮助的人:16.4万
展开全部

先看COUNTIF(E$1:E1,F$2:F$100),一般countif函数第1个参数是区域,第2个参数是具体数据或单元格,现在这里是一个区域,就是F2到F100每个单元格的数据在区域E$1:E1中出现的次数,得到的结果是99个数据的内存数组。现在显然是99个0,因为任何F列任何数据都没有在E1中出现。以countif作为IF的条件,为0时就取第3参数,所以取得了row(2:100)共99个行号,再用MIN取这些行号中的最小值,当然就是2了。然后index 从F列中引用行号为2的数据,也就是F2——MX1

再来看E3,公式中的COUNTIF部分变成了COUNTIF(E$1:E2,F$2:F$100),显然只有F2的结果为1,其余均为0。F2和F13结果为1,IF条件成立,所以取1000(这里假设1000行没有数据),其余F3到F100,取行号,最小的就是F3对应的行号3了。同样index就引用了F3的数据,依次类推,只要E列当前单元格前面出现的数据,F列做countif的第3参数,统计结果就会是1,取行号1000,而没有出现过的,就取对应的行号,从面保证F列的数据只提取一次。

到了E8,所有F列的数据都提取了,所以IF的结果就全部为1000了,最小的也是1000,引用F1000,为空,但引用后会显示0,后面加上一个"",就强制把单元格转换文本格式的空值,什么都不显示。

严格来说,公式中的F100应该用F13,而且一般也不是用1000,而是4^8(Excel2003或更低版本)或4^10(Excel2007以上版本),均为工作表中的最后行号。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lengfengfly
2019-07-04 · TA获得超过2380个赞
知道小有建树答主
回答量:2115
采纳率:63%
帮助的人:704万
展开全部
在当前单元格的上方依次比对F2:F100中的数据,如果查到了,则对该数赋一个极大行号1000,将没有查到的那些数所在行构建一个内存数组,并取数组中的最小值作为行号,进而定位并显示该数。
这种情况,我习惯用Index+Small+Match来实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e30a0b1
2019-07-04 · TA获得超过134个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:25.2万
展开全部
公式是可以计算出结果的,问题出在所定义的名称上。从给出的图来看,定义的名称GE应该是
=Sheet1!$R$2:$R$34
而不是=COUNTIF!$R$2:$R$34
此外,输入公式时,要按Ctrl+Shift+Enter结束公式输入,然后再向下复制公式。
追问
关R列什么事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式