Excel按值计算date范围内的不同值

Description | Invoice No | Invoice Date Company A | INV 1 | 3/1/2017 Company A | INV 2 | 3/1/2017 Company A | INV 3 | 3/1/2017 Company B | INV A | 3/1/2017 Company B | INV A | 3/1/2017 Company B | INV B | 3/1/2017 Company C | INV A | 2/1/2017 Company C | INV B | 3/1/2017 Company C | INV C | 3/1/2017 

我需要根据表格计算每个月的特定公司的发票数量。

公司A = 3

公司B = 2

公司C = 2月3日,2月1日

我最喜欢的是

 =SUM(IF(FREQUENCY(IF(C:C>="3/1/2017",IF(Dates<"4/1/2017",IF(A:A="Company A",IF(B:B<>"",MATCH(B:B,B:B,0)))),ROW(B:B)-MIN(ROW(B:B))+1),1),0)) 

与CTRL + SHIFT + ENTER一起使用

首先,在公式范围内限制范围参考,否则公式将必须计算每个IF块和Row()函数内的整个列。

尝试使用Ctrl + Shift + Enter确认的这些数组公式

三月份:

公司A:

 =SUM(--(FREQUENCY(IF(A2:A10="Company A",IF(MONTH(C2:C10)=3,MATCH(B2:B10,B2:B10,0))),ROW(B2:B10)-ROW(B2)+1)>0)) 

公司B:

 =SUM(--(FREQUENCY(IF(A2:A10="Company B",IF(MONTH(C2:C10)=3,MATCH(B2:B10,B2:B10,0))),ROW(B2:B10)-ROW(B2)+1)>0)) 

公司C:

 =SUM(--(FREQUENCY(IF(A2:A10="Company C",IF(MONTH(C2:C10)=3,MATCH(B2:B10,B2:B10,0))),ROW(B2:B10)-ROW(B2)+1)>0)) 

2月份:

公司A:

 =SUM(--(FREQUENCY(IF(A2:A10="Company A",IF(MONTH(C2:C10)=2,MATCH(B2:B10,B2:B10,0))),ROW(B2:B10)-ROW(B2)+1)>0)) 

公司B:

 =SUM(--(FREQUENCY(IF(A2:A10="Company B",IF(MONTH(C2:C10)=2,MATCH(B2:B10,B2:B10,0))),ROW(B2:B10)-ROW(B2)+1)>0)) 

公司C:

 =SUM(--(FREQUENCY(IF(A2:A10="Company C",IF(MONTH(C2:C10)=2,MATCH(B2:B10,B2:B10,0))),ROW(B2:B10)-ROW(B2)+1)>0)) 

此外,而不是硬编码公司和月标准,在工作表上有两个标准单元格,并在公式中引用它们,以便如果更改条件单元格中的标准,公式将自动更新。

对于月标准,您可以检查月份名称,而不是像上面的公式中使用的月份号码…

对于公司A / March标准

 =SUM(--(FREQUENCY(IF(A2:A10="Company A",IF(TEXT(C2:C10,"mmm")="Mar",MATCH(B2:B10,B2:B10,0))),ROW(B2:B10)-ROW(B2)+1)>0))