首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Google工作表中重复LAMBDA生成的日期序列(一定次数)

如何在Google工作表中重复LAMBDA生成的日期序列(一定次数)
EN

Stack Overflow用户
提问于 2022-11-25 20:28:46
回答 3查看 43关注 0票数 -1

我在LAMBDA函数(MAKEARRAY)中嵌套了一个lambda函数,用于创建一个列,其中包含一系列日期。本系列从单元格start_date中定义的月份的最后一天开始,然后是下一个月的最后一天。这一个月间隔由单元格number_months中的值定义了许多次。

公式如下:

=MAKEARRAY(number_months,1,LAMBDA(r,c,EOMONTH(start_date,r-1)))

我想要的

这个重复below.

  • Repetition的序列需要发生一定的次数,这是由number_repeats.

中的值定义的

由于我将这个系列作为另一个工作表的行标题,所以我尝试使用TRANSPOSE(ARRAYFORMULA(间接选择变量范围),而不是再次生成重复的日期序列。但是,在这种情况下,我必须弄清楚如何在不使用REPT和SPLIT的情况下重复该数组一定次数,因为它远远超过了字符容量。

尽管如此,如果可能的话,我的首选是基于在另一个表中创建行标题的transposed函数的解决方案,而不是使用ARRAYFORMULA引用标题。

我觉得我可以使用序列,但我不知道如何将它与LAMBDA函数结合起来,重复这个系列一定次数。

EN

回答 3

Stack Overflow用户

发布于 2022-11-25 22:49:39

你觉得这个怎么样??您可以将最后一对括号中的B1:1更改为您自己的lambda函数。为了直观的目的(如果计算太长的话),我使用了B1:1和单元格A1中的一系列标头来声明"n“次数。

因此,"qt“是"headers”(与Counta一起完成)中的项目数量,“时间”是由您设置的数字。我使用了Counta,这样您就可以在标题(或lambda函数)中添加更多的项,并且它也可以灵活地工作。

BYROW显示范围,序列计算所需行数(qt*倍),MOD和INDEX遍历所需的页眉数量。

代码语言:javascript
运行
复制
=lambda(qt,headers,lambda(times,byrow(sequence(qt*times),lambda(seq,INDICE(headers,,RESIDUO(seq-1,times)+1))))(CONTARA(headers)))(A1,B1:1)

这里有一个示例表:https://docs.google.com/spreadsheets/d/18qaf86Q5eY-F1ffo15ecaS6haKqj55heW8hT4VBLFHc/edit?usp=drivesdk

票数 0
EN

Stack Overflow用户

发布于 2022-11-26 09:53:09

您可以使用reduce多次重复数组:

代码语言:javascript
运行
复制
=reduce("Header",sequence(num_repeats),lambda(total,value,{total;MAKEARRAY(number_months,1,LAMBDA(r,c,EOMONTH(start_date,r-1)))}))

不过,我已经手动格式化了日期。

票数 0
EN

Stack Overflow用户

发布于 2022-11-26 23:22:25

非常感谢汤姆和马丁

我还从帮助我的人那里得到了以下解决办法:

代码语言:javascript
运行
复制
=MAKEARRAY(1, B1 * C1, lambda(r, c, eomonth(A1,{mod(c-1, B1)})))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74577602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档