谷歌电子表格/脚本问题:
免责声明:我是初学者。任何解释都对我有很大帮助。
长话短说:
- 工作表 1,第 N 列包含逗号分隔的值。
- 工作表 2,A 列包含所有可能的值,这些值可以组合起来构成工作表 1,N 列的内容。
- 工作表 2,C 列包含“替代”值。
我需要一个脚本,可以将工作表 1 的 N 列中的所有值替换为工作表 2 的 C 列中的“替代”值。我需要最终结果是单个逗号分隔值中的“替代”值。
我已经编写了将 N 列值分隔为新列中的单个值的脚本。但是,我一直无法进一步前进。我当前的拆分脚本出现在底部。
完整解释:
“工作表 1”包含多个列,包括包含逗号分隔值的列“N”。Sheet 1 中的行数将随着用户输入数据而增加。目前,只有三行数据。“N”列包含:
N1 的值为“Dog, Cat, Rabbit”
N2 的值为“Dog, Fish”
N3 的值为“Frog, Horse, Fish”
我当前的 Google 脚本从所有可用行中收集数据,然后将“N”列中的逗号分隔值分隔到新列中,如下所示:
X1 的值为“Dog”,Y1 的值为“Cat”,Z1 的值为“Rabbit”
X2 的值为“Dog”,Y2 的值为“Fish”
X3 的值为“Frog” ",Y3 的值为“Horse”,Z3 的值为“Fish”
“工作表 2”在 A 列中包含所有可能出现在上面的值——狗、猫、兔子、鱼、马等。所以,
A1 的值为“Dog”
A2 的值为“Cat”
A3 的值为“Rabbit”
A4 的值为“Fish” -- 等等(总共有 100 多个可能的值)。
“工作表 2”在 C 列中包含“替代值”(即相应的 Google 日历资源地址):
C1 的值为“domain.com_928313sdf98@resource.calendar.google.com”
C2 的值为“domain.com_190382d0931@resource.calendar.google.com”
C3 的值为“domain.com_295801a0181@resource.calendar. google.com"
C4 的值为 "domain.com_5s3910s1481@resource.calendar.google.com" --- 等等。
我正在寻找一个脚本,对于工作表 1 中的数据,它将搜索工作表 2 中的分隔值,然后将工作表 1 中的这些值替换为来自工作表 2 的相关“替代值”(即 Google 日历资源地址), C 列。然后我需要将结果连接回逗号分隔值。
所以,我想从工作表 1 开始,其中 N1 的值为“Dog, Cat, Rabbit”,我想返回“domain.com_928313sdf98@resource.calendar.google.com, domain.com_190382d0931@resource.calendar .google.com, domain.com_295801a0181@resource.calendar.google.com”作为我的最终结果。
该脚本将在所有行中执行此操作。
我的拆分脚本(我什至不确定这是否是处理此问题的最佳方式):
function mySplit() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var startcolumn = 2;
var startrow = 2;
var numcolumns = 500;
var dataRange = sh.getRange(startcolumn, 1, numcolumns, 25);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var cell = sh.getRange(startcolumn + i, 15).getValues()[0];
var sCell = cell[0].split(",");
sh.getRange(startrow +i,26,1,sCell.length).setValues([sCell]);
}}