【问题标题】:How to count a cell which is green in color in google sheet如何计算谷歌表格中绿色的单元格
【发布时间】:2020-04-30 14:53:02
【问题描述】:

我有一个案例,我需要计算一个单元格在谷歌表中的颜色是否为“绿色”。 我尝试了几个adons,但它们没有用。我正在通过脚本或公式寻找解决方案。

我有大约 4 个绿色值,如下面的附件所示

试过了,但它返回零

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  //define here range of interest
  var range = sheet.getRange("BG4:BO");
  var backgrounds = range.getBackgrounds();
  var counter = 0;
  var green = "00ff00"
  for (var i = 0; i < backgrounds.length; i++){
    if(backgrounds[i]== "#00ff00")
      counter++;
  }
  Logger.log(counter); 
  sheet.getRange(3, 59).setValue(counter);
}

谢谢

【问题讨论】:

  • 您要计算有多少个绿色单元格,还是要将绿色单元格中包含的值相加?
  • 计算绿色的值有多少
  • @ziganotschka 可能是什么问题?

标签: google-sheets google-sheets-formula google-sheets-api google-sheets-macros


【解决方案1】:

您可以使用 getBackgrounds() 方法使用 Google Apps 脚本计算绿色单元格

示例:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  //define here range of interest
  var range = sheet.getRange("A1:A10");
  var backgrounds = range.getBackgrounds();
  var counter = 0;
  var green = "#00ff00";
  for (var i = 0; i < backgrounds.length; i++){
    if(backgrounds[i]== green)
      counter++;
  }
  Logger.log(counter);  
}

更新

如果要在多列上运行该函数,则需要将 2D 背景数组转换为 1D 数组才能运行上述函数。这可以通过flat() 完成。所以:

...
var backgrounds = range.getBackgrounds();
backgrounds = backgrounds.flat();
var counter = 0;
...

【讨论】:

  • 我明白了,这是因为您有一个多列范围,请参阅我更新的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
  • 2023-02-03
  • 2013-02-11
  • 1970-01-01
  • 2021-01-10
相关资源
最近更新 更多