【问题标题】:Excel - Conditional Sumproduct to select specific criteriaExcel - 条件 Sumproduct 以选择特定条件
【发布时间】:2021-12-03 17:11:46
【问题描述】:

我有一组数据,其中包含一列成本数据,然后是一个跨类别分配表(即列标题是不同的类别,表内容是跨这些类别的分配百分比)。每个成本数据点都有跨不同类别的分配。

我正在尝试动态隔离每个类别的总成本。到目前为止,我已经尝试使用=sumproduct(cost_column,if(category_headers=category,category_table,))

在哪里

cost_column = 成本数据列

category_headers = 分配表顶部的行

category_table = 分配百分比表(不包括标题)

我将其作为数组函数输入,但它返回 #VALUE 错误。

我是否可以动态计算每个类别的总成本?本质上,我试图将 category_table 数组限制为与 cost_column 数组相同的大小。

谢谢!

编辑:

此处为示例图片Example

【问题讨论】:

  • 通过一些样本数据和期望结果的样本更容易理解。
  • 有多少个类别?
  • @P.b 我附上了一张示例图片。期望的结果是“每个类别的成本”表
  • @JSmart523 有 70 多个类别和 10 年的每月成本数据 - 但类别的数量应该与这个问题无关,不是吗?无论是 3 个类别还是 1,000 个类别,我都希望答案是相同的。
  • 好吧,如果只有三个类别,那么愚蠢、蛮力、硬编码或手动方法会更好,因为它更易于管理且更简单。有 70 多个类别,循环更有意义。

标签: excel excel-formula sumproduct


【解决方案1】:

试试这个非易失性解决方案:=SUMPRODUCT(INDEX($D$6:$G$15,,MATCH(D$18,$D$5:$G$5,0)),INDEX($I$6:$K$15,,MATCH($C19,$I$5:$K$5,0))) 这不会在工作簿的任何单元格中的每次更改时重新计算,例如 OFFSETINDIRECT,这可能会减慢速度。

【讨论】:

    【解决方案2】:

    你能试试这个公式吗

    =SUMPRODUCT(
         (OFFSET($C$6:$C$15,,MATCH(D$18,$D$5:$G$5,0)))
        *(OFFSET($H$6:$H$15,,MATCH($C19,$I$5:$K$5,0)))
     )
    

    如果它对你有用,请告诉我。

    【讨论】:

    • 谢谢!这就像一个魅力。我正要使用indirect(address(match())) 发布一个不同的解决方案,但这更优雅
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 2012-10-03
    相关资源
    最近更新 更多