在一个单元格中将逗号分隔的值列表混洗(Google表格)

时间:2020-05-20 17:46:38

标签: google-sheets google-sheets-formula

我想知道是否有人可以帮我在Google表格的一个单元格中改写以逗号分隔的值列表。我的数据如下:

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

我想为每一行随机改组此字符串,我大约有一千行,每个行都有一个像这样的单元格。

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

1 个答案:

答案 0 :(得分:0)

可拖动的单个公式

如果您可以将公式向下拖动,则为以下公式:

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

两个ArrayFormulas

有可能将这两部分合并为一个,所以稍后我可能会再次讨论。

  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)),
                                ";"
                            )
                        )
                    )
                ),
                ", (;, )+",
                ";"
            ),
            ";"
        )
    )
)

棘手的部分是使“组连接”起作用。