我需要计算Google表格中具有特定颜色和文字的单元格。 我找到了一个用于计算颜色的单元格的代码,这里是
function countColor(countRange,colorRef) {
var activeRg = SpreadsheetApp.getActiveRange();
var activeSht = SpreadsheetApp.getActiveSheet();
var activeformula = activeRg.getFormula();
var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
var BackGround = activeSht.getRange(colorRefAddress).getBackground();
var countCells = 0;
for (var i = 0; i < backGrounds.length; i++)
for (var k = 0; k < backGrounds[i].length; k++)
if ( backGrounds[i][k] == BackGround )
countCells = countCells + 1;
return countCells;
};
因此Google表格中的公式如下:
=countcolor(Sheet1!A:A,C1)
其中A:A1
是范围,而C1
是具有颜色样本的单元格
我的一个朋友对我有所帮助,并创建了一个用于计算文本和颜色的函数,但应在函数内部键入文本。 这是代码:
function count_Color_and_text_Cells(countRange,colorRef) {
var activeRg = SpreadsheetApp.getActiveRange();
var activeSht = SpreadsheetApp.getActiveSheet();
var activeformula = activeRg.getFormula();
var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
var text = "test" // Text you whant to count
var arrData = activeSht.getRange(countRangeAddress).getDisplayValues()
var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
var BackGround = activeSht.getRange(colorRefAddress).getBackground();
var countCells = 0;
for (var row = 0; row < backGrounds.length; row++)
for (var col = 0; col < backGrounds[row].length; col++)
if ( backGrounds[row][col] == BackGround )
if (arrData[row][col].match(text))
countCells = countCells + 1;
return countCells;
}
我需要做的是在功能中使文本成为标准,这样我就可以选择范围,键入特定的文本并获得结果。期望它看起来像这样:
=countcolor(Sheet1!A:A,"TextSample",C1)
因此它可以计算用户在公式中键入的具有正确颜色和文本的单元格。
谢谢,祝你有美好的一天!
答案 0 :(得分:0)
您可以像这样提供文本作为参数:
function count_Color_and_text_Cells(countRange,text,colorRef) {
不要再次声明text
,即删除var text=''