确定行单元格中的最低数字

Google Spreadsheet Determine lowest number in a row of cells

本文关键字:数字 单元格      更新时间:2023-09-26

我是新来这个网站的,主要目的是我计划从事编程方面的职业。我在一家工程公司找到了我的第一份工作,他们让我建立一个系统,让他们可以很容易地确定一项工作从提交到完成的时间。我们现在正在使用电子表格文档来完成其中的某些部分。

我希望在谷歌文档中创建一个自定义函数,允许我遍历C行中的值数组,然后将其与函数调用的数字进行比较,将数字与数组中的数字进行比较,并给我哪个是较小的数字。编辑:该函数将在位于同一项目文件中的另一个名为"已解析数据"的表上调用。它的目的是自动归档当前项目的订单号(只是为了组织)我计划实现的所有其他功能将基于此订单号是正确的。

到目前为止,我已经收集了这么多(我正在学习,因为我仍然缺乏经验,所以请原谅我)

{
/**created by Alexander Bickford for use at Double E Company
*sorts through a range of values to determine the lowest next value
*returns lowest determined value of next cell
*/  
//List Of To Be Implemented Functions
// sheet.appendRow 
function setValue(num)
  {
    var ss = SpreadsheetApp.getActiveSpreadsheet('parsed data');
    var ss = ss.getSheets()[0];
    var myRange = ss.getRange("C:C").getValues();
    newValues = [];
    for(i=1;i<=myRange;i++)    //Loop to traverse the C range and find the lowest value.
    {
       if(num<=range[3][i])
       {
       }
       else 
         num = range[3][i];
    } 
    return num;
  }
}

当我在电子表格中调用函数时,我得到一个错误传递说:error: ReferenceError: "SPREADSHEET_ID_GOES_HERE"未定义。(第8行,文件"Code")

Google在顶部预定义了一些函数,看起来像这样:

/**
 * Retrieves all the rows in the active spreadsheet that contain data and logs the
 * values for each row.
 * For more information on using the Spreadsheet API, see
 * https://developers.google.com/apps-script/service_spreadsheet
function readRows() {                       <---Line 8 in the file
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();
  for (var i = 0; i <= numRows - 1; i++) {
    var row = values[i];
    Logger.log(row);
  }
};

 * Adds a custom menu to the active spreadsheet, containing a single menu item
 * for invoking the readRows() function specified above.
 * The onOpen() function, when defined, is automatically invoked whenever the
 * spreadsheet is opened.
 * For more information on using the Spreadsheet API, see
 * https://developers.google.com/apps-script/service_spreadsheet
function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Read Data",
    functionName : "readRows"
  }];
  sheet.addMenu("Script Center Menu", entries);
};
End Code I don't need */ 

我认为它与前面的行有关(我指出了第8行)。有什么想法吗?

下面的代码对我来说很好。

var ss = SpreadsheetApp.getActiveSheet();
var myRange = ss.getRange("C:C").getValues();
newValues = [];
for(i=1;i<=myRange.length;i++)
{
    Logger.log(myRange[i]);   
} 

看看你的代码,似乎你有几个问题。

  1. 你似乎把"表格"answers"电子表格"混淆了,你把"ss"作为变量的多余声明必然会给你带来一些问题。

  2. 您似乎将参数传递给不正确的方法。我在使用Google App脚本时遇到了同样的问题。我花了很多时间在Google的Documentation(你真的应该看一下:https://developers.google.com/apps-script/)上。你似乎犯了和我一样的错误,通过类比来编码。查看Google的样例代码并试图复制一定会给你带来一些麻烦。

一些有用的建议:

  1. 最让你困惑的是结构:电子表格>>表>>范围,在移动到底部之前,你必须明确地处理顶部的。
  2. 从getActiveSpreadsheet()中删除'parsed data'参数,它应该是空的。你想使用的是"getSheetByName("解析过的数据")",并将其传递到一个工作表变量。
  3. 在for循环中,您还需要使用"。方法,或者对工作表对象使用"。getlastrow()"方法来查找工作表中的最后一行。

你的代码可能看起来像这样:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("parsed data");
var endRowNumber = sheet1.getLastRow();
//insert rest of code