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
должен быть указан в комментарии.