google-apps-script
Создание пользовательской функции для Google Таблиц
Поиск…
Вступление
Пользовательская функция в документах google привязана к определенному документу (и, следовательно, может использоваться только в этом документе).
Поэтому он должен быть создан с помощью редактирования этого документа (Инструменты -> Редактор сценариев). После сохранения его можно использовать как любую другую формулу регулярных таблиц.
Стандартная гравитационная настраиваемая постоянная
Эта функция возвращает стандартную константу силы тяжести в указанных единицах ускорения (1 для см / с², 2 для ft / s², 3 для м / с²)
/**
* Returns the standard gravity constant in the specified acceleration units
* Values taken from https://en.wikipedia.org/wiki/Standard_gravity on July 24, 2016.
*
* @param {number} input 1 for cm/s², 2 for ft/s², 3 for m/s²
*
* @customfunction
*/
function sg(units_key) {
var value;
switch(units_key) {
case 1:
value = 980.665;
break;
case 2:
value = 32.1740;
break;
case 3:
value = 9.80665;
break;
default:
throw new Error('Must to specify 1, 2 or 3');
}
return value;
}
Чтобы использовать эту функцию, ее необходимо привязать к электронной таблице с помощью редактора сценариев (Tools -> Script editor ...). Как только функция добавлена, ее можно использовать как любую другую функцию профайла google, вызывая функцию в формуле ячейки.
Обратите внимание, как функция отображается в автозаполнении при вводе в формулу. Это связано с многострочным комментарием над объявлением функции, которое используется для описания функции, аналогичной JSDoc и Javadoc. Чтобы формула отображалась в автозаполнении, тег @customfunction должен быть указан в комментарии.
Основной пример
Чтобы избежать неприглядных ошибок #DIV/0 в электронной таблице, можно использовать настраиваемую функцию.
/**
* Divides n by d unless d is zero, in which case, it returns
* the given symbol.
*
* @param {n} number The numerator
* @param {d} number The divisor
* @param {symbol} string The symbol to display if `d == 0`
* @return {number or string} The result of division or the given symbol
*
* @customfunction
*/
function zeroSafeDivide(n, d, symbol) {
if (d == 0)
return symbol;
else
return n / d;
}
Чтобы использовать эту функцию, ее необходимо привязать к электронной таблице с помощью редактора сценариев ( Tools -> Script editor ... ). Как только функция добавлена, ее можно использовать как любую другую функцию профайла google, вызывая функцию в формуле ячейки.
Обратите внимание, как функция отображается в автозаполнении при вводе в формулу. Это связано с многострочным комментарием над объявлением функции, которое используется для описания функции, аналогичной JSDoc и Javadoc. Чтобы формула отображалась в автозаполнении, тег @customfunction должен быть указан в комментарии.
