Встроенная функция пользовательских таблиц Google

У меня есть следующая настраиваемая функция в таблицах Google. Я пытался вызвать встроенную функцию «ТЕКСТ» в своей настраиваемой функции, но это не увенчалось успехом. Листы Google предложат «неизвестную» функцию «ТЕКСТ». Есть ли решение для этого?

function NextMonth(StockTradeDate) {
  var DeltaDate;
  if (**TEXT**(StockTradeDate,"mmm") = "JAN" ) {
  DeltaDate = 30;
      }
  return DATEVALUE(StockTradeDate) + 31;    
}

person Leon Lai    schedule 07.05.2017    source источник


Ответы (2)


Попробуйте использовать методы даты javascript (как показано ниже), чтобы указать дату и условия, которые вам нужны. Не удалось найти документацию, которая поддерживает вызовы встроенных функций Таблиц из функции скрипта приложений. Поддерживается Javascript.

function NEXTMONTH(StockTradeDate) {

  var DeltaDate

    if (StockTradeDate.getMonth() === 0 ) { //Jan:0  Feb:1 ... Dec:11 these will need more conditionals. 
    DeltaDate = 30;
    }

  var date2 = new Date(StockTradeDate.valueOf()+ DeltaDate*24*60*60*1000)
                                   // valueOf() is millisec time since 1/1/1970
  return date2
}

Если вам нужна дополнительная информация о методах дат и их реализации, у w3schools есть эффективный справочник.

person Nathan Brown    schedule 07.05.2017

Скрипт Google Apps имеет библиотеку утилит, которая включает метод formatDate.

Utilities.formatDate(date, timeZone, format)

Подробнее см. https://developers.google.com/apps-script/reference/utilities/utilities#formatdatedate-timezone-format

Стоит сказать, что в Google Таблицах невозможно вызвать встроенную функцию внутри скрипта. Если такая услуга, как Utilities, не включает функции, которые вы ищете, то альтернативой является создание собственной версии, заимствование ее из библиотеки, проекта с открытым исходным кодом или любого другого места.

Я попытался использовать библиотеку функций электронных таблиц от Ethercalc и поделился об этом в моем ответе на Есть ли способ оценить формулу, хранящуюся в ячейке?

person Rubén    schedule 14.05.2017
comment
Вы случайно не знаете, почему нет возможности вызвать встроенную функцию из сценария? Есть ли причина безопасности? Невозможность сделать это действительно подрывает его полезность. (Я пытался вызвать mround и gcd) - person kfmfe04; 02.09.2020
comment
@ kfmfe04 Ответить на это могут только инженеры Google. - person Rubén; 02.09.2020