Excel 公式参数中的数组操作

Excel 公式参数中的数组操作

我的问题非常具体,但我一直找不到解决方案。以下是说明该问题的示例数据集:

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))

相关内容