我们在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
非常感谢任何想法,谢谢!
答案 0 :(得分:1)
不久前,我在谷歌应用程序脚本中编写了一个自定义函数来处理相同的情况。这是脚本。
/**
* 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(/(?:\r\n|\r|\n)(\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, ",")
我希望这有帮助吗?
答案 1 :(得分:0)
您可以尝试使用公式完成此任务。
假设有两列数据:
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<>"")),", "))
说明:
$ G $ 1 - 总行数。它可以是公式:
= COUNTA(A2:A)
这个解决方案很复杂,但确实有效。这是sample ,workbook。