Я пытаюсь сделать эту формулу =iferror(if(match($A2&F$1,arrayformula(Transpose!B$3:B&Transpose!B$1),0),"P"),"")
сценарием для листов Google. По сути, формула запускается во всех остальных столбцах после F и в каждой строке до 2.
Например, в столбце H есть =iferror(if(match($A2&H$1,arrayformula(Transpose!C$3:C&Transpose!C$1),0),"P"),"")
, в столбце J - =iferror(if(match($A2&J$1,arrayformula(Transpose!D$3:D&Transpose!D$1),0),"P"),"")
и так далее. Как я сейчас понимаю, эта формула вставлена в каждую ячейку каждого другого столбца, и, поскольку я добавляю больше данных, мне нужно изменить формулу, чтобы она заняла слишком много времени. Я приложил рабочую книгу, чтобы вы могли видеть, о чем я говорю. Любая помощь будет оценена. Спасибо
https://docs.google.com/spreadsheets/d/1ZBrg4XoeL21mXwn93XT35kgjrE5pqx9cd3xEvfojIXM/edit?usp=sharing
Я пытался
var ss=SpreadsheetApp.getActive().getSheetByName('Transpose')
var Ts=SpreadsheetApp.openById('1ZBrg4XoeL21mXwn93XT35kgjrE5pqx9cd3xEvfojIXM').getSheetByName('Attendance')
var meeting = ss.getRange("B3:B37").getValues();
var targetNames = Ts.getRange("A2:A37").getValues();
var writtingRange = Ts.getRange("F2:F37").getValues();
var updatedUser = targetNames;
var writtingColumn = -1;
var coolMatrix;
for (var i = 0; i < meeting.length; i++) {
var name = meeting[i][0]
for (var j = 0; j < targetNames.length; j++) {
if (targetNames[j][0] == name) {
for (var z = 0; z < writtingRange[0].length; z++) {
if (writtingRange[j][z] == '' && writtingColumn < 0) {
writtingColumn = z;
break;
}
}
writtingRange[j][writtingColumn] = meeting[i][1];
updatedUser[j] = true;
}
}
}
Ts.getRange("F2:F37").setValues(writtingRange);
}
Но это дает мне пробелы, где имена совпадают, и неопределенные, где имена не соответствуют соответствует "undefined", также я знаю, что этот скрипт будет работать только для одного столбца, а не для каждого другого столбца.