Изменить код - поиск 2-й последней буквы данных в ячейке. Google Apps Script / Google Sheets - PullRequest
0 голосов
/ 18 февраля 2020

Если данные в ячейке в столбце B имеют A или B в качестве ТОЛЬКО 2-ой последней буквы - (пример местоположения G08B1) - скопируйте эту строку на другой лист.

I используйте измененную версию строки копирования, если в определенной ячейке есть определенное слово, поэтому не знаете, как изменить это на то, что мне нужно.

  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);

Надеюсь, что это не слишком сложно для достижения.

Заранее спасибо

1 Ответ

2 голосов
/ 18 февраля 2020
  • Входными и выходными выборочными значениями являются столбец "B" и столбцы "C: D" соответственно.
  • Вы хотите поместить значения столбца "B" в столбец "C" и "D" по 2-му последнему символу каждого значения столбца "B".
    • Поместите значения ###A# и ###B# в столбец "C".
    • Поместите значения ###C# и ###D# в столбец "D".
  • Вы хотите добиться этого с помощью Google Apps Script.

Я мог бы понять, как выше. Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

В этом ответе 2-й последний символ каждого значения извлекается с помощью 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.

Примечание:

  • Этот пример сценария предназначен для вашей общей электронной таблицы. Если формат отличается от вашей общей электронной таблицы, сценарий может не работать. Пожалуйста, будьте осторожны с этим.

Ссылка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...