我在这样的表中有值
Date Values
01/01 5:35
02/01 -7:08
02/01 3:45
15/01 -4:05
02/02 3:25
13/02 4:25
19/02 6:20
我想按月计算有多少个“值”是负数(即包含“-”字符)。我尝试了几种方法,但都没有成功。假设“日期”列中的值是真实日期,这样我就可以使用 month() 之类的函数。“值”列中的值是文本(即以 ' 开头),因为我无法让 Excel 正确处理负数时间。
=SUMPRODUCT(--(A2:A9999<>""),--(MONTH(A2:A9999)=1),IF("-*",B2:B9999))
我希望这样如何对特定时间和日期范围内的值求和?会有所帮助,但我无法使其适应我的情况。
谢谢您的建议。
答案1
与 = 进行比较时不能使用通配符,因此您需要在 SUMPRODUCT 公式中使用 LEFT 函数,如下所示
=SUMPRODUCT(--(A2:A9999<>""),--(MONTH(A2:A9999)=1),--(LEFT(B2:B9999)="-"))
这将计算任何一年的一月日期
在 Excel 2007 中,使用 COUNTIFS 可能会更容易,假设您在 D2 中计算月份的开始日期(例如 1/1/2012),然后仅对 2012 年 1 月使用此公式
=COUNTIFS(A:A,">="&D2,A:A,"<="&EOMONTH(D2,0),B:B,"-*")
答案2
到计算负值您可以使用=COUNTIF(A1,"-*")
算作具体月份 =IF(MONTH(B1)=1,COUNTIF(A1,"-*"),0)
month=1
这将为(一月)的任何负值添加 1。您可以更改month = value
月份,当您将其向下拖动时,您将获得一列 1 和 0 column C
(辅助列)
在帮助列的末尾,你=sum(C:C)
可以计算给定月份的负值数量
如果你想计算负值的总和=SUMIF(C:C,"=1",A:A)
基本上,我们的做法是使用辅助列。如果您不想看到,column C
您可以隐藏此列并在 中的某个位置=sumif
执行操作=if
Column D
辅助列以显示。
编辑
将其更改countif
为计数,如果它包含减号,则为 <0 不适用于非数字 - 应该可以