在一个单元格中随机播放逗号分隔的值列表(Google 表格)



我想知道是否有人可以帮助我打乱Google工作表中一个单元格中逗号分隔的值列表。我的数据如下所示:

peter, andrew, mike, michael, ..., thomas

我想为每一行随机洗牌这个字符串,我有大约一千行,它们都有一个看起来像这样的单元格。

任何公式或指向我可以更接近解决方案的页面的链接将不胜感激。

可拖动的单个公式

如果您可以向下拖动公式,这里有一个公式:

=ArrayFormula(
JOIN(
", ",
Array_Constrain(
SORT(
TRANSPOSE(
{
SPLIT(A1, ", ");
RANDARRAY(1,COUNTA(SPLIT(A1, ", ")))
}),
2,
),
COUNTA(SPLIT(A1,", "))
,1
)
)
)

两个数组公式

也许可以将这两者合二为一,所以我稍后可能会重新讨论这个问题。

  1. 确保清除三列。我选择了 C 作为我的起始列。
=ArrayFormula(
SORT(
{
ARRAY_CONSTRAIN(
SPLIT(
TRANSPOSE(
SPLIT(
TEXTJOIN(
",",
1,
(SEQUENCE(COUNTA(A:A))-1)&"|"&SPLIT(FILTER(A:A&", ",LEN(A:A)),", ")
),
","
)
),
"|"
),
COUNTA(
SPLIT(TEXTJOIN(", ",1,A:A),", ")
),
2
),
RANDARRAY(
COUNTA(
SPLIT(
TEXTJOIN(", ",1,A:A),
", "
)
),
1
)
},1,1,3,1)
)
  1. 最终结果。
=ArrayFormula(
TRANSPOSE(
SPLIT(
REGEXREPLACE(
TEXTJOIN(
", ",
,
UNIQUE(
TRANSPOSE(
IF(
TRANSPOSE(FILTER(C:C,LEN(C:C)))=FILTER(C:C,LEN(C:C)),
FILTER(D:D,LEN(D:D)),
";"
)
)
)
),
", (;, )+",
";"
),
";"
)
)
)

棘手的部分是让"组串联"工作。

最新更新