计算满足多个条件的行数

时间:2013-10-07 16:58:57

标签: excel count excel-formula conditional frequency

我正在尝试生成一个表格,显示在任何给定日期任何给定状态中有多少项目的计数。我的结果表有一组Dates向下列A列,列标题是各种状态。带有标题的数据表示例如下所示:

Product | Notice | Assigned | Complete | In Office | In Accounting 
   1    | 5/5/13 |  5/7/13  | 5/9/13   |  5/10/13  |    5/11/13 
   2    | 5/5/13 |  5/6/13  | 5/8/13   |  5/9/13   |    5/10/13
   3    | 5/6/13 |  5/9/13  | 5/10/13  |  5/10/13  |    5/10/13 
   4    | 5/4/13 |  5/5/13  | 5/7/13   |  5/8/13   |    5/9/13 
   5    | 5/7/13 |  5/8/13  | 5/10/13  |  5/11/13  |    5/11/13

如果我的输出表在第一列中包含一组日期,并且状态为标题,我需要计算在给定状态下有多少行并且还没有转换到下一个状态,以便在通知栏,我有一个行数,其中通知日期是< = X AND,其中Assigned,Complete,In Office,In Accounting都大于X.

我使用Sum(if(frequency(if语句让我真的很接近,但我觉得我需要在第二个IF中有一个AND语句,如=SUM(IF(FREQUENCY(IF(AND

这就是我所拥有的不起作用:

=SUM(IF(FREQUENCY(IF(AND(Table1[Assigned]<=A279,Table1[[Complete]:[In Accounting]]<=A279),ROW(Table1[[Complete]:[In Accounting]])),ROW(Table1[[Complete]:[In Accounting]]))>0,1))

如果我取出“AND”部分,这个工作正常,除了我需要它只计算给定状态实际上有一个日期的行,所以如果“已分配”日期为空,我不希望该行计入已分配的列。

这是我希望在结果中看到的一个例子。我列出了每列中的计数以及括号中的相应产品编号。相应的产品编号仅供参考,实际上不在结果表中。

Date | Notice  | Assigned | Complete
 5/6 | 2 (1,3) | 2 (2,4)  |  0
 5/7 | 2 (3,5) | 2 (1,2)  |  1 (4)
 5/8 | 1 (3)   | 2 (1,5)  |  1 (2)

2 个答案:

答案 0 :(得分:3)

好的,假设您在A1:F6中有原始数据,然后在B9中使用第二个表头:在A10:A12中使用D9和行标签,那么您可以在B10中使用此“数组公式”

=SUM((B$2:B$6<=$A10)*(MMULT((C$2:$F$6>$A10)+(C$2:$F$6=""),TRANSPOSE(COLUMN(C$2:$F$6)^0))=COLUMNS(C$2:$F$6)))

CTRL + SHIFT + ENTER 确认并向下复制(见下面的截图)

正如您所见,结果符合您的要求。如果用空格替换日期,它仍然可以使用

MMULT是一种从每行获取单个值的方法,即使您在查看多个列时也是如此。

我使用了单元格引用,因为我认为这更容易,特别是在复制公式并具有缩小范围时.......但是如果需要,可以使用结构化引用

enter image description here

答案 1 :(得分:2)

您是否尝试过使用COUNTIFS根据多个条件进行计数。这里有相当详细的记录:http://office.microsoft.com/en-us/excel-help/countifs-function-HA010047494.aspx(仅限2007+)

基本上,你就像

一样使用它
=COUNTIFS(first_range_to_check, value_you_want_in_first_range, ...)

其中...表示任意数量的对(最多127对),请注意条件是AND连接,所以如果你有两对,第一对和第二对必须为该行返回true计数。