excel - 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")
如果有人可以建议我在哪里出错或错误出现在我的公式中,将不胜感激。
解决方案
我相信你是对的,问题来自日期格式。但不仅如此。
编辑:
您的示例中的电子表格命名不正确,而不是:
每月佣金!A3
你应该有:
'每月佣金'!A3
编辑2:
确保公式的逻辑也有意义。在您给出的示例中,要满足的条件如下:
- 等于 2018 年 11 月 1 日
- 早于或等于 2018 年 10 月 1 日
- 更新或等于 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 包装器并直接使用单元格引用。
推荐阅读
- string - 打字稿:强制类型为“字符串文字”而不是
- c# - 鼠标光标处的窗口启动位置
- python - 检查bash脚本文件时如何禁用pylint错误
- sql - Postgresql 计算前 n % 行的值
- android-studio - 在 Fragments 中调用 SharedPreferences
- asp.net-mvc - 添加视图选项在 mvc 中不可用?
- flutter - Flutter 从 UI 中动态插入和删除 `TextFormField`
- arrays - 在 v-for 循环中比较不同对象中的值
- java - 如何在我的类中为休眠验证链接注释
- php - Laravel 控制器中的语法错误检查