【问题标题】:Google Sheet Arrayformula with multiple mathematical functions具有多个数学函数的 Google Sheet Arrayformula
【发布时间】:2016-05-08 03:15:47
【问题描述】:

我将如何为此格式化一个数组公式?:

=$D10*(sum($F10:$I10))

我尝试了几种不同的方法,但都没有奏效。我有一堆带有该公式的行(当然行号匹配,例如:

=$D10*(sum($F10:$I10))
=$D11*(sum($F11:$I11))
=$D12*(sum($F12:$I12)) etc...

我在每一行中都需要这个公式,但我试图找出一个数组公式,以便在我添加或减去行时它可以工作。

感谢您的帮助!

更新********************************************** ******************************

我刚刚发现=arrayformula(D7:D*(F7:F+G7:G+H7:H+I7:I)) 有效,但我可能还需要添加和减去列。有没有办法让它与sum()一起工作?

【问题讨论】:

    标签: google-sheets array-formulas


    【解决方案1】:

    我相信 MMULT 是一个不错的选择:

    =ArrayFormula(if(len(D2:D), D2:D*mmult(N(F2:I),transpose(column(F2:I2)^0)),))
    

    更改范围以适合。

    【讨论】:

      【解决方案2】:

      解决数学问题的最好方法是拆分它。

      你有两个乘数:D x sum(F:F)

      第一个任务是用 D 制作 ArrayFormula。很简单:

      =ArraFormula(D10:D1000)
      

      困难的部分是用 sum 制作 ArrayFormula。这部分已经被 AdamL 询问和answered here。在你的情况下:

      =ArrayFormula(SUMIF(IF(COLUMN(F1:I1),ROW(A10:A1000)),ROW(A10:A1000),F10:I1000))
      

      你的最终公式是

      =ArrayFormula(D10:D1000 * 
      SUMIF(IF(COLUMN(F1:I1),ROW(A10:A1000)),ROW(A10:A1000),F10:I1000))
      

      【讨论】:

      • 谢谢 Max,这似乎有效,但后来我注意到它一直在添加行 - 管理将其停止在 8,000 左右并删除它们。
      • 为防止它添加新行,请使用封闭范围:a1:a1000, offset(a10,,,counta(a10:a))
      猜你喜欢
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 2021-10-29
      相关资源
      最近更新 更多