我想要输出如下,
必须使用表A中的名称检查表B中的名称,并且应从表A中选择相应的StartDate
和EndDate
,并且应将其与表B中的日期进行比较,并且该名称下的单元格应该如果表A中的Status
在"进行中"如果在"暂停"
例如:
考虑表B中的Jack,它在表A中有3条记录,应该选择第一个开始日期,即4-Apr-2017
,结束日期为27-Apr-2017
,并且必须根据状态字段完成相应的着色。
如何使用Excel中的VBA /任何内容实现此目的。我是VBA的新手。
答案 0 :(得分:0)
是的,你可以在VBA中这样做,但我建议使用条件格式(公式),因为它不需要编程知识。为此,您需要使用Vlookup formula。
要进行条件格式设置,请查看“主页”标签下的“样式” - >>条件格式。突出显示要格式化的单元格,然后选择条件格式 - >新规则。这将导致弹出一个新窗口。选择“使用公式确定要格式化的单元格”。
您需要2种条件格式。
1.如果日期在开始日期和结束日期之内,则显示绿色。为此,选择甘特图中的第一个单元格(示例中为单元格B8),然后在下面输入公式。
=IF(AND(B$7>=VLOOKUP($A8,$A$2:$D$5,3,FALSE()),B$7<=VLOOKUP($A8,$A$2:$D$5,4,FALSE())),TRUE(),FALSE())
2.当用户的项目超出截止日期时显示红色,请输入以下公式,并突出显示相同的单元格。
=IF(B$7>VLOOKUP($A8,$A$2:$D$5,4,FALSE()),TRUE(),FALSE())
完成后,您可以应用格式画家或使用条件格式复制和粘贴单元格来扩展表格/甘特图。
请注意,$符号很重要,因为它们会锁定公式中的相对引用位置。使用第二个公式作为示例,B $ 7引用日期,您需要将引用锁定到第7行,其中所有日期都是。另一方面,列引用(列B)可以根据需要更改为列,以便与其他日期进行正确比较。
对于每个用户的多个项目,您可以扩展您的初始问题吗?您想根据每位用户或每件商品进行跟踪吗?我假设您正在创建一个甘特图来跟踪项目。在这种情况下,跟踪分配给人们的特定任务会更有意义。您可以根据任务修改给定的示例。