2016-07-25 29 views
0

我有以下情况:GAS拆分一个单元格,并填写到另一名

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。将我的分割内容转储到一个数组,然后填充array.length。但是,我似乎无法得到正确的语法。

我很新的JS和GAS所以任何帮助,将不胜感激。

感谢您的帮助。

-JH

回答

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, "") 
}) 
} 

此功能可像这样使用:

enter image description here

相关问题