【问题标题】:Splitting 1D array into 2D array with just a formula仅用公式将一维数组拆分为二维数组
【发布时间】:2021-07-27 14:37:53
【问题描述】:

我有一个遵循模式的字符串:

"course|radio-selected|party-size,course|radio-selected|party-size,..."

我希望通过, 垂直拆分和转置字符串,然后通过| 水平拆分。

在我希望压缩单元格以仅显示唯一名称、所选单选按钮的平均值以及参加该课程的总人数之后。但我不知道如何在同一个公式中水平转置。

我目前的公式是:

=TRANSPOSE(SPLIT(JOIN(",",'Copy of Website Submissions'!A2:A),","))

我尝试将它变成一个数组然后再次拆分,但这只给了我第一个条目。

【问题讨论】:

    标签: google-sheets google-sheets-formula spreadsheet


    【解决方案1】:

    请记住,我们无法看到您所看到的,并且我们不知道您所知道的,除非您展示/告诉我们。

    也就是说,我能做的最好的就是猜测。试试这个:

    =ArrayFormula(SPLIT(FLATTEN(SPLIT('Copy of Website Submissions'!A2:A,",")),"|"))

    这里的关键是FLATTEN 命令,它形成了在第一个SPLIT 之后形成的所有结果的单列。

    如果最后出现任何空白行,请像这样添加 QUERY 换行:

    =ArrayFormula(QUERY(SPLIT(FLATTEN(SPLIT('Copy of Website Submissions'!A2:A,",")),"|"),"Select * WHERE Col1 Is Not Null"))

    如果这些不能按您预期的那样工作,我鼓励您将具有权限集(当您创建链接时)的工作表副本的链接共享给“知道链接的任何人...”和“编辑。”

    【讨论】:

    • 我添加了链接。您提供的公式有效,但到处都是#VALUE!s。
    • 太棒了.. 只用一个公式将一维数组拆分成二维数组。我不知道excel是否可以做到这一点。 Filterxml 确实给了我们一维数组。但不确定它是否可以进一步拆分它。谢谢。这是一个很好的学习...@ChristianRudder 我想问题标题应该相应地更改,因为这可以在以后多次引用。
    • Christian,看到您的工作表,我只是将 Col1 更改为 Col2 作为 QUERY 中的空检查,因为 Col2 和 Col3 有空值,而 Col1 有 #VALUE! 错误。出现错误的原因是,并非所有SPLITs 之前的字符串都具有统一的结构(即,有些具有逗号分隔的分组,而有些则没有)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2011-07-24
    相关资源
    最近更新 更多