gpt4 book ai didi

不带 SCAN 或 OFFSET 的数组的累积积/运行积的 Excel 动态解决方案

转载 作者:行者123 更新时间:2023-12-05 08:45:08 25 4
gpt4 key购买 nike

我想计算数组的累积/运行乘积。

然而,这两个问题下提供的解决方案并不是我想要的:

  1. Cumulated Products (Multiplications) of Array in Excel
  2. Excel Dynamic Array formula to create a running product of a column

在这些问题下提供的两种解决方案中,解决方案都使用了我目前无法使用的 SCAN() 函数,或者使用了 OFFSET()它只允许将 range 类型的输入作为数组,而不是使用 SEQUENCE() 等函数生成的数组。

更明确地说:我要计算其运行乘积的数组是 =SEQUENCE(D11,1,1-D23,D24),其中 D11 是整数,D23 和 D24 是小数。

有没有人对此有公式内的解决方案,或者我是否必须执行中间步骤以先将序列“写入”一个范围,然后使用 OFFSET() 函数?

编辑 1:

上述 SEQUENCE() 函数的示例是 {0.97, 0.96, 0.95, ..., 0.75}

编辑 2:

如果没有 range 类型数组作为输入,我当然会很高兴有 OFFSET() 解决方案。

编辑 3:

这是我在没有中间步骤的情况下尝试实现的数值示例。

Example Screenshot

最佳答案

second link 修改 OP 的问题起始公式并使用 LN 和 EXP。我们可以使用 MMULT 到达我们想要的地方:

=LET( a, LN(A1#),
v, SEQUENCE( ROWS(a) ),
h, TRANSPOSE( v ),
stagr, (v - h + 1) * (v >= h),
m, IFERROR(INDEX( a, IF(stagr>0,stagr,-1), ), 0),
EXP(MMULT(m,SEQUENCE(ROWS(m),,1,0))))

enter image description here

您应该能够用您的 SEQUENCE 公式替换 A1#:

=LET( a, LN(SEQUENCE(D11,1,1-D23,D24)),
v, SEQUENCE( ROWS(a) ),
h, TRANSPOSE( v ),
stagr, (v - h + 1) * (v >= h),
m, IFERROR(INDEX( a, IF(stagr>0,stagr,-1), ), 0),
EXP(MMULT(m,SEQUENCE(ROWS(m),,1,0))))

关于不带 SCAN 或 OFFSET 的数组的累积积/运行积的 Excel 动态解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74183936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com