如果一个日期在另一个日期之后突出显示单元格?

时间:2015-07-10 15:46:01

标签: excel date conditional-formatting

我有几列数据,我试图突出显示第二个日期出现在第一个日期之前的那些实例,以显示数据中是否有任何错误。

ID  Start Date  End Date
1    01/01/15    01/15/15
2    01/06/15    01/02/15
3    01/06/15    01/03/15
4    01/11/15    01/13/15

我希望能够突出显示结束日期早于开始日期的单元格。我所指向的所有日期条件格式链接都是基于当前日期或一个特定日期,我有点迷失。

谢谢!

2 个答案:

答案 0 :(得分:0)

日期可以通过<就像数字一样。一种可能性是研究如何进行条件格式化,突出显示每行中的最小条目。如果任何行突出显示第二个而不是第一个日期列,那么它就是一个问题行。

也可以更直接地做到这一点。当预定义的条件规则都不起作用时,关键是要使用Conditional Formatting/New Rule/Use a formula to determine which cells to format。如果您显示的数据在A1中开始(以便01/15/15在C2中),请转到C2并创建由公式给出的条件格式设置规则

= C2 < B2

然后 - 只需将格式按下C列

中的其余日期

答案 1 :(得分:0)

如果您没有编码经验,这有点复杂。解决此问题的最佳方法是自己编写VBA脚本。因此,我将逐步完成使用完整代码执行此操作的过程。

1)打开Excel文件,然后转到“开发人员”选项卡。

(如果您没有看到它,请转到文件 - &gt;选项,单击自定义功能区,然后在主选项卡上添加单击开发人员。

2)单击开发人员选项卡下的Visual Basic按钮。

3a)将以下代码粘贴在:

Sub ColorCellsWithIncorrectEndDate() Dim Rows Rows = ActiveSheet.UsedRange.Rows.Count For i = 2 To Rows If Cells(i, 2).Value > Cells(i, 3).Value Then Cells(i, 3).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With End If Next End Sub

3b)如果excel表格与上面列出的格式完全相同,则上述代码有效。

- 如果单元格不在同一列中,则您将调整“单元格(i,#)”中的数字,以使该数字对应于该列。 (即A = 1,B = 2,C = 3 ......)。现在它正在检查B列(开始日期)是否大于C列(结束日期)。如果是真的话,然后将Cell C着色。

- 如果单元格不在右侧,则调整“For i =#To Rows”的行,Number直接对应于行号。

- 如果您想要不同的颜色,请访问此网站:http://www.w3schools.com/tags/ref_colorpicker.asp,并将“65535”替换为任何一个有效数字。

4)保存并退出visual basic

5)返回Excel表格并单击开发人员 - >宏;宏。 (将出现一个对话框)

6)在对话框中选择“ColorCellsWithIncorrectEndDate”,然后单击“运行”。

7)超过开始日期的所有结束日期将以黄色突出显示(或您选择的任何颜色)

希望这有帮助!

-BlindingFog