我有 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 行数据的测试,这两个公式似乎都可以在我这边运行,尽管可能因数据而异。