将 SEQUENCE 作为输入传递给 SEQUENCE 公式的行参数

Passing a SEQUENCE as an input to the rows parameter of SEQUENCE formula

可能是链接到 的解决方案,但我不确定。如果以下面的公式为例:=LET(input1,2,SUM(SEQUENCE(3,,input1))) = 9

input1=2

我想更改它以便输入可以是一个数组并相应地应用直观的内容(但不起作用):=LET(input1,{2;7},SUM(SEQUENCE(3,,input1))) = 33

input1 = {2;7}

有办法吗? N.B。 “input1”可以是任意长度或数字选择

你可以试试下面的公式-

=LET(x,2,y,7,SUM(SEQUENCE(3,,x),SEQUENCE(3,,y)))

你可以用同样的方法来做,但是如果数字变大,你最终会 运行 资源不足:

=LET(criteria,{2;7},
N,MAX(criteria),
rowSeq,SEQUENCE(N),
matrix,SEQUENCE(N,3),
SUM((matrix-2*(rowSeq-1))*ISNUMBER(MATCH(rowSeq,criteria,0))))

您不需要单独计算矩阵,但它看起来像这样:

因此您可以看到除 2 和 7 之外的所有行都已设置为零。

结果:33


Lambda 方法

我举手承认我对使用 Lambda 函数没有经验。我认为用数字列表迭代它们有点棘手,但如果你像这样设置一个名为 SumOfSeq 的 lambda 函数肯定会起作用:

=LAMBDA(array,counter,IF(counter=0,0,SUM(SEQUENCE(3,,INDEX(array,counter)))+SumOfSeq(array,counter-1)))

假设最初将计数器设置为传递到数组参数的列表中值的数量。

可以这样调用:

=LET(array,{2,7},count,COUNT(array),SumOfSeq(array,count))

结果:33。


备注

您还可以通过一些数学观察得出答案是

=sum(<input>+1)*3

但我认为这不是问题的重点。