Добавить формулу к функции в редакторе скриптов Google - PullRequest
1 голос
/ 22 июня 2019

Используя существующий код, необходимо добавить динамическую формулу в функцию.

Скрипт предназначен для простого отслеживания времени, запуска / остановки отслеживания времени с помощью кнопок в листах Google.

function setValue(cellName, value {
    SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).setValue(value);
  }

  function getValue(cellName) {
    return SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).getValue();
  }

  function getNextRow() {
    return SpreadsheetApp.getActiveSpreadsheet().getLastRow() + 1;
  }

  function addRecord(a, b, c, d) {
    var row = getNextRow();
    setValue('A' + row, a);
    setValue('B' + row, b);
    setValue('C' + row, c);
    setValue('D' + row, d);
  }

  function punchIn() {
    addRecord(getValue('A1'), new Date(), 'START', (""));
  }

  function punchOut() {
    addRecord(getValue('A1'), new Date(), 'STOP', (""));
  }

В значении D функции punchOut я хочу вычесть время STOP из предыдущего времени START. Теоретически, это должна быть просто ячейка D в текущем ряду минус ячейка D в предыдущем ряду по сравнению с усложнением и поиском времени START с того же дня в предыдущем ряду. Итак, просто D в текущем ряду минус D в предыдущем ряду?

Вот изображение вывода, хотя с ручной формулой в столбце D. снимок экрана

1 Ответ

1 голос
/ 23 июня 2019

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

  • Используйте getActiveRange() для получения активного диапазона.
  • Используйте offset(...), чтобы получить предыдущую строку

Как только вы получите желаемые значения, скажем, value1, value2, просто добавьте строку кода следующим образом:

var result = value2 - value1;

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...