首页 > 解决方案 > 生成位于范围内单元格内的随机值

问题描述

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

我对代码并不陌生,尤其是 JS,但我对使用 Google 的脚本语言很陌生,所以我不完全确定如何去做。

标签: google-apps-scriptgoogle-sheets

解决方案


在做了一些研究之后,我发现当一个单元格被简单地点击时,这似乎是不可能的。为了解决这个问题,我决定传入第二个参数作为触发onEdit 触发器以更改结果的单元格。

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

要使用它,只需输入=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;
}

推荐阅读