Google工作表复选框结果为新行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google工作表复选框结果为新行相关的知识,希望对你有一定的参考价值。

我们在google表单上有复选框,可以将其输入到Google表格中。对复选框的响应以逗号分隔,我们想知道是否可以使用新行。

这是表单填充工作表的方式:

[Col A] [Col B]
Name   Availability  
Larry  Monday  
Sergey Monday, Wednesday  
Sonali Thursday, Friday  

这就是我们想要的方式:

[Col A] [Col B] 
Name   Availability  
Larry  Monday  
Sergey Monday  
Sergey Wednesday  
Sonali Thursday  
Sonali Friday  

任何想法将不胜感激,谢谢!

答案

不久前,我在谷歌应用程序脚本中编写了一个自定义函数来处理相同的情况。这是脚本。

/** 
* Splits the array by commas in the column with given index, by given delimiter
* @param {A2:B20}  range Range reference
* @param {2}  colToSplit Column index
* @param {","}  delimiter Character by which to split
* @customfunction
*/


function advancedSplit(range, colToSplit, delimiter) {
var resArr = [], row;
range.forEach(function (r) {
    r[colToSplit-1].replace(/(?:
|
|
)(d|w)/g,", ").split(delimiter)
        .forEach(function (s) {
            row = [];
            r.forEach(function (c, k) {               
                row.push( (k === colToSplit-1) ? s.trim() : c);
            })
            resArr.push(row);
        })
    })
return resArr;
}

您可以通过输入电子表格将该脚本用作任何其他(内置)公式(例如,假设要拆分的列是D列)

=advancedSplit(A1:Z, 4, ",")

我希望这有帮助 ?

另一答案

您可以尝试使用公式完成此任务。

假设有两列数据:

A      |       B
Name   | Availability

在此示例中,数据从第二行开始。我们需要两个公式。第一个列出名称:

=TRANSPOSE(SPLIT(JOIN("",ARRAYFORMULA(REPT(offset(A2,,,$G$1)&",",len(offset(B2,,,$G$1))-len(SUBSTITUTE(offset(B2,,,$G$1)," ",""))+1))),","))

第二个公式列出了复选框结果:

=TRANSPOSE(SPLIT(join(", ",FILTER(B2:B;B2:B<>"")),", "))

说明:

  • A2 - 具有名称的第一个单元格
  • B2 - 带复选框结果的第一个单元格
  • $ G $ 1 - 总行数。它可以是公式: = COUNTA(A2:A)

这个解决方案很复杂,但它确实有效。这是sample ,workbook

以上是关于Google工作表复选框结果为新行的主要内容,如果未能解决你的问题,请参考以下文章

添加新行并使用自标记公式填充

Jquery if复选框是否已选中Bootstrap开关

带有复选框和自定义适配器的 ListView,片段无法正常工作

查找Google表格中的所有复选框

从片段调用 Google Play 游戏服务

存在新值时添加新的 Google 工作表行