"сырые" данные у нас на листе data там таблица с заголовками группы и процессами внутри
Задача такая - сделать "плоскую таблицу" т.е. просто чтобы каждому процессу присвоилась группа.(выложил на страницу "что хочу")
идея была взять массив с группами и подставить еще раз название группы если там пусто, а потом как то построчно их скопировать, но что то не выходит
помогите теж-та
Цитата
var groups = []; for (var i = 1; i <= 10; i++) { //for (var c = 0; c < 10; c++) var grValues = srcSheet.getRange(1+i,1,1,1).getValues(); var grUpValues = srcSheet.getRange(0+i,1,1,1).getValues(); Logger.log(grValues[i,0]); let newvalue = grUpValues[i,0]; Logger.log(newvalue); let c = 0 if (grValues[i,0] == "") { grValues[i,0] = newvalue;
"сырые" данные у нас на листе data там таблица с заголовками группы и процессами внутри
Задача такая - сделать "плоскую таблицу" т.е. просто чтобы каждому процессу присвоилась группа.(выложил на страницу "что хочу")
идея была взять массив с группами и подставить еще раз название группы если там пусто, а потом как то построчно их скопировать, но что то не выходит
помогите теж-та
Цитата
var groups = []; for (var i = 1; i <= 10; i++) { //for (var c = 0; c < 10; c++) var grValues = srcSheet.getRange(1+i,1,1,1).getValues(); var grUpValues = srcSheet.getRange(0+i,1,1,1).getValues(); Logger.log(grValues[i,0]); let newvalue = grUpValues[i,0]; Logger.log(newvalue); let c = 0 if (grValues[i,0] == "") { grValues[i,0] = newvalue;
[/vba] И, если дальше нужны только значения без формулы, то сделайте на диапазоне, занимаемом результатом этой формулы, соответствующий копипаст со специальной вставкой "только значения".
Формула для ячейки A2 листа "что хочу" (ячейки вправо и вниз от A2 должны быть свободны): [vba]
[/vba] И, если дальше нужны только значения без формулы, то сделайте на диапазоне, занимаемом результатом этой формулы, соответствующий копипаст со специальной вставкой "только значения".Gustav
возможно ли это сделать в app script? т.е.я по факту не хочу выгружать данные на отдельный лист, а мне нужно массив такого вида, а потом я его вставлю в другой скрипт
излишнее цитирование удалено Спасибо за ответ но!
возможно ли это сделать в app script? т.е.я по факту не хочу выгружать данные на отдельный лист, а мне нужно массив такого вида, а потом я его вставлю в другой скриптyurakhl
Сообщение отредактировал Pelena - Среда, 04.09.2024, 18:43
function getRangeByAddr(p_addr) { const address = String(p_addr).split('!'); const ss = SpreadsheetApp.getActive(); const sheet = ss.getSheetByName(address[0]); return sheet.getRange(address[1]); }
function fillLeftTitles(p_range) { const values = p_range.getValues(); const filtered = values.filter(v => v[0] || v[1]); filtered.forEach((v, i, a) => { if (!v[0]) v[0] = a[i-1][0] }); return filtered.filter(v => v[1]); }
[/vba] После вставки кода в свой проект выполните команду ПКМ "Форматировать документ" (или Shift+Alt+F), чтобы отступы в строках появились (а то движок форума их съедает).
function getRangeByAddr(p_addr) { const address = String(p_addr).split('!'); const ss = SpreadsheetApp.getActive(); const sheet = ss.getSheetByName(address[0]); return sheet.getRange(address[1]); }
function fillLeftTitles(p_range) { const values = p_range.getValues(); const filtered = values.filter(v => v[0] || v[1]); filtered.forEach((v, i, a) => { if (!v[0]) v[0] = a[i-1][0] }); return filtered.filter(v => v[1]); }
[/vba] После вставки кода в свой проект выполните команду ПКМ "Форматировать документ" (или Shift+Alt+F), чтобы отступы в строках появились (а то движок форума их съедает).Gustav