我有以下情况:
Column G Column H
|Black, Brown, Grey| | dog |
|Calico | | cat |
|Green, Blue | | bird|
| ... | | ... |
我想分开并填写这个:
Column G Column H
|Black | |dog |
|Brown | |dog |
|Grey | |dog |
|Calico| |cat |
|Green | |bird|
|Blue | |bird|
|... | | ...|
查看脚本以分割逗号描述的单元格(Function to split text in cell and create column)我可以按照拆分进行操作,但它是我遇到问题的填充部分。我知道我应该设置一个while
循环,第一个单元格为var = i,第二个单元格为var = j。将i的拆分内容转储到数组中,然后填充array.length。但是,我似乎无法正确使用语法。
我对JS和GAS很陌生,所以任何帮助都会受到赞赏。
感谢您的帮助。
-JH
答案 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.filter(function (r) {
return r.toString()
.replace(/,/g, "")
})
}
此功能可以这样使用: