2016-04-11 104 views
0

我在excel文档中使用SUMIFS公式,公式的一部分是一个数组,用于检查一个值是否符合许多条件。但是,数组中的数据是手动输入的,例如{"Nike", "Amazon"},但是我想使用单元格值而不是确切的字符串,即{$K$3, $K$4},但是excel不允许这样做。Excel公式SUMIFS使用数组范围中的单元格值

我使用的时刻的公式如下:

=SUM(SUMIFS(INDIRECT(C$2&"[Allocation per Account]"),INDIRECT(C$2&"[Team]"),$J$3,INDIRECT(C$2&"[Role]"),$B3,INDIRECT(C$2&"[Account]"),{"Nike","Thirdbridge","Amazon","EIB","Smith & Nephew","ARUP"})) 

凡由表范围[Account]的匹配通过分别输入从各值进行设置。

我甚至尝试使用INDIRECT来打印字符串,{INDIRECT($K$3), INDIRECT($K$4)}唉,无济于事。

有没有办法将这些值更改为单元格引用?

回答

1

{"Nike","Thirdbridge","Amazon","EIB","Smith & Nephew","ARUP"}是行向量的数组文字。

因此,如果值(字符串在那种情况下)将在一行中,例如K3:P3,那么K3:P3将是完全相同的行向量。

但是,如果值在一列中,例如K3:K8,那么TRANSPOSE(K3:K8)将是完全相同的行向量。

TRANSPOSE只能在数组上下文中使用。所以,你必须输入你的公式作为数组公式:

{=SUM(SUMIFS(...,TRANSPOSE($K$3:$K$8)))} 

要输入数组公式放入withot大括号的单元格。然后按[Ctrl] + [Shift] + [Enter]确认。大括号应该自动出现。

+0

谢谢你的回答,在这个公式中'TRANSPOSE'的正确用法是'TRANSPOSE($ K $ 3:$ K $ 8)'代替'{“Nike”,“Thirdbridge”}, etc只是在评估公式时返回第一个值作为唯一值,在这种情况下为Nike。 –

+1

啊把整个事情作为一个数组公式与CTRL + SHIFT + ENTER。作品谢谢。 –

相关问题