生成位于范围内单元内的随机值

时间:2018-11-06 01:36:29

标签: google-apps-script google-sheets

我正在寻找一个公式脚本,该脚本将在单击单元格(或选中然后运行该脚本)时运行。我想查看脚本本身的范围(例如I2:I35),并从其中一个中随机选择一个值。

我对代码(尤其是JS)并不陌生,但是我对使用Google的脚本语言并不陌生,所以我不确定如何做到这一点。

1 个答案:

答案 0 :(得分:0)

经过一些研究,我发现仅单击一个单元格似乎似乎不可能做到这一点。为了解决这个问题,我决定传入第二个参数作为触发onEdit trigger来更改结果的单元格。

您还需要向此自定义函数添加触发器,以使其正常工作。

要使用此功能,只需在功能文本区域或单元格本身中输入=RANDOMITEM(cell_to_edit, beginning_cell:ending_cell)

示例:=RANDOMITEM(A1, B1:B10)将使用A1作为触发单元格,以便在对其进行编辑时会从单元格B1-B10中选择一个随机项

/**
 * Picks a random value from a range of cells.
 *
 * @param {number} editCell The cell which will be used as the trigger.
 * @param {number} itemRange The cells to be picked from.
 * @return The random value from the range of cells.
 * @customfunction
 */
function RANDOMITEM(editCell,itemRange) {
  var itemArray = [];
  for (var i = 0; i < itemRange.length; i++) {
    itemArray.push(itemRange[i]);
  };
  var result = itemArray[Math.floor(Math.random()*itemArray.length)];

  return result;
}