如何解决将 SEQUENCE 作为输入传递给 SEQUENCE 公式的行参数
可能是链接到 https://stackoverflow.com/questions/67850640/excel-function-to-return-a-nested-sequence-within-combin 的解决方案,但我不确定。如果以下面的公式为例:=LET(input1,2,SUM(SEQUENCE(3,input1)))
= 9
我想改变它,以便输入可以是一个数组并相应地应用直观(但不起作用):=LET(input1,{2;7},input1)))
= 33
有没有办法做到这一点?注意“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,INDEX(array,counter)))+SumOfSeq(array,counter-1)))
假设计数器最初设置为传递给数组参数的列表中的值数。
可以这样调用:
=LET(array,{2,7},count,COUNT(array),SumOfSeq(array,count))
结果:33。
注意
你也可以用一点数学来观察答案是
=sum(<input>+1)*3
但我认为这不是问题的重点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。