2017-04-15 179 views
1
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 

我需要根據表格計算每月特定公司的發票數量的不同計數。Excel按日期範圍計算日期範圍內的不同值

公司A = 3

公司B = 2

公司C = 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

+0

廣東話您使用[COUNTIF ](https://support.office.com/en-gb/article/COUNTIF-function-e0de10c6-f885-4e71-abb4-1f464816df34)功能? – Wolfie

+0

如果我想得到不同的值,我不能使用countif。公司B的示例我想返回2而不是3,因爲有INV A的副本。 – Cody

回答

1

首先,將公式範圍內的參考範圍限制爲否則公式將必須計算每個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,以便如果更改條件單元格中的條件,則公式將自動更新。

月分標準,你可以查詢當月的名字,而不是如上面的公式是這樣使用的月份數...

對於公司A /月的標準

=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)) 
+0

要設置日期範圍而不是使用MONTH = 3,我可以將其設置爲一個範圍嗎? 3月可能會有多年,所以會重疊。上面的代碼有效,但是當我將其更改爲> = 2017年3月1日並添加另一個IF <2017/4/2017時,它不再起作用。 – Cody

+0

我意識到你不能使用IF(C2 <4/1/2017),因爲它分開(4/1)/ 2017年......但它在IF(C2> = 3/1/2017)時起作用。我必須改爲IF(C2 Cody