【问题标题】:How to find row at which summed total is greater than a certain amount?如何找到总和大于一定数量的行?
【发布时间】:2016-10-19 15:21:19
【问题描述】:

我想找到运行总和值达到指定数量并且满足多个条件的行(类似于 sumifs)。

我不能只添加一个累积行,如下所示:

Count rows until the sum value of the rows is greater than a value

....因为我在数据中还有其他要满足的条件,因此无法得出运行总计。

在下面的虚拟示例中,我想找出“设计”项目花费或超过 30,000 美元的日期

【问题讨论】:

    标签: excel indexing subtotal


    【解决方案1】:

    做一个累积行,仅当 B 列等于“设计”时才相加

    如果您希望能够进行 vlookup,您应该创建一个额外的列来检查金额是否超过 30k,然后输出任何将成为 vlookup 关键的内容。

    【讨论】:

    • 问题是我的真实数据集有更多的标准,而不仅仅是某个“项目”(不同事物的组合),而且我也没有能力修改(添加更多行或列)。我想在一张单独的纸上,回顾这张纸,并有一个公式来找到我的解决方案。同样,这只是一个虚拟表作为示例。
    【解决方案2】:

    好的,对于任何感兴趣的人,这就是我最终要做的。我创建了一个单独的表,其中一列中包含我所有可能的星期(10/17、10/24、10/31 等),下一列中包含相应的序号。在我的实际项目中,我最终得到了 54 个。

    然后,我最终不得不在我的数据集中插入一列,以便在所有行中的每个“周”中查找“周号”。然后在我正在解决的另一张纸上,我有一个单元格是我本周的决策变量#。我有另一个是我的目标$。我创建了一个公式,将我的目标金额减去所有标准(项目、名称等)的 SUMIFS,最后一个标准是周数必须是“=1、=0。这让我回到了资金为负数的前一周。然后,我在我的周数表上查找了该周数 +1 的单元格,以找到达到我的目标金额的那一周。

    抱歉,不得不这样解释,而不是实际公式,因为我的实际公式有很多 SUMIFS 标准和单元格引用,在这里没有任何意义。

    【讨论】:

      【解决方案3】:

      一个迟到的答案,但没有使用帮助列。

      通过在TRANSPOSEd 数组上使用矩阵乘法 (MMULT) 判断 Row 是否大于自身以及列表本身,我们可以生成 Running Total 数组。

      MMULT(--(TRANSPOSE(ROW(D2:D21))<=ROW(D2:D21)), D2:D21)
      

      如果我们将其缩小到仅前 3 行以进行演示,那么您正在进行以下计算:

      [[--(2<=2)][--(3<=2)][--(4<=2]     [[10,000]
       [--(2<=3)][--(3<=3)][--(4<=3]  ∙   [ 8,000]
       [--(2<=4)][--(3<=4)][--(4<=4]]     [ 6,000]]
      

      这给了我们这个:

      [[1][0][0]     [[10,000]    [[10,000]
       [1][1][0]  ∙   [ 8,000]  =  [18,000]
       [1][1][1]]     [ 6,000]]    [24,000]]
      

      然后我们可以将其与目标值作为条件进行比较,然后除以结果以消除具有#DIV0! 错误的值,并使用AGGREGATE 获得最小的非错误值

      =AGGREGATE(15, 6, Row(D2:D21) / (MMULT(--(TRANSPOSE(ROW(D2:D21))<=ROW(D2:D21)), D2:D21)<30000), 1)
      

      这将为我们提供第一行,其中 Running Total >= $30,000

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-10-12
        • 1970-01-01
        • 2023-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多