【问题标题】:Concatenate Dynamic Columns连接动态列
【发布时间】:2021-12-14 00:44:27
【问题描述】:

我从这里抓取了一些代码,它几乎是完美的,但我需要对其进行调整,我已经摆弄了很多,但没有设法让它正确。

我有以下数据:

Student ID First Name Last Name Period Date 1 Date 2
1111111 John Doe A2 10/28/2021 10/29/2021
2222222 Jane Doe A2 10/28/2021

使用我从这里得到的代码,它将所有日期列中的日期连接起来,并将它们放入电子表格的最后一列,它们之间有一个空格,这几乎是我需要的。我需要它将连接的日期放入电子表格的最后一列,但它们之间有逗号和空格。 例如:
现在,根据上面的表格,它看起来像这样:10/28/2021 10/29/2021 对于 John Doe 的行。我希望它看起来像这样:2021 年 10 月 28 日、2021 年 10 月 29 日

谁能帮助调整这段代码来实现这一点?

  function message() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetName = ss.getActiveSheet();
  var lr = sheetName.getLastRow();
  var lc = sheetName.getLastColumn();
  var rangeValue = sheetName.getRange(2, 5, lr-1, lc).getValues();

  for(var i = 0; i < rangeValue.length; i++) {
    var catValues = "";
    for (var j = 0; j < lc; j++) {
      catValues += rangeValue[i][j] + " ";
    }
    var setRange = sheetName.getRange(i+2, lc);
    setRange.setValue(catValues);
    
  };
};

提前感谢您能给我的任何帮助!

【问题讨论】:

  • 您从哪里获得代码? “这里”什么也没显示。然后再给一个更好的样本,也许你可以用公式解决你的问题,而不必去谷歌脚本
  • 我从这个链接得到它:link
  • 您是否尝试过使用 join(", ", rangeWithDates) 的列?你必须去写剧本吗?

标签: google-apps-script google-sheets dynamic concatenation


【解决方案1】:
 function mymap() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getActiveSheet();
  const sr = 2;//starting row of data
  const rg = sh.getRange(2, 1, sh.getLastRow() - sr + 1, sh.getLastColumn());
  const vs = rg.getDisplayValues();
  rg.clearContent();
  let vo = vs.map((r => {
    let arr = r.slice();
    arr.splice(arr.length, 0, `${r[4]},${r[5]}`);
    return arr;
  }))
  let lr = sh.getLastRow();
  sh.getRange(2, 1, vo.length, vo[0].length).setValues(vo);
}

【讨论】:

  • 非常感谢您的帮助!完美运行!
  • 经过进一步检查,这仅适用于两条记录。我正在跟踪整个 9 周的教程出勤情况,其中包括 40 天。我需要它来连接特定学生的所有日期,而不仅仅是他们参加教程的前两次。你愿意帮助我调整你的代码吗?
  • 除了 sheet.getLastRow() -1 之外的行数没有限制,如果起始行是 2,则它必须是。我添加了代表起始行的 sr 变量数据,我修改了 getRange() 参数。但我看不出它为什么会将你限制在两行。请提供我可以复制和粘贴的数据表,我会将结果显示给您。
猜你喜欢
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
相关资源
最近更新 更多