javascript - Google Apps 脚本从每一行中随机抽取一个单元格

标签 javascript google-apps-script google-sheets

所以我有一张如图所示的表格。 https://docs.google.com/spreadsheets/d/1r2ogg1ldR0CFjOJ6mVObY-WRVipJx_X3pQ0yM2HYEog/edit?usp=sharing

我正在尝试编写一个脚本,遍历范围 A1:D 中的每一行,并选择一个随机单元格放入同一行的 F 列中。

我是 GAP 新手,所以我不确定如何为此编写确切的脚本。这就是我到目前为止所得到的

   function random() {
       var sss = SpreadsheetApp.getActiveSpreadsheet();
       var ss = sss.getSheetByName('Sheet1'); //the sheet that has the data
       var range = ss.getRange('A1:D'); //the range I need
       var data = range.getValues();

       for(var i = ; i < data1.length; i++) { //at this point im just guessing based on online codes
           = Math.floor(Math.random()*(j+1)); //method of randomization
          ss.getRange('the i row of F column').setValue(data[i][1]); //choosing the row that is being used, selecting the first item of the shuffled array
        };
        }

最佳答案

您已经非常接近解决方案了:

function random() {
  var sss = SpreadsheetApp.getActiveSpreadsheet();
  var ss = sss.getSheetByName('Sheet1'); //the sheet that has the data
  var range = ss.getRange(1,1,ss.getLastRow(), 4); //the range you need: 4 columns on all row which are available
  var data = range.getValues();

  for(var i = 0; i < data.length; i++) 
  { 
    var j = Math.floor(Math.random()*(data[i].length)); //method of randomization
    var element = data[i][j]; // The element which is randomizely choose
    ss.getRange(i+1, 6).setValue(element); 
  }
}

我对您的原始代码做了一些修改:

getLastRow() 获取使用的最后一行的位置。否则,您将收集整个工作表大小的数组。

Math.random() 函数乘以行的大小,因此您可以拥有任意数量的列。

关于javascript - Google Apps 脚本从每一行中随机抽取一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756403/

相关文章:

javascript - JS/VueJs/Vuetify - 从 JSON 对象创建树

javascript - 使用名称中的变量值访问 redux 存储

javascript - 使用JavaScript在HTML5中多次加载音频

javascript - 如何使用 google-appscripts 在我的电子邮件中将 google 幻灯片作为附件发送?

javascript - 仅在触发时(而不是在测试时)因 indexOf 导致脚本失败

css - 尝试设置触发器

google-apps-script - 如何在一个谷歌应用程序脚本中访问多个电子表格(不是工作表)?

javascript - react-native-draggable-flatlist 在 ScrollView 中不起作用

javascript - 谷歌脚本上的“数据验证规则限制为 500”错误

google-apps-script - 如何在 Google 表格中创建 "reverse pivot"?