excel 将单列转置为唯一行的数组

z31licg0  于 2023-01-21  发布在  其他
关注(0)|答案(2)|浏览(149)

我正在尝试获取一个值列表,其中包含唯一行中的重复值。
| 色谱柱A|
| - ------|
| 细胞1|
| 单元2|
| 单元格3|
| 细胞1|
| 单元2|
| 单元格3|
| 细胞1|
| 单元2|
| 色谱柱A|B栏|C栏|
| - ------|- ------|- ------|
| 细胞1|细胞1|细胞1|
| 单元2|单元2|单元2|
| 单元格3|单元格3||
我试过用

=TRANSPOSE(UNIQUE(A1:A3,TRUE,TRUE))

但是公式的任何组合都会删除重复项,我想保留它们。

h7wcgrx3

h7wcgrx31#

使用MakeArray:

=LET(
    rng,A1:A8,
    u,UNIQUE(rng),
    MAKEARRAY(
        ROWS(u),
        MAX(COUNTIF(A1:A8,u)),
        LAMBDA(a,b,
            IF(COUNTIF(A1:A8,INDEX(SORTBY(u,COUNTIF(A1:A8,u),-1),a))>=b,
                INDEX(SORTBY(u,COUNTIF(A1:A8,u),-1),a),
                ""))))

这将自动扩展到任何数字。它也会把重复次数最多的放在顶部,所以它是一个倒金字塔:

azpvetkf

azpvetkf2#

或者,您可以尝试:

C1中的公式:

=IFERROR(DROP(REDUCE(0,UNIQUE(TOCOL(A:A,1)),LAMBDA(x,y,VSTACK(x,EXPAND(y,1,COUNTIF(A:A,y),y)))),1),"")

或者,使用内置排序函数:

=SORT(IFERROR(DROP(REDUCE(0,UNIQUE(TOCOL(A:A,1)),LAMBDA(x,y,VSTACK(x,EXPAND(y,1,COUNTIF(A:A,y),y)))),1),""),1)

相关问题