If statement 如果相邻单元格有内容,则从总数中减去

If statement 如果相邻单元格有内容,则从总数中减去,if-statement,google-sheets,sum,array-formulas,google-sheets-query,If Statement,Google Sheets,Sum,Array Formulas,Google Sheets Query,我希望从以下公式得出的总数中减去: 计算单元格E2中内容的出现次数=COUNTIF(B:B,E2) 如果相邻单元格包含任何内容,我想从总数中减去1 例如: B2的内容==E2,C2不为空,从总数中减去1 B3的内容==E2,C3为空 B4的内容==E2,并且C4不是空的,从总数中减去1 最终结果将是=COUNTIF(B:B,E2)-2 在文本中解释这一点似乎有点荒谬,因此这里有一个示例工作表,其中一列表示我希望看到公式的位置,另一列显示预期的输出。从程序上来说,这将是一项非常简单的任务,但在电子

我希望从以下公式得出的总数中减去:

计算单元格E2中内容的出现次数
=COUNTIF(B:B,E2)

如果相邻单元格包含任何内容,我想从总数中减去1

例如: B2的内容==E2,C2不为空,从总数中减去1 B3的内容==E2,C3为空 B4的内容==E2,并且C4不是空的,从总数中减去1

最终结果将是
=COUNTIF(B:B,E2)-2

在文本中解释这一点似乎有点荒谬,因此这里有一个示例工作表,其中一列表示我希望看到公式的位置,另一列显示预期的输出。从程序上来说,这将是一项非常简单的任务,但在电子表格中完成这项任务对我来说是一件新鲜事。我希望这可以做到


此外,列
A
B
的长度可能不同,因此我更喜欢适合列长度的内容。

删除范围D:F

在D2中使用:

=ARRAYFORMULA(QUERY(QUERY({B1:B, 
 IF((B1:B<>C1:C)*(A1:A<>"")*(C1:C=""), 1, 0)}, 
 "select Col1,count(Col1),sum(Col2) 
  where Col1 !='' 
  group by Col1"), 
 "offset 1", 0))
=ARRAYFORMULA(查询({B1:B,
如果((B1:BC1:C)*(A1:A“”)*(C1:C=“”),1,0)},
选择Col1、count(Col1)、sum(Col2)
Col1在哪里!=''
按列分组1“,
“偏移量1”,0)

很好,我不知道您可以在工作表中使用sql类型查询。您能在回答中稍微解释一下这个公式吗?当然,我们使用
=ArrayFormula(IF((B1:BC1:C)*(A1:a“”)*(C1:C=“”),1,0))
直接在查询公式中构造辅助第二列,以利用
group by
子句。将
IF
中使用的乘法想象为
so truetrue=1(1*1*1=1)。然后使用外部
查询
去除内部查询标签OK。什么是
Col1
Col2
?这是
{B2:B,IF((B2:BC2:C)*(A2:A“”)*(C2:C=“”),1,0)}
查询的结果吗?Col1表示花括号{B2:B,…}的左侧,Col2表示函数{…,IF()}的右侧