【问题标题】:Is it possible to create an Excel array formula where each element n is the sum of the first n elements of another array?是否可以创建一个 Excel 数组公式,其中每个元素 n 是另一个数组的前 n 个元素的总和?
【发布时间】:2021-08-05 22:47:47
【问题描述】:

假设单元格 A1# 中有一个数组(例如一个序列或一个随机数数组),我想在单元格 B1# 中获得一个数组,其中数组的每一行 (n) 是 1 的总和到第一个数组的行中的 n 个。是否可以通过公式来做到这一点?

【问题讨论】:

    标签: arrays excel excel-formula


    【解决方案1】:

    B1中输入:

    =SUBTOTAL(9,OFFSET(A1#,0,0,SEQUENCE(COUNT(A1#))))
    

    一个简单的例子。如果 A1 包含动态:

    =SEQUENCE(10,,1,1)
    

    【讨论】:

    • 不错的技巧,谢谢。我不知道 SUBTOTAL 函数。
    【解决方案2】:

    如果波动性很重要并且您拥有 Office 365,您也可以这样做:

    = MMULT(--( SEQUENCE( 1, ROWS( A1:A10 ) ) <= SEQUENCE( ROWS( A1:A10 ) ) ), A1:A10 )
    

    这将计算得更快。

    【讨论】:

    • 谢谢。它也可以工作,但是要将它与任意长度的数组一起使用,需要稍微修改以引用数组而不是固定范围: = MMULT(--( SEQUENCE( 1, ROWS( A1# ) )
    • 哎呀 - 没有注意那个细节,但是它也关注数组。
    【解决方案3】:

    另一个版本:

    =SUMIF(OFFSET(A1,,,SEQUENCE(COUNT(A1#))),"<>")
    

    【讨论】:

      【解决方案4】:

      如果您处于 beta 通道,则可以使用新的 SCAN 功能。

      单元格 A1

      =SEQUENCE(10,,1,1)
      

      单元格 B1

      =SCAN(0,A1#,LAMBDA(a,b,a+b))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-20
        • 2020-10-25
        • 2022-09-27
        • 2016-04-04
        • 2015-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多