我想创建一个简洁的 Excel 公式,根据一组 AND 条件和一组 OR 条件对列求和。
我的 Excel 表格包含以下数据,并且我使用了定义的列名称。
- Quote_Value (Worksheet!$A:$A) 保存会计值。
- Days_To_Close (Worksheet!$B:$B) 包含一个生成数字的公式。
- 销售员(工作表!$C:$C)包含文本并且是一个名称。
- Quote_Month (Worksheet!$D:$D) 包含一个公式 (=TEXT(Worksheet!$E:$E,"mmm-yy")),用于将另一列中的日期/时间数字转换为基于文本的月份引用。
如果 Salesman 等于 JBloggs,Days_To_Close 等于或小于 90,并且 Quote_Month 等于以下其中一项(10 月 13 日、11 月 13 日或 12 月 13 日),我想要对 Quote_Value 求和。
目前,我已经做到了这一点,但它包含大量重复,我认为我不需要。
=SUM(SUMIFS(Quote_Value,Salesman,"=JBloggs",Days_To_Close,"<=90",Quote_Month,"=Oct-13")+SUMIFS(Quote_Value,Salesman,"=JBloggs",Days_To_Close,"<=90",Quote_Month,"=Nov-13")+SUMIFS(Quote_Value,Salesman,"=JBloggs",Days_To_Close,"<=90",Quote_Month,"=Dec-13"))
我想做的是更像下面的东西,但我无法计算出正确的语法:
=SUMIFS(Quote_Value,Salesman,"=JBloggs",Days_To_Close,"<=90",Quote_Month,OR(Quote_Month="Oct-13",Quote_Month="Nov-13",Quote_Month="Dec-13"))
该公式不会出错,只是返回 0 值。但如果我手动检查数据,结果是不正确的。我什至尝试使用 TRIM(Quote_Month) 来确保空格没有渗入数据,但我的扩展 SUM 公式有效的事实表明数据没问题,这是一个语法问题。有人能引导我走向正确的方向吗?
最佳答案
您可以使用SUMIFS
像这样
=SUM(SUMIFS(Quote_Value,Salesman,"JBloggs",Days_To_Close,"<=90",Quote_Month,{"Oct-13","Nov-13","Dec-13"}))
SUMIFS
函数将返回一个包含 3 个值的“数组”(“Oct-13”、“Nov-13”和“Dec-13”各一个),因此您需要 SUM
对该数组求和并给出最终结果。
请注意这种语法,公式中最多只能有两个条件,并且带有“OR”条件...如果有两个条件,则必须用 < 分隔条件一个用逗号,另一个用分号。
如果您需要更多,您可以使用 SUMPRODUCT
与 MATCH
,例如在你的情况
=SUMPRODUCT(Quote_Value,(Salesman="JBloggs")*(Days_To_Close<=90)*ISNUMBER(MATCH(Quote_Month,{"Oct-13","Nov-13","Dec-13"},0)))
在该版本中,您可以使用 ISNUMBER/MATCH
添加任意数量的“OR”条件
关于excel - 将 SUMIFS 与多个 AND OR 条件结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20238816/