EXCEL提取不重复内容的函数解释一下
先看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以上版本),均为工作表中的最后行号。
这种情况,我习惯用Index+Small+Match来实现。
=Sheet1!$R$2:$R$34
而不是=COUNTIF!$R$2:$R$34
此外,输入公式时,要按Ctrl+Shift+Enter结束公式输入,然后再向下复制公式。
关R列什么事