在Google表格中选择特定范围内的随机数的脚本

时间:2018-05-28 21:00:00

标签: google-apps-script google-sheets

这是我第一次在Google表格上使用JavaScript,我希望能够从给定范围中获取数字(例如,如果范围的值为1,7,21,41和52,则脚本必须选择这些数字中的任何一个。)

基于特定细胞的值,有四种可能的范围(" F3")。例如,如果单元格F3 =" CTA"然后从Range1中选择一个数字,但如果单元格F3 =" Value Proposition&#34 ;,则从Range2中选择一个随机数。

逻辑顺序为:

function GenerateNumber() {
 if (F3 === "CTA") {
  Pick any number between Range(A1:A200)}
    else if (F3 === "Value Proposition") {
        Pick any number between Range(B1:B200) }
            else if (F3 === "Introduction") {
                Pick any number between Range(C1:C200) }
                    else if (F3 === "Benefit Statement") {
                        Pick any number between Range(D1:D200) }
                            else { "There is no data" } }

我希望我很清楚。不要犹豫,向我询问更多信息。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您应该考虑使用random()方法获取整数随机数,然后使用它来定义收集数据的行的索引。列的索引将由if-else语句定义。

请查看以下内容:



function GenerateNumber() {
  var spreadsheet, sheet, DataNumber, Index
  
  // Reference to the spreadsheet
  spreadsheet = SpreadsheetApp.getActive()
  sheet = spreadsheet.getActiveSheet()
  
  // Defines the number of data in your range (based on your spreadsheet columns A, B and C)
  DataNumber = sheet.getLastRow()
  
  // Return a integer random number between 1 and the number of your data
  Index = Math.floor((Math.random() * DataNumber) + 1)

  if (sheet.getRange("E2").getValue() === "Case 1") {
    // Uses the integer random number to define the row where you want to extract the data
    // Reports the extracted data in F2 cell
    sheet.getRange("F2").setValue(sheet.getRange("A" + Index).getValue())  
    
  } else if (sheet.getRange("E2").getValue() === "Case 2") {
    
    sheet.getRange("F2").setValue(sheet.getRange("B" + Index).getValue())
    
  } else if (sheet.getRange("E2").getValue() === "Case 3") {
    
    sheet.getRange("F2").setValue(sheet.getRange("C" + Index).getValue())
    
  } else {
    
    sheet.getRange("F2").setValue("There is no data")
    
  }
}




This is a screenshot of my spreadheet file