首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向CountColoredCells公式中添加If语句

向CountColoredCells公式中添加If语句
EN

Stack Overflow用户
提问于 2022-09-01 12:59:07
回答 1查看 31关注 0票数 -1

我正在努力计算一个区域中符合“活动”条件的彩色单元格的数量。如果单元格不符合标准(在范围$T9:$BL9中为‘淡灰色3’,在范围$T$2:$BL$2中为“活动”),则不能计算它。如何编辑当前脚本以对此进行调整?

代码语言:javascript
运行
复制
function countColoredCells(countRange,colorRef) {
  var activeRange = SpreadsheetApp.getActiveRange();
  var activeSheet = activeRange.getSheet();
  var formula = activeRange.getFormula();
  
  var rangeA1Notation = formula.match(/\((.*)\,/).pop();
  var range = activeSheet.getRange(rangeA1Notation);
  var bg = range.getBackgrounds();
  var values = range.getValues();
  
  var colorCellA1Notation = formula.match(/\,(.*)\)/).pop();
  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;
};
EN

回答 1

Stack Overflow用户

发布于 2022-09-01 14:29:34

试试这个:

代码语言:javascript
运行
复制
function countColoredCells(countRange,colorRef) {
  const ss = SpreadsheetApp.getActive();
  var activeRange = SpreadsheetApp.getActiveRange();
  var activeSheet = activeRange.getSheet();
  var formula = activeRange.getFormula();
  var rangeA1Notation = formula.match(/\((.*)\,/).pop();
  var range = activeSheet.getRange(rangeA1Notation);
  var bg = range.getBackgrounds();
  var colorCellA1Notation = formula.match(/\,(.*)\)/).pop();
  var colorCell = activeSheet.getRange(colorCellA1Notation);
  var color = colorCell.getBackground();
  var count = 0;
  bg.forEach((r,i) => {
    r.forEach((c,j) => {
      if(c == color) {
        count++;
      }
    })
  })
  return count;
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73569757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档