首页 > 解决方案 > 谷歌表格互斥数字顺序随机数生成器

问题描述

有点拗口……我目前正在使用下面的脚本在单元格 I6:M6 中生成 1 到 200 之间的随机数。出于我的预期目的,这个脚本有两个问题(这两个问题都不是主要的,但我想要一些“润色”。

问题 1) 不互斥。这是最大的问题,因为五个数字中的每一个都必须是唯一的。它们不太可能会重复,但是当它确实发生时会有些烦人。

问题 2)我完全不知道如何或是否有可能生成这些随机数,然后按数字顺序放入 I6:M6 中,I6 是最小的。

我是一个完全的业余爱好者和 JavaScript(以及任何其他代码),我只是设法从我在其他地方找到的信息拼凑起来,但我对它的工作原理有一个非常模糊的理解。

///////////////////////////////////////

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [ {name:"Roll Dice",functionName:"rollDice"} ];
  sheet.addMenu("Script", entries);
};

function rollDice() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("sheet1 (New)");
    var cell = sheet.getRange("I6");
  cell.setValue( Math.floor((Math.random()*200)+1) );
    var cell = sheet.getRange("J6");
  cell.setValue( Math.floor((Math.random()*200)+1) );
    var cell = sheet.getRange("K6");
  cell.setValue( Math.floor((Math.random()*200)+1) );
    var cell = sheet.getRange("L6");
  cell.setValue( Math.floor((Math.random()*200)+1) );
    var cell = sheet.getRange("M6");
  cell.setValue( Math.floor((Math.random()*200)+1) );

};

///////////////////////////////////////

标签: javascriptgoogle-sheets

解决方案


为什么是脚本?I6 中的这个简单公式应该可以做到:

=TRANSPOSE(SORT(SORTN(SEQUENCE(200),5,0,RANDARRAY(200),1)))

推荐阅读