2

背景色に基づいてセル内の値を数えようとしています。完全な解決策が得られないオンライン検索中に、誰かが助けてくれました。誰かがこの問題で私を助けてくれますか? オンライン検索から入手したサンプル コード スクリプトがあります。

また、ここに貼り付けているスクリプトは値をグループ化しています (たとえば、3 つのセルに値 A がある場合、AAA を返す代わりに値を 3 として返す必要があります。誰かが値を数えて返すスクリプトを手伝ってくれますか?背景色に基づいて

前もって感謝します、

スクリプトは次のとおりです。

function sumBackgroundColors(rangeString, color) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var sumRange = s.getRange(rangeString);
var sum = 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 ) {
sum = sum + parseFloat(sumRangeValues[row][col]);

} 
}
}
return sum;
}
4

1 に答える 1

2

キャッシュ機能があるため、カスタム関数を使用しないことをお勧めします(ここで説明します)。

function countBackgroundColors() {
  var rangeString = "A1:A100";
  var color = "green";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getActiveSheet();
  var range = s.getRange(rangeString);
  var count = 0;
  var rangeColors = range.getBackgroundColors();

  for( var i in rangeColors )
    for( var j in rangeColors[i] )
      if( rangeColors[i][j] == color )
        ++count;
  return count;
}
于 2012-05-15T11:41:07.393 に答える