首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用1个输入获取同一行单元格的值?

如何使用1个输入获取同一行单元格的值?
EN

Stack Overflow用户
提问于 2017-10-17 02:10:12
回答 2查看 62关注 0票数 0

目前,我的函数如下所示:

代码语言:javascript
运行
复制
function myFunction(value1, value2, value3, value4, value5, value6)

基本上,value1始终在A列中,但在行之间移动。值2-6始终是彼此右侧的1个单元格。例如,value1=A1,意思是value2=B1、value3=B3等或value3=A5、value2=B5等。

我基本上只希望我的输入是第一列,并且我的程序知道读取2-6的值,如下所示:

代码语言:javascript
运行
复制
myFunction(value1) 

我怎样才能做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2017-10-17 03:09:26

下面的内容应该是非常清晰和有效的。至少它是有效的。请注意,特别是对于像这样的简单模式(一行中的所有单元格),您应该首先定义范围,然后在数组中一次选取这些值。一次选取一个单元格的值明显要慢得多。

代码语言:javascript
运行
复制
function myFunction( value1 )
{
  var cell1 = SpreadsheetApp.getActiveSheet().getRange(value1);

// myFunction("A1") is the same as following:
//cell1 = SpreadsheetApp.getActiveSheet().getRange("A1");

// Define the value here, if it is fixed. 
//Otherwise in the function parameters
var columnCount = 6;

// Define the range to get the values from. Parameters: 
// Starting row of the range : row of Cell1
// Starting column of the range : column of cell1 
// Number of rows = 1 
// And the number of columns we wanted
var values = SpreadsheetApp.getActiveSheet()
                         .getRange( cell1.getRow() , cell1.getColumn() , 1 , columnCount)
                         .getValues();

//  var values == [[ value, value, value, value, value, value ]]
//  so actually values[0] is what you requested, the values from A1 to F1

// Now if you want to, for example sum up the values
// You just iterate through the values[0]

var sum = Number(0);
for ( var i = 0; i < values[0].length; i++ )
{
 var cellValue = values[0][i]; 

 sum += Number(cellValue);
}

return sum; 
}

请记住,当您在电子表格单元格中调用函数时,不能仅通过单击单元格来添加参数,因为这将导致:=myFunction( A1 ) -这样,A1 add将使用单元格A1的值作为参数。

在调用函数时需要添加引号,就像这样:=myFunction("A1") -That使用单元格作为参数的方式。

票数 0
EN

Stack Overflow用户

发布于 2017-10-17 08:05:33

我猜value1不是一个单元格范围,因为谷歌内置的Spreadsheet Service已经为getRange(row, column)提供了getRange().getA1Notation()Range类中的其他内容。

听起来您想让脚本在column A中搜索argument value1并返回找到的行数据?

代码语言:javascript
运行
复制
function getValueRow (value1) {
  var sh = SpreadsheetApp.getActive().getSheets()[1];
  // Get each cell value in column "A" and flatten for indexOf() use
  var bound_col = sh.getRange(1, 1, sh.getLastRow()).getValues().join().split(",");
  // Compare value1 to column "A" data to find its row
  // `indexOf()` returns the index of the first match
  var argument_row = bound_col.indexOf(value1);

  if (argument_row != -1) { 
    // Get the row data of value1 from column "A" to column "F"
    var row_data = sh.getRange((argument_row + 1), 1, 1, 6).getValues();

    Logger.log("%s is in row %s", value1, (argument_row + 1));
    Logger.log("The row_data is: %s", row_data);

  } else {
    Logger.log("Can not find %s in column A", value1);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46776550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档