我正在编写一些需要我执行的代码
删除任务的所有重复迭代
为每个任务的每次迭代选择最早开始日期和最晚结束日期
在左侧您可以看到我的数据是什么样的,而在右侧是我希望它看起来是什么样的。
我认为我可以让代码为每个任务#只留下唯一的值,但是我想不出办法获取每个任务的最早开始日期和最晚结束日期。
如您所见,由于数据的提取方式,任务# 有一些空值,这些空值并不重要,也需要丢弃。
如果有人能给我指明正确的方向,那将会很有帮助。
谢谢!
答案1
如果您需要查找开始和结束日期,则可以直接在工作表上使用公式,而无需使用 VBA。您可以组合MIN
和IF
函数来查找开始日期,然后组合MAX
和IF
来查找结束日期。
查找开始日期
=MIN(IF($B$2:$B$17=G6,$C$2:$C$17))
查找结束日期
=MAX(IF($B$2:$B$17=G6,$D$2:$D$17))
编辑:
我根据@Yorik 的评论对公式进行了一些调整,即如果有多个项目,尽管项目不同,但任务的日期将相同。要查找唯一/不同的项目和任务,请使用该UNIQUE
函数。IT 将在 2 列上显示结果。
=UNIQUE(A2:B22)
然后在相邻的列中输入以下公式。它将检查项目和任务,然后获取开始和结束日期。对于为空的日期,单元格将留空。
查找开始日期
=IF(G7<>0,MIN(IF($B$2:$B$22=G7,IF($A$2:$A$22=F7,C$2:$C$22))),"")
查找开始日期
=IF(G7<>0,MAX(IF($B$2:$B$22=G7,IF($A$2:$A$22=F7,C$2:$C$22))),"")