我有一个包含两个工作表( Master和Results )的电子表格。Master包含A列中的“日期”和B列中的“原因”。在Results中,用户将输入一个开始日期和结束日期,我需要计算在日期之间的Master中的结果数,并且在“原因”列中有特定的文本。
由于我只使用Excel 2003,我认为我只能通过使用COUNTIF和一起来实现这一点,但我似乎无法写出正确的公式,任何帮助都将不胜感激。
发布于 2014-07-10 15:35:01
使用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键提交公式。更多信息,这里。
第二个示例:助手列
或者,您可以在母版表上添加一个辅助列。如果当前行与搜索条件匹配,则此列将显示1,否则为0。然后,您可以通过在helper列上使用常规SUM来获取计数。
助手列的公式:
=IF(AND(A2>=Results!$B$1;A2<=Results!$B$2;B2=Results!$B$3);1;0)至于结果表中的数字:
=SUM(Master!C2:C7)发布于 2014-07-10 15:20:23
@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 3s.Date和e.Date是我的开始和结尾,搜索是文本搜索的原因(非常简单的1字符匹配)。
计数字段的公式是:
=COUNTIFS(Master!$A$2:$A$8,">="&B1,Master!$A$2:$A$8,"<="&B2,Master!$B$2:$B$8,Result!B4)注意我是如何使用countIFS (而不是if)的,我在条件1&2中构造日期间语法,然后在条件3中对搜索进行过滤。
如果要进行更深入的搜索,可能需要调整第三个条件。
https://stackoverflow.com/questions/24679804
复制相似问题