在 Google 表格中创建一列拼合日期序列(不使用 MACRO FUNCTIONS)

Create flatten dates sequence in Google Sheets in one column (without using MACRO FUNCTIONS)

提问人:JOAO RF 提问时间:3/3/2023 最后编辑:JOAO RF 更新时间:3/5/2023 访问量:74

问:

我在 Google 表格中有一个表格,其结构如下:

开始日期 结束日期
开始日期 1 结束日期 1
开始日期 2 结束日期 2
开始日期 3 结束日期 3

我使用以下公式:

IFERROR(FLATTEN( SEQUENCE(DATEDIF(D2,E2,"D"), 1, D2, 1), SEQUENCE(DATEDIF(D3,E3,"D"), 1, D3, 1), SEQUENCE(DATEDIF(D4,E4,"D"), 1, D4, 1), SEQUENCE(DATEDIF(D5,E5,"D"), 1, D5, 1) ),"")

这个公式对于我想要的结果(开始日期和结束日期之间的所有日期都在一列中)工作正常。

但是,从某种意义上说,它不是很有效,因为对于添加到表中的每一行,我都需要在我的公式中添加另一个 SEQUENCE 函数。

有没有办法只用一个 SEQUENCE 函数来实现这种自动化?

这个想法是这样的:

IFERROR(FLATTEN( SEQUENCE(DATEDIF(D2:D,E2:E,"D"), 1, D2:D, 1)),"")

但它就是行不通。我想知道我是否可以在不请求任何宏的情况下做到这一点。

我尝试了以下方法:SEQUENCE( SUM( DATEDIF(D2:D,E2:E,"D") ) , 1 ,SEQUENCE(DATEDIF(D2:D,E2:E,"D"), 1, D2:D, 1),1)

还有ArrayFormula(iferror(if(A2:A="",,transpose(split(concatenate(rept(A2:A&",",1+networkdays(A2:A,B2:B))),",")))))

我希望在一列中包含开始日期和结束日期之间的所有日期的序列,在结束日期之后,下一行将具有以下开始日期,依此类推。

先谢谢你!

数组 google-sheets arraylist 序列 扁平化

评论


答:

1赞 rockinfreakshow 3/3/2023 #1

您可以尝试:

=query(reduce(,sequence(counta(A2:A)),lambda(a,c,{a;SEQUENCE(index(map(A2:A,B2:B,lambda(x,y,if(x="",,days(y,x)+1))),c),1,index(A2:A,c),1)})),"offset 1",0)
  • Format输出列到所需的日期样式

enter image description here