我有一个事件清单(A),有一个开始(B)和结束日期(C)。现在我试图实现的是创建一个新的日子列表(E),就像一个日历,收集当天发生的所有事件(F)。
如果事件A在1月1日至3日,事件B在1月2-4日。它应该如下所示:
我尝试了过滤器,VLOOKUP,IF和IFERROR,没有任何运气,仅仅是因为我与包含“中间日期”方面的公式相混淆。
我成功地使用了过滤器和Vlookup来根据值B或C的之一,而不是>=B <#>和 <=C之和来排序所有发生的事情。
为此,只需简单地说=IF(和(E3>=B3,E3<=C3),A3,“)就可以成功地添加第一个事件。我可以把这个代码拷贝到G,H,我..。水平地检查A4、A5、A6、A7等。问题是,当事件列表有500行长时,单独设置这500个单元格是没有意义的--什么时候应该有一种更简单的方法将其自动化为一个数组?
显然,为了完成这项工作,我一定是错过了那么一点点额外的代码。希望在座的任何人都能看到这件事的细节?
为了记录在案,我准备至少在_two step_s中获得最终结果。首先将每个事件拉到单个单元格中,然后再用TEXTJOIN将该信息连接到最后一个单元格中。(=TEXTJOIN(“+ ",真,F3:Z3,))

发布于 2022-08-05 09:02:50
欢迎!
您完全正确-- FILTER()函数解决了这个问题。主要的困难是制定一个双重条件。这就是诀窍所在,只需乘以布尔值(比较日期的结果是布尔值)就相当于AND()函数。所以你的公式可能是:
=TEXTJOIN(" + ",1,FILTER($A$3:$A,($B$3:$B<=$E3)*($C$3:$C>=$E3)))请下次,不要用表格的图像,而是提供一个连接到真实表的测试数据,这样我们就可以节省时间,这样你就能更快地得到答案。

https://webapps.stackexchange.com/questions/165958
复制相似问题