Как сохранить формулу рандомизации от рандомизации при каждом изменении листа? - PullRequest
1 голос
/ 26 сентября 2019

У меня есть эта милая формула:

=sort(A1:A416,arrayFormula(randbetween(sign(row(A1:A416)),C1)),true)

Я думал, что смогу изменить случайное событие, когда я изменил значение в C1, но теперь я вижу, что оно постоянно меняется, когда я обновляю лист сдругие значения.

Как я могу предотвратить это?

Я хочу, чтобы случайность происходила только тогда, когда я меняю начальное число в C1.

1 Ответ

0 голосов
/ 27 сентября 2019

Попробуйте использовать этот триггер редактирования в вашем скрипте:

function onEdit(e) {
  if(e.range.getA1Notation() == 'C1') {
    var sheet = e.source.getActiveSheet();
    var firstRow = 1;
    var lastRow = 416;
    var col = 1;
    var seedValue = Number(e.range.getValue());
    if(seedValue > 1) {
      for(var row = firstRow; row < lastRow; row++) {
        var cellValue = Math.ceil(Math.random() * seedValue);
        var cell = sheet.getRange(row, col);
        cell.setValue(cellValue);
      }
    }
    var range = sheet.getRange(firstRow, col, lastRow, 1)
    range.sort(1);
  }  
}

Я надеюсь, что именно этого вы и хотели достичь с помощью своей формулы.

...