首页 > 解决方案 > sumifs 公式中的条件

问题描述

我工作簿equities中的主要工作表包含每天的股票交易活动信息:

图像

我创建了一个名为 的新工作表monthly commission,我希望从中获得L按月计算的佣金数据(股票页面上的列):

在此处输入图像描述

我曾尝试使用 SUMIFS 公式,但这并没有奏效。这可能是由于列出日期的方式不同(主要股票表上的标准日期格式,2018 年 5 月 9 日等),而屏幕截图显示了新工作表上的月份和年份。我还包含了我尝试使用的 sumifs 的示例

=SUMIFS(Equities!L:L,Equities!A:A,Monthly Commission!A3,Equities!A:A,">=1/10/2018",Equities!A:A,"<=31/10/2018")

如果有人可以建议我在哪里出错或错误出现在我的公式中,将不胜感激。

标签: excelformulasumifs

解决方案


我相信你是对的,问题来自日期格式。但不仅如此。

编辑:

您的示例中的电子表格命名不正确,而不是:

每月佣金!A3

你应该有:

'每月佣金'!A3

编辑2:

确保公式的逻辑也有意义。在您给出的示例中,要满足的条件如下:

  1. 等于 2018 年 11 月 1 日
  2. 早于或等于 2018 年 10 月 1 日
  3. 更新或等于 2018 年 10 月 31 日

这将始终返回 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 包装器并直接使用单元格引用。


推荐阅读