计算指定月份的值

计算指定月份的值

A 列包含日期值(dd/mm/yyyy),B 列对于某些日期包含 OK,而对于其他日期则为空白:

      A         B
1 01/12/2015    Ok
2 01/12/2015    Ok
3 01/11/2015    
4 01/12/2015    Ok
5 01/11/2015    
6 01/01/2015    OK
7 01/12/2015

如果相关日期落在 mmm 格式指定的月份内(例如,Dec),我会尝试计算 OK。

在此示例中,Dec 的结果为 3(三行日期在 12 月且值为 OK)。Nov 的结果为 0,因为没有 11 月的日期值为 OK。

我尝试了 Super User 上针对相关问题给出的一些答案,但它们对我的电子表格不起作用。例如:

=SUMPRODUCT((TEXT($A$1:$A$7,"Mmmm")="Dec")($B$1:$B$7="确定")$B$1:$B$7)

我如何实现这个目标?

答案1

我认为这是你能得到的最好的结果,我会解释原因:

=COUNTIFS(A1:A7,">=01/12/2015",A1:A7,"<=31/12/2015",B1:B7,"=Ok")

Excel 上的日期有点棘手。Excel 将它们视为数字,例如:

01/11/201542309

01/12/201542339

看出它们之间30的差别了吗?

当单元格显示十二月你看到的是视觉格式单元格内的数字 42339。

你的需求的主要问题是你想要标准月份的 3 个字母名称(JAN、FEB、MAR、APR... 等),但 Excel 公式使用数字,而不是可视格式。

答案2

您的问题是公式中的日期格式不正确和语法错误。如果您将其清理成如下所示,它将起作用:

=SUMPRODUCT((TEXT($A$1:$A$7,"mmm")="Dec"),($B$1:$B$7="OK"))

如果您可以使用月份数字而不是缩写,则可以执行类似操作。MONTH 函数会将日期转换为月份数字,因此公式如下所示:

=SUMPRODUCT((MONTH($A$1:$A$7)=12),($B$1:$B$7="OK"))

相关内容