使用新Excel动态数组公式的累计和公式

4dbbbstv  于 2023-11-20  发布在  其他
关注(0)|答案(6)|浏览(144)

我在Excel中使用新的动态(即溢出)公式。我想要一个动态数组,它是另一个动态数组的累加或累计。
让我们假设我在A1:A8中有以下动态数据:

12
20
14
13
12
13
26
11

字符串
要找到这个数组中的差异是微不足道的:

=OFFSET(A1#,1,0)-A1#

8
-6
-1
-1
1
13
-15
-11


但是,我如何使用新的动态公式来获得运行总数呢?

12
32
46
59
71
84
110
121

0lvr5msh

0lvr5msh1#

这是另一种使用矩阵乘法的方法

=MMULT(TRANSPOSE((ROW(I3#) <= TRANSPOSE(ROW(I3#)))*I3#),SIGN(I3#))

字符串

du7egjpx

du7egjpx2#

累计和公式,使用SCAN()LAMBDA()--动态溢出数组公式

x1c 0d1x的数据
·单元格B1中使用的公式-->使用SCAN()LAMBDA()的方法-->适用于MS 365

=SCAN(0,A1:A8,LAMBDA(x,y,x+y))

字符串
·单元格C1中使用的公式-->使用VSTACK()SCAN()LAMBDA()的方法-->适用于MS 365 Office内部测试通道

=VSTACK(A1,SCAN(A1,A2:A8,LAMBDA(x,y,x+y)))


·单元格D1中使用的公式-->使用LET()SCAN()LAMBDA()的方法-->适用于MS 365

=LET(x,A1:A8,
sum,LAMBDA(z,y,z+y),
SCAN(0,x,sum))

使用MAP()LAMBDA()



·单元格B1中使用的公式

=MAP(A1:A8,LAMBDA(x,SUM(A1:x)))

更新时间:2023/11/15

SCAN()函数不再需要LAMBDA()构造,只需要直接引用单个特定的**Excel函数。下面是一个例子。礼貌:感谢JvdV**先生。



·单元格B1中使用的公式

=SCAN(0,A1:A8,SUM)

c8ib6hqw

c8ib6hqw3#

新答案2022-06-20

对于A1中的动态数组,用途:
=MMULT(N(ROW(A1#)>=TRANSPOSE(ROW(A1#))),A1#)
如果A1中的动态数组有多个列,则返回每列的累积和,这与我更复杂的Original Answer不同。

原答复2022-01-13

通过使用SIGN(I3#)chris neilsen的解决方案会累积绝对值。为了适应负数,请在累积和中将SIGN(I3#)替换为1*(I3#=I3#)
=MMULT(TRANSPOSE((ROW(I3#) <= TRANSPOSE(ROW(I3#)))*I3#),1*(I3#=I3#))
或者,生成一个1的动态数组,
SEQUENCE(ROWS(I3#),,,0)而不是1*(I3#=I3#)
(我缺乏评论的声誉。

1tu0hz3e

1tu0hz3e4#

这里有一种方法,我已经做到了,但想知道是否有一个更简单/更有效的方法来做到这一点.

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

字符串

sycxhyv7

sycxhyv75#

这一个解决了一个滚动十二和

=SUBTOTAL(9,OFFSET(A1#,SEQUENCE(COUNTA(A1#),1,0),0,12))

字符串

qcbq4gxm

qcbq4gxm6#

您还可以使用以下内容:

=SUBTOTAL(9,INDIRECT(CELL("Address",A1)&":"&CELL("address",OFFSET(A1,SEQUENCE(NumberOfRows,0,0,1),0))))

字符串
假设在上面的单元格A1中包含要求和的值的溢出公式。您还可以为SEQUENCE()使用辅助列,如果在列B中这样做,则将使用:用途:

=SUBTOTAL(9,INDIRECT(CELL("Address",A1)&":"&CELL("address",OFFSET(A1,B1#,0))))

这也适用于替代产品,如果您使用=小计(6,...)

我发现上面给出的答案对我不起作用。

  • 对于矩阵乘法,它对累加和有效,但对累加积无效,所以我的答案更一般化。
  • 对于前面使用SUBTOTAL()的答案,出于某种原因,我必须向SEQUENCE()生成的值添加一个数字。在我的例子中,我必须添加3,这似乎是随机的。我找不到必须添加它的理由,但是没有它,累积总和超出了3行。

我的答案似乎不适用于PRODUCT()和SUM()公式,只适用于SUBTOTAL()。我猜PRODUCT()和SUM()还没有被更改为溢出/数组类型公式,但SUBTOTAL有。

相关问题