查找所有在特定日期参加的人

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

我有一个谷歌电子表格,可以跟踪参加某些持续数周的课程的人。这里只有 2 门课程,但我的实际电子表格有 20 门课程,每门课程的参加人数不同。

在 L 列中,我想要一个计算课程运行的下一个开放日期的公式(因为它们在场地不可用的某些周关闭)。在第 1 行和第 7 行中,某些周被“关闭”,而某些周被列为“已退款”,这意味着该课程本周关闭并且参加者本周获得退款。所以L2应该是5月10日,L8应该是4月27日

在单元格 L3 和下方,它应该显示谁将在下一个开放日期参加。我希望单元格 L3 中的这个 arrayformula 对下面 L 列中的所有课程执行此操作。我该怎么做?

A C D E F G H J K 大号
1 周三课程 关闭 已退款 关闭 下次约会
2 名字 姓氏 ID 4 月 5 日 4月12日 4月19日 4月26日 3 月 5月10日 5月17日 5 月 24 日 5月10日
3 约翰 史密斯 212 y y y y y
4 亨利 琼斯 437 y y y y
5 凯蒂 罗杰斯 894 y y y y
6
7 周四课程 已退款 关闭 下次约会
8 名字 姓氏 ID 4 月 6 日 4月13日 4月20日 4月27日 5 月 4 日 5月11日 5月18日 5 月 25 日 4月27日
9 乔丹 戴维斯 014 y y y y y
10 玫瑰 麦肯齐 709 y y y y
11 拉吉 帕特尔 338 y y y y
12 弥敦道 绿色 338 y y y y y y y

这是共享的 Google 电子表格: 谷歌表格链接

google-sheets google-sheets-formula formula array-formulas
1个回答
2
投票

在此处添加解决方案。请测试一下:

=let(Δ,scan(,byrow(U4:AP,lambda(Σ,if(isdate(index(Σ,,1)),+filter(column(Σ),Σ>=today(),not(regexmatch(offset(Σ,-2,),"Refund|Cancel"))),))),lambda(a,c,if(c<>"",c,a))),
       map(D4:D,Δ,lambda(Σ,Γ,if(Σ="",,index(offset(Σ,,-3,,42),,Γ)))))


最终更新的公式

=let(Δ,scan(,byrow(U4:AP,lambda(Σ,if(isdate(index(Σ,,1)),+filter(column(Σ),Σ>=today(),not(regexmatch(offset(Σ,-2,),"Refund|Cancel"))),))),lambda(a,c,if(c<>"",c,a))),
       map(T4:T,Δ,lambda(Σ,Γ,if((Σ="Status")+(Σ="Week #"),,index(offset(Σ,,-19,,42),,Γ)))))

© www.soinside.com 2019 - 2024. All rights reserved.