Я относительно новичок в скрипте приложений Google и медленно работаю над созданием скрипта. Пожалуйста, если вы дадите ответ, постарайтесь, чтобы ответ был как можно более простым, чтобы я мог понять, что происходит. Что я пытаюсь сделать.
- Наши администраторы должны выполнить 8 этапов процесса оценки для каждого учителя в здании, и я пытаюсь создать электронную таблицу, которая будет отслеживать его на основе данных, отправленных через форму Google.
I Копирую первые пять столбцов последней строки представленных данных на листе ответов формы на лист отслеживания. (Возможно, этого не потребуется делать после того, как я все это выясню.) Данные включают метку времени, фамилию, имя, дату, этап.
Здесь все усложняется. Я хочу сравнить фамилию импортированных данных с фамилией листа трекера. Если фамилии нет, добавьте ее в конец списка и укажите дату в строке как соответствующий этап сопоставления. Если есть фамилия, укажите дату в той же строке, соответствующей стадии сопоставления.
В приведенном ниже примере видно, что выбрана фамилия Смит. Поскольку Смит находится в списке, укажите дату 01.01.2014 в столбце «Прохождение 2». По мере того, как администраторы продолжают процесс оценки, в список будут добавляться другие учителя, и он будет расти вправо, заполняя даты, в которые была проведена эта часть оценки.
Данные в листе трекера
Administrator Teacher PreEval Walkthrough1 Walkthrough2
Brown 10/2/2013 10/15/2013 11/15/2103
Smith 10/2/2013 10/16/2013
Korytoski 10/5/2013 10/17/2013
Reddick 10/15/2013 10/17/2013
ДАННЫЕ, полученные из электронной таблицы ответов на форму
11/10/2013 20:08:34 Smith Kim 1/1/2014 Walkthrough2
Код
function copyLastRowtoTracker() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = SpreadsheetApp.getActiveSheet();
var lastRow = sh.getLastRow()
var lastCol = sh.getLastColumn();
var name = sh.getRange(lastRow,1,1,5);
var tracker = ss.getSheetByName('Tracker');
ss.setActiveSheet(ss.getSheets()[2]);
var sht = SpreadsheetApp.getActiveSheet();
var lastRowTracker = tracker.getLastRow()
name.copyValuesToRange(tracker,1,5,lastRowTracker+3,lastRowTracker+3);
var walkname = sht.getRange(lastRowTracker + 3, 2).getValue();
var date = sht.getRange(lastRowTracker + 3, 4).getValue();
var stage = sht.getRange(lastRowTracker + 3, 5).getValue();
var teachernamesdata = tracker.getRange(2, 2, lastRowTracker, 1).getValues();
for(var i = 0; i < teachernamesdata.length; i++){
var teachname = teachernamesdata[i];
if(teachname == walkname) then copy date to cell in same row as teachname with
corresponding stage
if(teachname != walkname) then add walkname to end of list and copy date to the cell in
the same row with corresponding stage
Помните, что я новичок в этом, когда вы публикуете ответы с кодом. Я знаю, что некоторые вещи, которые я сделал, вероятно, неэффективны и неправильны, но я учусь.