Только что столкнулся с нетривиальной проблемой - мне нужно было реализовать множественный выбор формулой в документе Google Spreadsheet.
Объясняю в подробностях: есть колонка с некоторыми значениями (коды, для которых есть четкое соответствие каким-то фамилиям). Задача - в соседней колонке получить соответствующие фамилии.
В Excel это вроде как делается с помощью формул =ВЫБОР или =SELECT или чего-то в этом роде. Мне же приспичило сделать это в онлайновой таблице...
В таблице всех формул https://support.google.com/docs/bin/static.py?hl=ru&topic=25273&page=table.cs я ничего не нашёл.
Однако, роя в правильном направлении - скрипты, я наткнулся на замечательную статью из туториалов самого же Гугла - https://developers.google.com/apps-script/execution_custom_functions
Оказывается, мы можем создать скрипт, а в нем кастомную функцию, которая потом без малейших проблем будет вызыватся в виде формулы!!!
Как говорится "Эврика!"
Дальнейшее оказалось делом техники:
Инструменты - Редактор скриптов
сохраняем скрипт, авторизуем его для исполнения, и пишем что-то вроде:
function GetPartnerByPromocode(param) {
switch (param){
case 'PROMOD': return 'Человек1';break;
case 'PROMOA': return 'Человек2';break;
default: return 'Похоже ошибка!';break;
}
}
Конечно же значения вы подставляете свои. Можно было поиграться ещё с ассоциативным массивом, но я понятия не имею есть ли они в JS и как они там работают.
После чего сохраняем, пробуем выполнить (для проверки на ошибки) и со спокойной совестью используем формулу =GetPartnerByPromoCode(text_or_cell_address) в ячейках - это работает!
Вот так! :)
Объясняю в подробностях: есть колонка с некоторыми значениями (коды, для которых есть четкое соответствие каким-то фамилиям). Задача - в соседней колонке получить соответствующие фамилии.
В Excel это вроде как делается с помощью формул =ВЫБОР или =SELECT или чего-то в этом роде. Мне же приспичило сделать это в онлайновой таблице...
В таблице всех формул https://support.google.com/docs/bin/static.py?hl=ru&topic=25273&page=table.cs я ничего не нашёл.
Однако, роя в правильном направлении - скрипты, я наткнулся на замечательную статью из туториалов самого же Гугла - https://developers.google.com/apps-script/execution_custom_functions
Оказывается, мы можем создать скрипт, а в нем кастомную функцию, которая потом без малейших проблем будет вызыватся в виде формулы!!!
Как говорится "Эврика!"
Дальнейшее оказалось делом техники:
Инструменты - Редактор скриптов
сохраняем скрипт, авторизуем его для исполнения, и пишем что-то вроде:
function GetPartnerByPromocode(param) {
switch (param){
case 'PROMOD': return 'Человек1';break;
case 'PROMOA': return 'Человек2';break;
default: return 'Похоже ошибка!';break;
}
}
Конечно же значения вы подставляете свои. Можно было поиграться ещё с ассоциативным массивом, но я понятия не имею есть ли они в JS и как они там работают.
После чего сохраняем, пробуем выполнить (для проверки на ошибки) и со спокойной совестью используем формулу =GetPartnerByPromoCode(text_or_cell_address) в ячейках - это работает!
Вот так! :)
Комментариев нет:
Отправить комментарий