COUNTIF和AND

时间:2014-07-10 14:54:59

标签: excel-formula excel-2003 countif

我有一个包含两个工作表MasterResults的电子表格。 Master在A列中包含'日期',在B列中包含文字字段'原因'。在Results中,用户将输入开始日期和结束日期,我需要计算结果数量{{ 1}}介于日期之间,并在“原因”列中包含特定文字。

由于我只使用 Excel 2003 ,我想我只能通过一起使用COUNTIF和AND来实现这一点,但我似乎无法编写正确的公式,任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

使用Excel 2003为您提供的两种简单方法:数组公式或帮助列。

[Master]
Date       Reason HelperColumn
2014-01-01 A      0
2014-02-01 B      0
2014-03-01 A      1
2014-04-01 A      1
2014-05-01 B      0
2014-06-01 A      0

[Results]
From:      2014-02-01
To:        2014-05-01
Reason:    A
Count:     2

第一个例子:数组公式

计数公式为:

{=SUM(IF(Master!A2:A7>=B1,1,0)*IF(Master!A2:A7<=B2,1,0)*IF(Master!B2:B7=B3,1,0))}

要使用数组公式,请输入不带花括号的公式,然后按[CTRL] + [SHIFT] + [ENTER]提交公式。更多信息here

第二个示例:帮助列

或者,您可以在主工作表上添加辅助列。如果当前行与搜索条件匹配,则此列将显示1,否则显示0。然后,您可以通过在辅助列上使用常规SUM来获取计数。

辅助列的公式:

=IF(AND(A2>=Results!$B$1;A2<=Results!$B$2;B2=Results!$B$3);1;0)

结果表中的计数:

=SUM(Master!C2:C7)

答案 1 :(得分:0)

@hsan,谢谢你指出这一点。请注意,我的代码是针对Excel 2007 +。

My Masters tab:

Date    Reason
10/07/2014  a
10/07/2014  b
10/07/2014  a
11/07/2014  d
11/07/2014  a
12/07/2014  b
13/07/2014  c


My Results tab:
s.Date  10/07/2014
e.Date  11/07/2014

Search  a

Count   3

s.Date和e.Date是我的开始和结束,搜索是文本搜索的原因(非常简单的1个字符匹配)。

Count字段的公式为:

=COUNTIFS(Master!$A$2:$A$8,">="&B1,Master!$A$2:$A$8,"<="&B2,Master!$B$2:$B$8,Result!B4)

注意我是如何使用countIFS(而不是if)并且我在条件1&amp;中构建日期之间的语法。 2然后过滤条件3中的搜索。

如果您想进行更深入的搜索,可能需要调整第三个条件。