Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在“上”生成列表;第A页“;从数据上看「;表B“;在Google工作表中使用脚本_Javascript_Google Sheets - Fatal编程技术网

Javascript 如何在“上”生成列表;第A页“;从数据上看「;表B“;在Google工作表中使用脚本

Javascript 如何在“上”生成列表;第A页“;从数据上看「;表B“;在Google工作表中使用脚本,javascript,google-sheets,Javascript,Google Sheets,我在Google Sheets的一张工作表上列出了大约3000个名字、姓氏和其他项目。该表的名称为“数据库”(链接如下) 我想创建一个脚本,从“数据库”中的每列中随机抽取100个条目,并填充另一个名为“结果”的工作表中的单元格 所以,基本上,“结果”中的第1列将从“数据库”中的第1列中获取100个随机结果。“结果”中的第2列将从“数据库”中的第2列中获取100个随机结果。以此类推。理想情况下,可以通过将脚本分配给工作表上的按钮来重新生成,而不是使用每次执行操作时都会创建新结果的公式 最终,我将得

我在Google Sheets的一张工作表上列出了大约3000个名字、姓氏和其他项目。该表的名称为“数据库”(链接如下)

我想创建一个脚本,从“数据库”中的每列中随机抽取100个条目,并填充另一个名为“结果”的工作表中的单元格

所以,基本上,“结果”中的第1列将从“数据库”中的第1列中获取100个随机结果。“结果”中的第2列将从“数据库”中的第2列中获取100个随机结果。以此类推。理想情况下,可以通过将脚本分配给工作表上的按钮来重新生成,而不是使用每次执行操作时都会创建新结果的公式

最终,我将得到大约10列,但我现在使用测试数据只是为了构建结构。这是我正在使用的测试文档的链接

非常感谢你的帮助

您可以尝试以下方法:

先决条件: 应该添加到项目中

//Load LodashGS:
var _ = LodashGS.load();

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var resultSheet = ss.getSheetByName("Results");
  var dBSheet = ss.getSheetByName("Database");

  //Loop all columns in Database Sheet
  for (var col = 1; col <= dBSheet.getLastColumn() ; col++){

    //Generate an array of unique numbers from 2 to the last row number of the Database Sheet
    const uniqRandomNumbers  = _.sampleSize(_.range(2,dBSheet.getLastRow() + 1), 100);
    Logger.log(uniqRandomNumbers);

    var rowValues = [];
    //Get the cell value based on the uniqRandomNumbers as row index, create a 2-d array of row values
    uniqRandomNumbers.forEach(row=>{rowValues.push([dBSheet.getRange(row,col).getValue()]);});

    //Write the row values into the Results Sheet with 100 row entries
    resultSheet.getRange(2,col,100).setValues(rowValues);
    Logger.log(rowValues);
  }

}
//加载LodashGS:
var=LodashGS.load();
函数myFunction(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var resultSheet=ss.getSheetByName(“结果”);
var dBSheet=ss.getSheetByName(“数据库”);
//循环数据库工作表中的所有列
for(var col=1;col{rowValues.push([dBSheet.getRange(row,col.getValue());});
//将行值写入包含100行条目的结果表
结果表.getRange(2,col,100).setValues(rowValues);
Logger.log(行值);
}
}
它的作用是什么? (这是为每列完成的)

  • 根据
    中提供的范围生成一个唯一数字数组。我们将使用这个唯一的数组号作为行索引

  • 根据步骤1中生成的唯一数组编号获取单元格值,并创建行值的二维数组

  • 使用将行值的二维数组写入结果表

  • 样本输出:

    其他参考资料:


    您能提供您为解决问题而编写的代码吗?您好,我不是开发人员,所以我一直在寻找有类似问题的人。这篇文章解决了一个类似的问题,但它只是从数据集中填充了一个单元格。我想填100行。我试着修改剧本,但这不是我自己能弄明白的:非常感谢!这非常有效。另外,我非常感谢您在代码中留下注释,并解释一切是如何工作的。这非常有帮助。再次感谢你的帮助。祝你一切顺利!没问题,很高兴我能帮忙。请有时间阅读此参考资料,谢谢。