Скрипт для копирования данных с одного листа на другой и вставка между ними пустых форматированных строк (googlesheet)
Добрый день Уважаемые знатоки!
Только начинаю изучать AppsScript и мне необходима помощь. Не всё к сожалению иногда понятно... Прошу строго не судить), спасибо...
Имеется таблица с большим количеством листов.
Описание: Лист "Продажи план" содержит данные о выводе людей в часах, каждый день на целый месяц и разделением по должностям и секторам (вид: отдел-должность-часы каждый день-сумма часов). В конце каждой строки считается сумма отработанного времени за месяц. Имеется второй лист "Продажи факт" колонки не отличаются от листа "Продажи план".
Задача: Необходимо из листа "Продажи план" скопировать только заполненные строки с данными по критерию из столбца АТ (критерий прописан формулой в листе "Продажи план" напротив каждой строки - "Yes" or "No") и вставить их друг за другом на лист "Продажи факт" (A6:AL6; A7:AL7 и т.д.). Диапазон данных которые надо скопировать ограничен с столбца А до столбца AL. После этого нужно вставить пустые строки между каждой строкой с данными с форматированием ячеек и заполнением (A:H) как у предыдущей.
Кратко: лист "Продажи факт" поиск значения "Yes" в ячейках AT6:AT685, если условие удовлетворено скопировать данную строку на лист "Продажи факт". Добавить в конце данной строки на листе "Продажи факт" еще одну копию строки но данные в ячейках H:AL должны отсутствовать. Просмотреть все строки на листе "Продажи факт" с подходящим критерием и по тому же принципу их скопировать на лист "Продажи факт".
На чем я остановился (писал не сам, брал код с разных источников и пытался приспособить под свои нужды): копирование не происходит, как вставить еще одну строку пока не смотрел.
function myFillPF() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const srcSheet = ss.getSheetByName("Продажи план");
const tarSheet = ss.getSheetByName("Продажи факт TEST");
const data = srcSheet.getDataRange().getValues().filter(r=>r[46]=='Yes').map(r => [r[0]]);
if (data.length>0){
tarSheet.getRange(tarSheet.getLastRow()+1,1,data.length,1).setValues(data);
srcSheet.getRange("AT6:AT"+srcSheet.getLastRow()).setValue("No");
}
}
Прошу помочь. Спасибо!