按字母顺序排列字符串列

按字母顺序排列字符串列

我有 3 列名称,长度达数千行。我需要按字母顺序排列它们。我附上了数据的简化图像(示例表在图像左侧,理想解决方案表在图像右侧)

我正在尝试解决的问题的简化图像。

我正在尝试解决的问题的简化图像。

答案1

使用SORT()函数应该可以工作。4th函数的参数状态[按列],但该函数需要为每一行向下填充。也就是说,可以这样应用:

在此处输入图片描述


=SORT(A1:C1,,,1)

上述公式需要向下填充,但如果您想一次性对整个范围进行填充,那么您可以尝试以下方法:

在此处输入图片描述


=TEXTSPLIT(TEXTAFTER("|"&BYROW(A1:C4,LAMBDA(x,TEXTJOIN("|",,SORT(x,,1,1)))),"|",{1,2,3}),"|")

笔记:虽然上述公式有效,但它会有一定的限制。由于TEXTJOIN()函数有字符限制,如果生成的字符串超出32767 个字符单元格限制),则返回#价值!错误。


以下是另一种替代方法:

在此处输入图片描述


=LET(
     α, A1:C262144,
     δ, TOCOL(IF(α<>"",SEQUENCE(ROWS(α)))),
     φ, TOCOL(LEFT(α)),
     WRAPROWS(TAKE(SORT(HSTACK(TOCOL(α),δ,φ),{2,3},{1,1}),,1),3))

经过 250K 行数据的测试,这两个公式似乎都可以在我这边运行,尽管可能因数据而异。

在此处输入图片描述


相关内容