如何防止随机化公式在工作表中的每次更改时随机化?

问题描述 投票:1回答:1

我有这个可爱的公式:

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

[我以为我可以在更改C1中的值时更改随机事件,但是现在我看到用其他值更新工作表时,这种情况正在不断变化。

如何防止这种情况发生?

我只希望在C1中更改种子时发生随机化。

google-apps-script random google-sheets google-sheets-macros
1个回答
0
投票

尝试在脚本中使用此编辑触发器:

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);
  }  
}

我希望这是您希望通过公式实现的目标。

© www.soinside.com 2019 - 2024. All rights reserved.