2012-05-14 11 views
0

私は次のスクリプトの問題に直面しています。私はまったくスクリプティングにはあまり苦しんでいませんが、これは私のスクリプトでもありませんが、ここでは値をグループ化した結果が得られています(たとえば、3つのセルに値Aを持つ場合、3として値を返す必要があります。 。誰かがここで値をカウントし、それを事前に値を数えて返す方法

感謝を返し、

ために私を助けることができるスクリプトです:ここでは

function sumBackgroundColors(rangeString, color) { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var s = ss.getActiveSheet(); 
var sumRange = s.getRange(rangeString); 
//var sum = 0; 
var openCount = 0; 
var sumRangeBackground = sumRange.getBackgroundColors(); 
var sumRangeValues = sumRange.getValues(); 

for(var row = 0; row < sumRangeBackground.length; row++) { 
for(var col = 0; col < sumRangeBackground[0].length; col++) { 
if(sumRangeValues[row][col]=="LG M"&& sumRangeBackground[row][col] == color) { 
openCount = openCount + sumRangeValues[row][col]; 
//if(sumRangeBackground[row][col] == color && sumRangeValues[row][col] == 1) { 
// sum = sum + parseFloat(sumRangeValues[row][col]); 

} 
} 
} 
return openCount; 
//return sum; 
} 

答えて

0

はとして検索される値を取る関数であります引数の残りの部分はコメント行に説明されています。

function searchCount(value){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 
    //Get the whole data from activesheet in a 2D array 
    var data = sheet.getDataRange().getValues(); 

    //Initialize counter 
    var count = 0; 

    //Iterate through the array 
    for(var i in data){ 
    for(var j in data[i]){ 
     // if a match found, increament the counter 
     if(value.toString == data[i][j]){ 
     count++; 
     } 
    } 
    } 
    // return the count value 
    return count; 
} 
+0

Waqarの 'value.toString'はおそらく間違っています(括弧がありません)。とにかく、値を解析する必要はありません。なぜなら、 '=='演算子はすでにそうしているからです。値が実際に数値、日付、またはブール値の場合はどうなりますか?解析は私にはあまり意味がありません:) –

0

問題は[COL]がintではないsumRangeValues [行]あなたの例によれば起因openCount = openCount + sumRangeValues[row][col];

にあってもよいです。 int + not an int = ???あなたは、物事の数を維持したい場合はあなたはおそらく、sumRangeValues [行] [COL]ががintた場合でもopenCount = openCount + 1;

にちょうど近道である、代わりにその行を置き換えるためにopenCount ++をしたいですその行はまだあなたが探しているものではありません。スプレッドシート内の3つすべてを検索すると、コードには最初の3つのコードがあり、その行には0 = 0 + 3が実行され、3つの検索結果が見つかりました。あなたは3つを見つけるたびに3つを追加し続けます。

Waqarのコードは基本的にあなたのコードです(驚くほど簡単ですが、同じ方法で繰り返します)。色をチェックしないで、彼はその行の代わりに++を使用します。

関連する問題