Answers:
请查看我对类似问题的回答是否有帮助。
更新:
我提交给Google Docs脚本库的提交已被接受,您可以安装它以获得所需的功能。
步骤:
现在,您可以在电子表格公式中使用三个附加功能:
sumWhereBackgroundColorIs(color, rangeSpecification)
sumWhereBackgroundColorIsNot(color, rangeSpecification)
getBackgroundColor(rangeSpecification)
请注意,rangeSpecification
参数必须"
在其两边加上引号()。
例如:
=sumWhereBackgroundColorIs("white", "A1:C4")
对具有白色背景的A1:C4范围内的所有单元格的值求和。
请注意,如果您不知道某个单元格的颜色,则可以使用提供的getBackgroundColor
功能来找出颜色。此功能是必需的,因为某些颜色表示为RGB代码(例如,#00ff00
代替green
)。
这就是我的工作方式:
开启Tools
>Script Editor
粘贴下面的代码,保存脚本
返回您的电子表格。与=countColoredCells(A1:Z5,C5)
其中C5
要计数颜色的单元格一起使用。
码:
/**
* @param {range} countRange Range to be evaluated
* @param {range} colorRef Cell with background color to be searched for in countRange
* @return {number}
* @customfunction
*/
function countColoredCells(countRange,colorRef) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formula = activeRange.getFormula();
var rangeA1Notation = formula.match(/\((.*)\,/).pop().trim();
var range = activeSheet.getRange(rangeA1Notation);
var bg = range.getBackgrounds();
var values = range.getValues();
var colorCellA1Notation = formula.match(/\,(.*)\)/).pop().trim();
var colorCell = activeSheet.getRange(colorCellA1Notation);
var color = colorCell.getBackground();
var count = 0;
for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
count=count+1;
return count;
};
代码积分(已更改):http : //igoogledrive.blogspot.lt/2015/11/google-spreadsheet-count-of-colored.html
TypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss
getBackgroundColor()
已被弃用。也许您可以更新代码?