【问题标题】:Excel formula SUMIFS use cell value in array rangeExcel公式SUMIFS使用数组范围内的单元格值
【发布时间】:2016-04-11 10:15:39
【问题描述】:

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

我目前使用的公式如下:

=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)} 唉,无济于事。

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

【问题讨论】:

    标签: excel excel-formula excel-2010


    【解决方案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)))}
    

    要输入数组公式,请将其放入不带大括号的单元格中。然后按 [Ctrl]+[Shift]+[Enter] 确认。大括号应该会自动出现。

    【讨论】:

    • 感谢您的回答,TRANSPOSE 在此公式中的正确用法是什么,因为 TRANSPOSE($K$3:$K$8) 代替 {"Nike", "Thirdbridge"} 等在评估时仅返回第一个值作为唯一值公式,在本例中为 Nike。
    • 啊,用 CTRL+SHIFT+ENTER 将整个内容作为数组公式。工作谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    相关资源
    最近更新 更多