为什么`UNIQUE(TEXTSPLIT(TEXTJOIN(...)))`不会产生唯一值的列表?

问题描述 投票:0回答:1

我试图帮助解决这个问题

我的建议基于使用

Unique()
工作表函数获取唯一标识符的想法。

因此,在单元格“B1”中我输入值“1,2,3,4,5”。
在单元格“B2”中,我输入值“2,3,4,5,6”。

使用公式

=UNIQUE(TEXTSPLIT(TEXTJOIN(",";TRUE;B1;B2);","))
,我希望获得唯一标识符的列表,但这没有成功。

我已经将其写为答案(制定一种方法,并希望有人在评论中做出反应),但由于另一个答案已经被接受,我担心我的答案中的问题将不再被考虑,我真的好奇:为什么我的公式不起作用? (我确实使用了公式审核,看来这确实是

Unique()
工作表函数导致了问题。我也尝试过先对条目进行排序,但由于排序似乎不起作用,这似乎也不是解决方案)

好吧,我终于找到了一个解决方案:显然整个事情需要转换成列才能使其工作:

=UNIQUE(SORT(TEXTSPLIT(TEXTJOIN(",";TRUE;B1:B2);",")))

结果:“1, 2, 3, 4, 5, 2, 3, 4, 5, 6” => NOK

=TOROW(UNIQUE(SORT(TOCOL(TEXTSPLIT(TEXTJOIN(",";TRUE;B1:B2);",")))))

结果:“1, 2, 3, 4, 5, 6” => 确定

这是一个错误吗?有计划解决这个问题吗?

excel sorting excel-formula
1个回答
1
投票

试试这个:

=UNIQUE(SORT(TEXTSPLIT(TEXTJOIN(",";TRUE;B1:B2);",")),TRUE)

检查

UNIQUE
参数列表,了解为什么
TRUE
很重要。


或者,您可以使用

TRANSPOSE
代替 TOCOL 和 TOROW,但这仅在您仅使用一行输出时才有效(因此在这种情况下它会工作),甚至可以双重转置以再次返回一行。

=TRANSPOSE(UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(",";TRUE;A10;A11);","))))
© www.soinside.com 2019 - 2024. All rights reserved.