新手交流
f(x) =IF(OR(A1=$B$1:$B$8),"",A1)
A列第个和第二列对比得到一个数组,只要有一个相同的,数组里就会有TRUE。
用OR函数,数组里只要有一个TRUE,就判定为TRUE。 也就是只要有重复的字母就会是TRUE。
用IF函数,
TRUE就显示为空,也就是“”。
FALSE,也就是没有重复的,就显示自身。

下拉,只能在对应行显示出不重复的字母。重复显示为空。
刚学函数,只做交流,不为解决问题。
现在知道的公式比较少,感觉不用数组的话,很难做到不用辅助列。
以我刚学的几个函数,有个想法,不过自己还实现不了。
假设g(x) =IF( f(x) ="",0,h(x) ),就是,如果前面的函数返回空值就显示为0,否则执行h(x)。
h(x)执行
A1=A1:$A$8,得出一个数组{TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE},
再前面加两个负号 “--”,得{1;1;0;0;0;0;0;0},里面有两个1,如果SUM下,就是数字2
下拉一格公式变成A2=A2:$A$8,最后得到是{1;0;0;0;0;0;0},SUM后得1
一直到A8=A8:$A$8,
最后得到下面数组。
A {1;1;0;0;0;0;0;0}
A {1;0;0;0;0;0;0}
B {1;1;0;0;0;0}
B {1;0;0;0;0}
C {1;1;0;0}
C {1;0;0}
D {1;1}
D {1}
把后面的数相加,得到
A 2
A 1
B 2
B 1
C 2
C 1
D 2
D 1
如果列加长,比如加上GGGGG,HHH对就一定是
G 5,
G 4,
G 3,
G 2,
G 1,
H 3
H 2
H 1
因为是h(x),是在f(x)不为空的情况下执行的。所以就会只算出C和D的
实际算的是
A 空
A 空
B 空
B 空
C 2
C 1
D 2
D 1
h(x)得出数字排序,
g(x) =IF( f(x) ="",0,h(x) )
g(x)得出2和1组成的数组。
然后再用函数只提取1所在的单元格,
这样就提出了单个的不重复的字母了。
当然这样提取出来的单个字母还在对应的单元格,并没有从最上向最下排列。想着是不是可以再用个其他的函数能让他从最上到下排列呢?
这是我目前所知道的函数想到的方法。
因为多层IF套用,我写的时候一直出错,括号什么的太多了。感觉这样是可以一个公式实现。
只是纯粹交流,不解决欠的问题哦