我的工作簿equities
中的主要工作表每天都有有关股票交易活动的信息:
我创建了一个名为monthly commission
的新工作表,我希望每个月每个月都有佣金数字(股票页面上的列L
):
我尝试使用SUMIFS公式,但是这没有用。这可能是由于列出日期的方式不同(主要股票表上的标准日期格式,2018年5月9日等),而屏幕截图在新工作表上显示了其月份和年份。我还提供了一个示例,尝试使用
=SUMIFS(Equities!L:L,Equities!A:A,Monthly Commission!A3,Equities!A:A,">=1/10/2018",Equities!A:A,"<=31/10/2018")
如果任何人都可以建议我对此做错了什么,或者公式中的错误在哪里,那么将不胜感激。
答案 0 :(得分:1)
我相信您是对的,问题出在日期格式上。但不仅如此。
编辑:
在您的示例中,电子表格命名不正确,而不是:
每月佣金!A3
您应该具有:
“月度佣金”!A3
编辑2:
确保公式的逻辑也有意义。在您给出的示例中,要满足的条件如下:
这将始终返回0,因为没有日期可以同时满足所有三个条件。
编辑前
第一个格式设置问题出现在您的公式中。要解决此问题,请使用函数“ DATEVALUE”:
=SUMIFS(Equities!L:L,Equities!L:L,'Monthly Commission'!A3,Equities!L:L,">=" & DATEVALUE("1/10/2018"),Equities!L:L,"<=" & DATEVALUE("31/10/2018"))
如果问题仍然存在,则可能是由于在资产负债表中输入日期的方式所致。您需要确保它们是“ excel日期”。辅助列(例如列O)可以与DATEVALUE一起使用。您的公式变为:
=SUMIFS(Equities!L:L,Equities!O:O,'Monthly Commission'!A3,Equities!O:O,">=" & DATEVALUE("1/10/2018"),Equities!O:O,"<=" & DATEVALUE("31/10/2018"))
O列中的公式将简单为:
=DATEVALUE(L)
另一种不需要使用辅助列的解决方案是利用sumproduct函数。它可以像sumifs一样工作:
=SUMPRODUCT((Equities!L:L)*(DATEVALUE(Equities!L:L)='Monthly Commission'!A3)*(DATEVALUE(Equities!L:L)>=DATEVALUE("1/10/2018"))*(DATEVALUE(Equities!L:L)<=DATEVALUE("31/10/2018")))
作为一个补充说明,如果您获得DATEVALUE函数的结果“ #VALUE”,则意味着您已经将日期评估为数字。因此,您可以丢弃DATEVALUE包装器,直接使用单元格引用。