2016-03-09 60 views
0

我目前的代码可以通过单个Google工作表搜索索引号,并将匹配的行号分配给一个变量。下面是一个示例:为每个索引指定值匹配

for(i=0;i<values.length; i++){ 
    itemvalue = values[i][column1-1]; 
    codevalue = values[i][column2-1]; 

    if(itemvalue.indexOf("5019")>-1){ 
    row = i+1; itemcode = 5019; indexes.push(i+1) 
    } 
} 

不幸的是,该工作表包含多行包含“5019”的字符串。所以我正在寻找一种方法让indexOf继续搜索并为每个匹配的行号分配一个新变量。因此,如果在行50,51和54处发现“5019”,那么row,row1,row2将被分配给每个行号。

感谢您对此的任何帮助,如果我错过了提供任何信息,请让我知道。

编辑:由于丹尼尔提供的链接,我能够将所有匹配的行号获得一个数组。但我仍然试图弄清楚如何为数组中的每个值分配一个变量,以便我可以获取驻留在行中的单元格的值并将它们相加。

+1

这是否适合您? http://stackoverflow.com/questions/20798477/how-to-find-index-of-all-occurrences-of-an-element-in-array – daniel

+0

使用数组和对象。您的对象将拥有一个属性{row:50} - 将对象推入数组,然后通过循环数组并检查行值是什么来读取数据。 – AntonB

+0

是否有可能看到这将如何工作的例子?我已经阅读了如何创建对象,并且我可以将我需要的行数获取到数组中。 –

回答

0

我找到了我寻求的解决方案。下面是我所做的:

for(i=0;i<values.length; i++){ 
itemvalue = values[i][column1-1]; 
codevalue = values[i][column2-1]; 

if(itemvalue.indexOf("5019")>-1){ 
    row = i+1; itemcode = 5019; indexes.push(i+1) 
} 
for(j=k=0;j<indexes.length; j++){ 
rownumb.push(ss.getRange(indexes[j],qtycol).getValue()); //Get value of the cells using the row numbers from the indexes array 
} 
for(l=0;l<rownumb.length; l++){ 
rowtotal += rownumb[l]; //Adds all the values together 
} 
} 

所以我做了一个for循环来获取细胞的,这是该指数阵列的行中的值,然后做了一个名为“rownumb”持有的单元格值的新阵列。然后我做了另一个for循环,将数组rownumb中的所有值添加到一起,并得到了我正在寻找的内容。