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/2015
是42309
01/12/2015
是42339
看出它们之间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"))