Поэтому вам вот такой интересный и простой onEdit с хранением в скрипт проперти и со структурой объект всего - объект
function dataToProp() {
const pr = PropertiesService.getScriptProperties();
const ss = SpreadsheetApp.getActive();
const s0 = ss.getSheetByName('Справочник')
.getDataRange()
.getValues()
.map(f => [f[0], f[1]])
const s = s0.slice(1);
let o = {}
l1 = s.length;
l2 = s[0].length;
for (x = 0; x < l2; x++) {
for (y = 0; y < l1; y++) {
o[s0[0][x]] = s.map((f, i) => f[x]).filter(f => f);
};
};
console.log(o);
o = JSON.stringify(o);
pr.setProperty('key', o);
};
function onEdit(e) {
let range = e.range; //ячейка
let sheet = e.source.getActiveSheet(); //лист
if (sheet.getName() == 'Рабочий') {
let row = range.getRow();
let key = e.value; //что ввели в ячейку
if (!key) return;
let column = range.getColumn();
if (row >= 1 && column == 1) {
const pr = PropertiesService.getScriptProperties();
let listdata = pr.getProperty('key')
listdata = JSON.parse(listdata);
let list = listdata[key];
let rule = SpreadsheetApp.newDataValidation().requireValueInList(list).build();
range.offset(0, 1).setDataValidation(rule);
}
}
};
Мало понимаете в скриптах? Базе мы вас научим и не только базе, а и еще действительно пользе :)
🚀 Про наш курс, старт уже на следующей неделе t.me/google_sheets/1685