我有一个包含两个工作表Master
和Results
的电子表格。 Master
在A列中包含'日期',在B列中包含文字字段'原因'。在Results
中,用户将输入开始日期和结束日期,我需要计算结果数量{{ 1}}介于日期之间,并在“原因”列中包含特定文字。
由于我只使用 Excel 2003 ,我想我只能通过一起使用COUNTIF和AND来实现这一点,但我似乎无法编写正确的公式,任何帮助都将不胜感激。
答案 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中的搜索。
如果您想进行更深入的搜索,可能需要调整第三个条件。