Поиск ответа в форме Google (Google Sheets) по номерам строк и столбцов - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь выяснить, как искать ответ в формах Google (листы Google), чтобы найти значение номера строки и столбца для извлечения данных.

У меня есть все остальное, но поискстолбец и строка, и я не уверен, как сделать 2D-поиск для этого.

Вот данные, которые я хочу найти и извлечь, но я не хочу все данные, только конкретные ячейки/ranges.

https://docs.google.com/spreadsheets/d/1ehA0fXBM6CPBAKfHvBbouRPjOMDxrXSdFI0zMye3G7c/edit?usp=sharing

Мой план - перенести «Имя сотрудника» в другую электронную таблицу, чтобы получить представление о том, кто его заполнил и в каком месте ежедневно.Поскольку форма всегда получает ответы, я хочу, чтобы сценарий извлекал данные несколько раз в день, чтобы показать соответствие формы.Я хочу, чтобы ответ выглядел примерно так:

https://docs.google.com/spreadsheets/d/1QyK5c-vxkt5BnM-wM-m80RZCO_29KWoF_isIZBOllvQ/edit?usp=sharing

Вот то, что я надеялся сделать своим Google Script: 1. Поиск по сценарию ищет исходный лист.2. Скрипт возвращает строку и столбец для того места, где было указано местоположение.3. Скрипт берет строку и столбец и вычитает 1 из строки и getValue ();этой клетки.(Который в этом случае будет сотрудником, заполнившим форму.) 4. Сценарий возвращает «имя сотрудника» на лист назначения в зависимости от местоположения сотрудника.(Так что это в правильной строке.) Результат, скрипт извлекает данные из ответов формы и перечисляет, кто их заполнил.

У меня есть все, что нужно, чтобы извлечь данные из определенной ячейки / диапазона и вставить их в место назначениялист на основе местоположения и даты.

Теперь, когда я объяснил, что я пытаюсь сделать, я могу объяснить, где я в тупике.Я не могу понять, как работает повтор для или когда команда.Я хочу найти одно конкретное место, а затем вернуть номер строки и столбца.Вот код, которым я пытался манипулировать, но я не могу заставить его искать в 2d или даже в строке, чтобы вернуть значение int eh для команды / when.

function updateVerification() {
  var ss = SpreadsheetApp.openById("1ehA0fXBM6CPBAKfHvBbouRPjOMDxrXSdFI0zMye3G7c");
  var sheet = ss.getSheetByName("Sheet1");
  var ss_dest = SpreadsheetApp.openById("1QyK5c-vxkt5BnM-wM-m80RZCO_29KWoF_isIZBOllvQ");
  var sheet_dest = ss_dest.getSheetByName("Destination");
  var rows=ss.getDataRange().getValues();
  var paste = 0;
  for(var r=0; r<rows.length; r++){
    for(var c=0; c<rows[r].length; c++){
      if(rows[r][c] == "Location #1"){
        paste = sheet.getRange(rows[r]+":"+rows[c]).getValue();
        sheet_dest.getRange(2,4).setValue(paste);
      }
    }
  }
}

Если кто-нибудь сможет мне помочь, я буду очень признателен.

Спасибо за любую помощь.:)

1 Ответ

0 голосов
/ 23 апреля 2019

Полагаю, вы хотите что-то вроде этого:

function updateVerification() {
  var ss=SpreadsheetApp.openById("1ehA0fXBM6CPBAKfHvBbouRPjOMDxrXSdFI0zMye3G7c");
  var sh=ss.getSheetByName("Sheet1");
  var ss_dest=SpreadsheetApp.openById("1QyK5c-vxkt5BnM-wM-m80RZCO_29KWoF_isIZBOllvQ")
  var sh_dest=ss_dest.getSheetByName("Destination");
  var rows=ss.getDataRange().getValues();
  for(var r=0;r<rows.length;r++) {
    for(var c=0;c<rows[r].length;c++) {
      if(rows[r][c]=="Location #1") {
        sh_dest.appendRow(rows[r]);
      }
    }
  }
}

Если я удалю содержимое ячейки и заменим его индексами массива, ваши данные будут выглядеть примерно так:

[
["row[0][0]","rows[0][1],"rows[0][2]"],
["row[1][0]","rows[1][1],"rows[1][2]"],
["row[2][0]","rows[2][1],"rows[2][2]"],
["row[3][0]","rows[3][1],"rows[3][2]"]//rows[rows.length-1]
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...