Я пытаюсь, чтобы скрипт (листы Google) (листы Google) "Info Pull" отображал / скрывал строки на основе содержимого столбца C.
В настоящее время я выполняю следующую формулу в столбце C:
=if(or(len(H47)>0,len(I47)>0,len(J47)>0,len(K47)>0),"unhide","hide")
, который производит либо «скрыть», либо «показать» в зависимости от того, возвращают ли ячейки H, I, J и K 47 значение.
Если какая-либо из вышеупомянутых ячееквозвращая значение, соответствующая ячейка в столбце C превращается в «unhide» и наоборот, если все ячейки не возвращают значения.
Я пытался заставить этот скрипт скрывать / показывать строки, основанные на содержимом столбца C, однако скрипт работает только частично.
Если я активно наберу 'hide' в ячейку C, строка будет скрыта.Однако, если я вставлю 10 рядов 'hide' в ячейки 10 C, будет скрываться только первый ряд.Аналогично, сценарий не переоценивает и скрывает / скрывает на основании изменяющихся результатов формулы IF.Если я депопулирую ячейку H47, поворачивая C47, чтобы скрыть, ячейка не скрывается.
Кроме того, если я установлю для ячейки A1 значение 'hide' и вставлю '= $ A $ 1' в группу ячеек в столбце C, будет скрываться только первая ячейка в группе, и она не будет отображаться, если яустановите A1 в «показать».Я думаю, что это может иметь какое-то отношение к моему триггеру, но я относительно плохо знаком со сценариями и не уверен.
function onEdit(e) {
hideAndShowRows(e);
}
function hideAndShowRows(e) {
var sheetsToWatch = ['Info Pull'];
var columnToWatch = 3;
var sheet = e.range.getSheet();
if (sheetsToWatch.indexOf(sheet.getName()) < 0) {
return;
}
var editedRow = e.range.getRow();
var cellToWatch = sheet.getRange(editedRow, columnToWatch);
if (cellToWatch.getValue().toLowerCase() === 'hide') {
sheet.hideRows(editedRow);
}
if (cellToWatch.getValue().toLowerCase() === 'unhide') {
sheet.showRows(editedRow);
}
}
Я хотел бы, чтобы ячейки скрывали / отображали, основываясь на том, находится ли формула в столбце или нетC возвращает скрыть / показать.