重复n次在2个日期之间的元素,并指示其旁边的日期

发布于 2025-01-20 05:52:41 字数 1358 浏览 0 评论 0原文

如何在两个日期之间重复一个元素并指示日期

输入值:

IDBeginEnd
ST00May 15 2022May 15 2022
TE01May 23 2022May 25 2022
TO01May 16 2022May 19 2022

预期输出:

IDDate
ST00May 15 2022
TE012022 年 5 月 23 日
TE012022年5月24日
TE012022年5月25日
TO012022年5月16日
TO012022年5月17
日TO012022年5月18日
TO012022年5月19日

我现在正在做什么:

在E2中

=ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY( REPT(A2:A&"~", if(A2:A="",,C2:C-B2:B+1)),,9^9), "~"))))

,在F2中(并在下面拖动)

=countif(E$2:E2,E2)

在G2

=arrayformula(iferror(vlookup(E2:E,A:B,2,0)+F2:F-1))

在此处输入图像描述

有没有办法做到不列F?

How can I repeat an element between 2 dates and indicate the dates

Input values:

IDBeginEnd
ST00May 15 2022May 15 2022
TE01May 23 2022May 25 2022
TO01May 16 2022May 19 2022

Expected output:

IDDate
ST00May 15 2022
TE01May 23 2022
TE01May 24 2022
TE01May 25 2022
TO01May 16 2022
TO01May 17 2022
TO01May 18 2022
TO01May 19 2022

What I am doing right now :

in E2

=ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY( REPT(A2:A&"~", if(A2:A="",,C2:C-B2:B+1)),,9^9), "~"))))

in F2 (and dragging below)

=countif(E$2:E2,E2)

in G2

=arrayformula(iferror(vlookup(E2:E,A:B,2,0)+F2:F-1))

enter image description here

Is there a way to do whitout column F?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

万水千山粽是情ミ 2025-01-27 05:52:41

使用:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(IF(DAYS(C2:C, B2:B)>=SEQUENCE(1, 1000, ), 
 IF(A2:A="",,A2:A&"×"&TEXT(B2:B+SEQUENCE(1, 1000, ), "mmm dd e")), )), "×"), 
 "where Col2 is not null", ))

 更快地在此处输入图像描述

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(IF(DAYS(C2:C, B2:B)>=SEQUENCE(1, MAX(C2:C-B2:B+1), ), 
 IF(A2:A="",,A2:A&"×"&TEXT(B2:B+SEQUENCE(1, MAX(C2:C-B2:B+1), ), "mmm dd e")), )), "×"), 
 "where Col2 is not null", ))

use:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(IF(DAYS(C2:C, B2:B)>=SEQUENCE(1, 1000, ), 
 IF(A2:A="",,A2:A&"×"&TEXT(B2:B+SEQUENCE(1, 1000, ), "mmm dd e")), )), "×"), 
 "where Col2 is not null", ))

enter image description here

faster:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(IF(DAYS(C2:C, B2:B)>=SEQUENCE(1, MAX(C2:C-B2:B+1), ), 
 IF(A2:A="",,A2:A&"×"&TEXT(B2:B+SEQUENCE(1, MAX(C2:C-B2:B+1), ), "mmm dd e")), )), "×"), 
 "where Col2 is not null", ))
等风也等你 2025-01-27 05:52:41

与 @player0相似的公式,但我喜欢将末端列用作构造数组中的“额外”列以进行比较。

这是可以在名为“输出”的选项卡上的A2中找到此公式

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(Data!A2:A&"|"&Data!B2:B+SEQUENCE(1,MAX(Data!C2:C-Data!B2:B),0)&"|"&Data!C2:C),"|",0,0),"select Col1,Col2 where Col2<=Col3"))

A similar formula to @player0's but I like to use the end column as an "extra" column in the constructed array for the query to compare against.

Here's a sample sheet created specifically to solve this problem where this formula can be found in A2 on the tab called 'output'

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(Data!A2:A&"|"&Data!B2:B+SEQUENCE(1,MAX(Data!C2:C-Data!B2:B),0)&"|"&Data!C2:C),"|",0,0),"select Col1,Col2 where Col2<=Col3"))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文