2014-02-19 29 views
0

我有一个包含销售日期和销售类型代码的销售数据列表。我试图用COUNTIFS来计算每个月期间特定类型的销售量。使用月份和字母作为标准的Excel Countif

因此,例如:

Date.     Sales Type Code 
10/01/2014.     S 
12/01/2014.     S 
15/01/2014.     O 
18/01/2014.     S 
02/02/2014.     O 
08/02/2014.     S 

能给我下面的结果:

Code S 

January -  3  
February -  1 

Code O 

January -  1 
February -  1 

我有公式

COUNTIFS('SALES LEDGER'!A:A,F2,'SALES LEDGER'!C:C,"<"&EOMONTH('MONTH Sales by Sales Type'!$C$1,0)+1) 

其中A:是的销售类型列表代码,F2是我想要计算的代码,C:C是日期列表,C1是我想要计算的月份的第一个月(即01/01/2014)。

这工作正常1月,给我预期的结果。但是,当我将C1更改为01/02/2014时,它将1月份的合计在一起,而不仅仅是2月份。

如果有人有任何建议,将不胜感激!

感谢

+1

欢迎StackOverflow的是,Excel的?或者你想在其他格式/语言程序? – Llopis

+1

@Llopis是的,这很好 - 抱歉应该说! – Textiled

+0

您是否期望在Excel公式中使用您的解决方案?或者只是在这个公式中处理这个问题。或与另一个编程语言的脚本来做到这一点? – Llopis

回答

2

COUNTIFS公式指定的结束日期,但没有开始日期,如果你要算一个特定月份和年份(基于C1),你需要另一个标准指定使用C1的开始日期,即

=COUNTIFS('SALES LEDGER'!A:A,F2,'SALES LEDGER'!C:C,"<"&EOMONTH('MONTH Sales by Sales Type'!$C$1,0)+1,'SALES LEDGER'!C:C,">="&'MONTH Sales by Sales Type'!$C$1)

+0

完美的作品,谢谢! – Textiled

0

与下面的代码,你可以检索月份的每个日期是:

dim objDate as Date 
dim i as integer 
dim intMonth as integer 

for i = 2 to 'number of row 
    objDate = CDate(cells(i, 1)) 
    intMonth = Month(objDate) 
next i 

月搞清楚一个简单的循环之后,你可以指望销售每个月的数量。

0

假设:

  • 它可修改为使用辅助列
  • 日期在COL在山口B A
  • 塞尔类型代码
  • 结果从A9放置:C11

屏幕截图:

enter image description here

添加助手col C从日期中提取Month。加入此公式中C2和拖累:

=TEXT(A2,"Mmm") 

添加这个公式在B10和拖累和整个:

=COUNTIFS($B$1:$B$7,B$9,$C$1:$C$7,$A10) 
1

你可以使用这个(如果你的范围与日期不包含空细胞):

=SUMPRODUCT((MONTH(A2:A100)=1)*(B2:B100="S")) 

或者(如果你的范围可能包含空单元格)

=SUMPRODUCT((TEXT(A2:A100,"mmm")="Jan")*(B2:B100="S")) 

如果您还需要添加一年的条件,只需添加*(YEAR(A2:A100)=2014)任何公式:

=SUMPRODUCT((TEXT(A2:A100,"mmm")="Jan")*(YEAR(A2:A100)=2014)*(B2:B100="S"))