如何创建可比较不同日期格式的 Excel SUMIF 公式

如何创建可比较不同日期格式的 Excel SUMIF 公式

对于我的源数据,我有一列 dd/mm/dddd 格式的日期,以及旁边的一列值。

例如

03/02/2014  5 
17/02/2014  4 
03/03/2014  5 
17/03/2014  4

在摘要表上,我有一排单元格,其中的日期格式为 mmm-yy。

例如

Apr-11        May-11        Jun-11

在每个日期下方的单元格中,我需要输入月份与标题匹配的所有源值的总和。

我知道我可以使用以下方法比较两种日期格式:

MONTH(A1)=MONTH(D4)

如果日期匹配,我可以像这样使用 SUMIF:

=SUMIF(A1:A53, =D4, B1:B53)

我相信 Excel 2007+ 具有 SUMIFS 可能对我有帮助,但不幸的是我必须在 Excel 2003 上执行此操作。

但我不知道如何在 SUMIF 函数中进行月份比较工作。

如果可能的话?

答案1

我找不到以更少步骤完成此操作的方法,所以......

假设
我假设在背面我们只能看到月份年份,日期仍然存储为日期,然后格式化为月份(因此下面实际上显示的是 01/01/2014,而不是 01-2014。

我还假设您的主要日期在 A 列。


问题
主要问题是您需要将主要日期转换为可靠的格式(例如,您需要将 2014 年 5 月以来的每个日期都设为同一天),以便能够准确地比较它们。

公式的第一个语句SUMIF需要一个范围,而您无法在范围上运行所需的日期转换。您可以使用数组公式来做到这一点,但我没有成功,而且数组公式太深奥了,其他用户很难理解。

其次,您当前正在使用MONTH使两个值具有可比性。这将起作用,但最终会汇总任何年份的任何月份的任何实例。您需要包括年份以确保结果准确。


最简单的解决方案
我从来都不喜欢依赖“辅助列”的解决方案,但至少现在它是必要的。

在主日期列旁边创建一列(这是您的辅助列,您可以隐藏它或将其分组隐藏以供正常使用),并在第一行单元格中添加以下公式:

=EOMONTH(A2,0)


EOMONTH(月末)将返回目标日期所在月份的最后一天。后面的数字可用于查找其他月份的最后一天(输入 -1 即可查找上个月的最后一天)

复制此公式,然后转到您想要SUMIF去的地方。在该单元格中输入以下内容:

=SUMIF($B2:$B10,EOMONTH($D$1,0),$C2:$C10)


其中$B2:$B10是辅助列的范围,$D$1是月份值,$C2:$C10是要求和的值的范围。

现在根据需要重复。


编辑
如果您由于无法使用所需的附加包而无法使用 EOMONTH,那么您可以使用这些公式。

=MONTH($A2)&YEAR($A2)


=SUMIF($B2:$B10,MONTH($D$1)&YEAR($D$1),$C2:$C10)

相关内容