If statement 如何在google工作表中使用基于其他单元格值的背景色计数来计算IF或SUIF

If statement 如何在google工作表中使用基于其他单元格值的背景色计数来计算IF或SUIF,if-statement,google-apps-script,google-sheets,google-sheets-formula,custom-function,If Statement,Google Apps Script,Google Sheets,Google Sheets Formula,Custom Function,我有谷歌工作表,我可以在这个插件的帮助下计算工作表中相同背景颜色的列“” 现在我想在这里添加条件,我只想在B列为空时计算背景色。我该怎么做 这就是我现在拥有的 这就是我想要的 将此脚本粘贴到脚本编辑器中并保存 function countBackGroudIf(range, reference, colorColumn, conditionColumn, condition) { var sheet, color, colors, values; sheet = Spreadsheet

我有谷歌工作表,我可以在这个插件的帮助下计算工作表中相同背景颜色的列“”

现在我想在这里添加条件,我只想在B列为空时计算背景色。我该怎么做

这就是我现在拥有的

这就是我想要的


将此脚本粘贴到脚本编辑器中并保存

function countBackGroudIf(range, reference, colorColumn, conditionColumn, condition) {
  var sheet, color, colors, values;
  sheet = SpreadsheetApp.getActive().getActiveSheet()
  color = sheet.getRange(reference).getBackground();
  colors = sheet.getRange(range).getBackgrounds().map(function (v) {
    return v[colorColumn-1]
  });
  values = sheet.getRange(range).getValues().map(function (v) {
    return v[conditionColumn-1]
  });
  return values.filter(function (el, ind) {
      return el === condition && colors[ind] === color;
  }).length
}
然后在你的电子表格中试试这个公式

=countBackGroudIf("A2:B20", "A3", 1, 2,)
看看这样行不行

仅当B列为空时计数背景色

如果fx:

=IF(COUNTA(B2:B)=0, COUNTBACKGROUNDCOLOR("A2:A9", "A2", A2:A9), "pending")


您好,谢谢您的帮助,但它仅在b列为空时显示值,如果b列有任何值,则其仅显示空白单元格,如上图所示,请帮助我解决此问题。对不起,我认为这是一个误解。我的问题意味着仅计算A列中b列为空的颜色。不意味着B列全部为空。像上面在我的图片中一样,我在第二张图片中发布了3种颜色,因为它们是B列中的空值。希望你们现在明白了。我的意思是,如果B列的单元格前面有“完成”值,就不要从A列中计算单元格。谢谢你们的帮助,我只是从最后一列中删除了A2:A9,并根据需要删除了它“=COUNTBACKGROUNDCOLOR(“A2:A”,“A2”)-COUNTIF(B2:B,“完成”)”再次感谢,当我在原始数据表中应用它时,它并没有按照我的需要工作。我有待处理发票的数据,因此我对重复的发票条目使用条件格式。现在我们可以使用bg颜色计算重复条目。当我们支付发票时,我们在下一个B列中标记“完成”,我只希望这个公式只计算仍然未决的重复条目。我们将B列留空,仅在支付发票时输入值“完成”。所以上面的方法计算了所有以前的数据,所以我用这个公式得到了错误的数字。希望你明白我的意思。衷心感谢你的帮助。