首页 > 解决方案 > 修改代码 - 查找单元格中数据的第二个最后一个字母。Google Apps 脚本/Google 表格

问题描述

如果 B 列中单元格中的数据仅在倒数第二个字母中包含 A 或 B - (位置 G08B1 的示例) - 将该行复制到另一张表。

如果某个单元格有某个单词,我会使用修改后的复制行版本,所以不确定如何将其修改为我需要的。

  function CopyAorBLocation() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if(s.getName() == "FORKLIFT" && r.getColumn() == 7 && r.getValue() == copy AorB if 2nd last letter - if not ignore) 
 {
  var row = r.getRow();
  var numColumns = s.getLastColumn();
  var targetSS = 
  SpreadsheetApp.openById("");
  s = SpreadsheetApp.getActiveSheet();
  var tempSheet = s.copyTo(targetSS);
  var targetSheet = targetSS.getSheetByName("ONLINERELOCATION");
  var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
  tempSheet.getRange(row, 4, 1, 3).copyTo(target);

希望这不是太复杂实现。

提前致谢

标签: google-apps-scriptgoogle-sheets

解决方案


  • 输入和输出样本值分别是“B”列和“C:D”列。
  • 您希望将“B”列的值按“B”列的每个值的倒数第二个字符放入“C”和“D”列。
    • 将值###A####B#到列“C”。
    • 将值###C####D#到列“D”。
  • 您想使用 Google Apps 脚本来实现这一点。

我可以像上面那样理解。如果我的理解是正确的,这个答案怎么样?请认为这只是几个可能的答案之一。

在这个答案中,每个值的倒数第二个字符由 检索substring()

示例脚本:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  var srcValues = sheet.getRange(2, 2, sheet.getLastRow() - 1, 1).getValues();
  var dstValues = srcValues.map(function([b]) {
    var len = b.length;
    var s = b.substring(len - 2, len - 1).toUpperCase();
    return (s == "A" || s == "B") ? [b, ""] : (s == "C" || s == "D") ? ["", b] : ["", ""];
  });
  sheet.getRange(2, 3, dstValues.length, 2).setValues(dstValues);
}
  • 在此示例脚本中,Sheet1使用了。

笔记:

  • 此示例脚本适用于您的共享电子表格。如果格式与您共享的电子表格不同,则该脚本可能不起作用。请注意这一点。

参考:


推荐阅读