我有一個包含數千個條目的資料串列,我需要將這些條目匯入到管理系統中以獲取谷歌表格檔案。目前我有這樣的事情:
| 一種 | 乙 | C | |
|---|---|---|---|
| 1 | 皮膚素 | 醫療中心 | 皮膚、激光脫毛、按摩 |
| 2 | 3牙科 | 診所 | 口腔正畸學、全科醫生、口腔修復學 |
我想實作這樣的目標:
| 一種 | 乙 | C | |
|---|---|---|---|
| 1 | 皮膚素 | 醫療中心 | 真皮 |
| 2 | 激光除毛 | ||
| 3 | 按摩 | ||
| 4 | 3牙科 | 診所 | 正畸 |
| 5 | 全科醫生 | ||
| 6 | 口腔修復 |
我進行了研究,發現了這個腳本
function result(range) {
var splitCol = 1; // split on column B
var output2 = [];
for(var i=0, iLen=range.length; i<iLen; i ) {
var s = range[i][splitCol].split("\n");
for(var j=0, jLen=s.length; j<jLen; j ) {
var output1 = [];
for(var k=0, kLen=range[0].length; k<kLen; k ) {
if(k == splitCol) {
output1.push(s[j]);
} else {
output1.push(range[i][k]);
}
}
output2.push(output1);
}
}
return output2;
}
但是我有兩個問題:
- 我不希望行中其他資料的重復條目(我只希望將我的 C 列拆分為新行)
- 該腳本不適用于大量資料(我有大約 12k 行可以應用它)
請幫助我解決這些問題,我很感激任何幫助。謝謝!
uj5u.com熱心網友回復:
在您的情況下,以下示例腳本怎么樣?
示例腳本:
從您的腳本中,我認為您可能希望將該函式用作自定義函式。因此,在此修改中,請將以下腳本復制并粘貼到電子表格的腳本編輯器中,并將自定義函式放入=result(A1:C2)單元格中。
function result(values) {
return values.flatMap(([a, b, c]) => c.split(",").map((e, i) => i == 0 ? [a, b, e.trim()] : [null, null, e.trim()]));
}
如果您想通過腳本編輯器運行來使用此腳本,請使用以下腳本。
function result() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var srcSheet = ss.getSheetByName("Sheet1"); // Please set the source sheet name. var dstSheet = ss.getSheetByName("Sheet2"); // Please set the destination sheet name. var values = srcSheet.getDataRange().getValues(); var res = values.flatMap(([a, b, c]) => c.split(",").map((e, i) => i == 0 ? [a, b, e.trim()] : [null, null, e.trim()])); dstSheet.getRange(1, 1, res.length, res[0].length).setValues(res); }
測驗:
運行上述腳本時,會得到以下結果。

參考:
- 地圖()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/473317.html
上一篇:將字串連接到應用程式腳本中的公式
