2

我正在尝试根据背景颜色计算单元格中的值。有人我在网上搜索时得到了一些帮助,我没有得到完整的解决方案。有没有人帮我解决这个问题。我有从在线搜索中获得的示例代码脚本。

此外,我在此处粘贴的脚本正在对值进行分组(例如,如果我在三个单元格中有一个值 A,它应该将值返回为 3,而不是返回 AAA。有人可以帮助我使用脚本来计算值并返回它基于背景颜色

提前致谢,

这是脚本:

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 回答