根据频率填充日期

问题描述 投票:0回答:2

我希望根据开始日期和频率填充日期直到结束日期。

输入(此列表将会增长):

+ A B C D E F
1 开始日期 结束日期 频率 成本 类别 公司
2 2024年2月2日 2024年2月17日 14 545 第一批农民
3 2024年3月2日 2024年2月17日 7 23 内陆地区
4 2024年7月2日 2024年2月17日 3 23 牛仔优先

制作输出

+ A B C D E
1 日期 频率 成本 类别 公司
2 2024年2月2日 14 545 第一批农民
3 2024年3月2日 7 23 内陆地区
4 2024年7月2日 3 23 牛仔优先
5 2024年2月10日 7 23 内陆地区
6 2024年2月10日 3 23 牛仔优先
7 2024年2月13日 3 23 牛仔优先
8 2024年2月16日 14 545 第一批农民
9 2024年2月16日 3 23 牛仔优先
10 2024年2月17日 7 23 内陆地区

我已经弄清楚如何获取第一行,但仅使用日期:

=ARRAYFORMULA( IFERROR( Sheet1!$A$2 + (SEQUENCE((Sheet1!$B$2 - Sheet1!$A$2) / Sheet1!$C$2 + 1, 1, 0) * Sheet1!$C$2) ) 

我做了一个EXAMPLE_SHEET,这样可能更容易理解

google-sheets google-sheets-formula
2个回答
0
投票

这是您可以测试的一种方法:

=sort(let(Ξ,tocol(,1), reduce(Ξ,Input!A2:index(Input!A:A,match(,0/(Input!A:A<>""))),lambda(a,c,vstack(if(iserror(a&""),Ξ,a),let(x,offset(c,,1),y,offset(c,,2),Σ,quotient(x-c,y)+1,if(or(c="",x=""),Ξ,
 hstack(sequence(Σ,1,c,y),chooserows(offset(c,,2,,4),sequence(Σ,1,1,0))))))))),1,1,2,)


0
投票

以下作品。

=sort(reduce(tocol(,3),A2:A4,lambda(a,c,vstack(a,let(nrows,ceiling((offset(c,0,1)-c)/offset(c,0,2)),hstack(c+sequence(nrows,1,0,offset(c,0,2)),arrayformula(if(sequence(nrows),offset(c,0,3,1,3)))))))),1,true)
© www.soinside.com 2019 - 2024. All rights reserved.