我的问题非常具体,但我一直找不到解决方案。以下是说明该问题的示例数据集:
First Last Sales Months
Kevin Smith $500 10
Joe Stevens $400 6
Frank Doe $600 4
我正在寻找一种最终结果中不涉及任何计算列或单元格的解决方案。
现在假设我有这个列表
Kevin Smith
Frank Doe
我想在单独的单元格中计算他们每月的销售额之和。
我试过了:
=SUM(SUMIF(CONCATENATE(A1:A3, " ",B1:B3),A5:A6,C1:C3/D1:D3))
数据存储在第 1-3 行中,其中 A 列为名字,B 列为姓氏,C 列为销售额,D 列为月份。全名位于 A5 和 A6 中。
当我应用该功能时,我已经尝试了进入和Ctrl+Shift+Enter
奇怪的是,当我在公式中不进行任何数组连接或除法时,此公式有效。这才是问题的关键。为什么我不能在公式中进行数组操作?
=SUM(SUMIF(A1:A3,A8:A9,C1:C3))
不幸的是,在我现实生活中的问题中,我无法使用这种解决方法。
我尝试发布一张图片,但尽管我已经阅读这个网站上的答案很长时间了,但我从未发布过任何内容,所以我没有“声誉”。
提前感谢您的帮助。
答案1
SUMIF
不允许您将任何函数应用于条件或总和范围(因为这会使它们成为数组并且SUMIF
只允许范围)....但您可以使用SUMPRODUCT
这样的公式来避免任何多余的单元格/列,并避免“数组条目”
=SUMPRODUCT(ISNUMBER(MATCH(A1:A3&" "&B1:B3,A5:A6,0))+0,C1:C3/D1:D3)
MATCH
函数将连接的名称列与您的名称进行匹配,A5:A6
并返回一个数字(如果匹配)或一个错误 - #N/A
- 如果不匹配,因此将ISNUMBER
函数应用于该数组会给出一个值数组TRUE/FALSE
,其中 +0 转换为1/0
值。SUMPRODUCT
然后将该数组与 C/D 除法相乘并对结果求和,得出所需的答案。
C1:C3
或范围内不能有任何文本,D1:D3
否则会出现错误
答案2
不幸的是,由于公式的实施方式,您将需要额外的计算列,除非您想进行一些编程。
如果只使用公式,您将需要一个用于连接名称的列和一个用于将金额相加的列 (C2/D2)。然后,您可以使用数组公式:=SUM(SUMIF(A1:A3,A8:A9,C1:C3))