Google sheets 计数每行具有相同背景颜色的单元格数

Google sheets 计数每行具有相同背景颜色的单元格数,google-sheets,Google Sheets,我使用的是谷歌电子表格,里面有来自谷歌表单的回复。现在,我有一个电子表格,可以通过将单元格的值与每列的顶部单元格进行比较(使用条件格式),自动为包含“错误”响应的单元格的背景着色。对于从CF到CH的CF列,我想设置为“分数”部分 通过上图,我已经手动说明了我的最终目标: 我希望能够为每一行计算具有特定背景颜色的单元格(本例中为浅红色1[#de6666]),并在列CH中的相应单元格中输出数字。从这里开始,我计划用这个数字来计算原始分数&通过与问题总数进行比较得到的百分比分数 我做了一些搜索,希

我使用的是谷歌电子表格,里面有来自谷歌表单的回复。现在,我有一个电子表格,可以通过将单元格的值与每列的顶部单元格进行比较(使用条件格式),自动为包含“错误”响应的单元格的背景着色。对于从CF到CH的CF列,我想设置为“分数”部分


通过上图,我已经手动说明了我的最终目标:
我希望能够为每一行计算具有特定背景颜色的单元格(本例中为浅红色1[#de6666]),并在列CH中的相应单元格中输出数字。从这里开始,我计划用这个数字来计算原始分数&通过与问题总数进行比较得到的百分比分数



我做了一些搜索,希望找到一个已经回答过的类似问题,可能对我的情况有所帮助,并找到了这两个:&


现在,我对编码技术一点也不熟练,如果我理解不正确或者需要额外的帮助,我想请你耐心对待我我的问题是,有没有办法调整它们,使其达到我想要的效果?还是需要一个全新的自定义函数?

我遇到了同样的问题,这是我的解决方案,适合您的需要。 它不是完全通用的,但只要你改变范围,以满足你的需要,它应该工作得很好。 我尽了最大的努力来解释那些让我困惑的部分,这样你可以在需要的时候调整它。 祝你好运,希望这有帮助

function countbackgrounds(){
  var book = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = book.getActiveSheet();
  var lastRow = sheet.getLastRow();
  var cellColors = sheet.getRange(4, 1, lastRow-3, 57).getBackgrounds();//(startrow, startcolumn,numRows,numCols)
  /*since you want all rows and columns before CF:CH, since CF is column 58, you  want 57 columns.
  //to exclude your headers you want to start on a certain row, 
  //be mindful of which row number you are starting on, it looks to me like 4, 
  //so subtract 'startrow-1' from 'lastRow' so you code doesnt continue past your entries. */
  var colorY = "#de6666"; 
  var count = 0;
  for(var i = 0; i < cellColors.length; i++) {
    var thisRow = sheet.getRange(i+4, 60 ); //get output cell for this row in CH
    /*note: 'i' is an index number within the loop not the row number, if you are starting at another row 
    //you will need to change this, just add the 'startrow' number */
    for(var j = 0; j < cellColors[0].length ; j++) { 
      if(cellColors[i][j] == colorY) { 
        count = count + 1;
      };//end if statement
    };//end for each cell in a row 
    thisRow.setValue(count); 
    count = 0;//reset count to 0 before next row
  };//end for each row
};
函数countbackgrounds(){
var book=SpreadsheetApp.getActiveSpreadsheet();
var sheet=book.getActiveSheet();
var lastRow=sheet.getLastRow();
var cellColors=sheet.getRange(4,1,lastRow-3,57).getBackgrounds();/(startrow,startcolumn,numRows,numCols)
/*因为您需要CF:CH之前的所有行和列,因为CF是第58列,所以您需要57列。
//要排除要从某一行开始的标题,
//注意你从哪一行开始,在我看来是4,
//因此,从“lastRow”中减去“startrow-1”,这样代码就不会在输入之后继续*/
var colorY=“#de6666”;
var计数=0;
对于(var i=0;i