Пользовательская формула Google Sheets пересчитывает весь столбец каждый раз при вводе новых данных - PullRequest
0 голосов
/ 03 мая 2018

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

function INVESTMENT(entry, quantity) {
  var resultArray = [];

  for(row = 0; row < entry.length; row++) {
    resultArray.push(Math.abs(entry[row] * quantity[row]));
  }

  return resultArray;
}

1 Ответ

0 голосов
/ 03 мая 2018

Ваша функция работает в ДИАПАЗОНЕ, поэтому каждый раз, когда что-то в ДИАПАЗОНЕ меняет функцию, будет пересчитываться.

Вы можете переписать свою функцию так, чтобы она работала только с отдельными ячейками:

function INVESTMENT(entry, quantity) {
  return Math.abs(entry * quantity);
}

Затем скопируйте формулу в каждую строку, а не просто располагайте ее в верхней части столбца результатов

=INVESTMENT(A2, B2)

Расчет для RANGE, а не для CELL, может иметь смысл в очень большом листе, но для того, что вы описываете, простая функция, которая работает с CELL, имеет больше смысла.

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