在Excel中检查日期是否介于两个给定日期之间

在Excel中检查日期是否介于两个给定日期之间

Excel 中的数据分析通常涉及处理日期。

许多 Excel 用户在处理日期时需要检查的常见问题是日期是否介于两个给定日期之间。

一个简单的用例是,当您需要检查报告的提交日期是否在给定的日期内时。基于此,您可以突出显示在截止日期之后提交的报告。

在本教程中,我将向您展示如何 检查日期是否在两个给定日期之间

检查某个日期是否介于两个给定日期之间的最简单方法之一是使用简单的 if 公式。

由于我们需要检查两个条件,因此我们需要使用两个 if 公式。

当您在一个 IF 公式中使用另一个 IF 公式时,这称为嵌套 IF 构造。

下面我有一组数据集,其中 A 列和 B 列分别记录了项目开始日期和项目结束日期。然后 C 列记录了项目提交日期。

现在我想检查项目提交日期是否在项目开始日期和项目结束日期之间。

=IF(C2>=A2,IF(C2<=B2,"In Range","Out of Range"),"Out of Range")
检查两个日期之间的日期的公式

如果日期位于两个给定日期之间,则上述公式将返回“在范围内”,如果日期在项目开始日期之前或项目结束日期之后,则返回“超出范围”。

现在让我快速解释一下这个公式是如何工作的。

我首先使用 if 公式来检查该日期是否晚于项目开始日期。

根据这些标准,我需要指定当条件为真时公式应该做什么,以及当条件不真时公式应该做什么。

但由于我有两个条件需要检查,因此在检查第一个条件之后,我立即使用第二个 IF 函数来检查另一个条件(即日期是否在项目结束日期之前)。

由于 IF 函数接受 3 个参数(条件、条件为 True 时的值以及条件为 False 的值),因此对于第二个 IF 函数,我指定“In Range”作为第二个参数,因为它满足两个条件,并且我指定 out of range 作为第三个参数,因为它满足第一个 if 条件,但不满足第二个 if 条件。

最后,我指定“超出范围”作为第一个 IF 函数的第二个参数(这意味着第一个 IF 函数中的条件不满足,因此它没有转到第二个 if 函数而是返回第一个 IF 函数的第二个参数)。

由于我只有两个条件需要检查,因此我使用了两个 if 函数,其中第二个函数嵌套在第一个函数中。如果您有两个以上的条件需要检查,则可以进一步嵌套这些 if 函数(尽管在几次之后它往往会变得有点复杂)

Also read: Avoid Nested IF Function in Excel…VLOOKUP to Rescue

使用 IF + AND 公式

虽然许多 Excel 用户习惯使用 IF 公式,但当需要检查多个条件时,我更喜欢使用 IF 和 AND 公式的组合。

在 AND 公式中,您可以检查多个条件,并可以指定在所有条件都为真的情况下应该得到的结果,以及在其中任何一个条件为假的情况下应该得到的结果。

让我们再次采用相同的数据集,其中 A 列和 B 列中记录了项目开始日期和项目结束日期,C 列中记录了项目提交日期。

数据集检查日期是否介于两个日期之间

以下是我可以用来检查提交日期是否位于项目开始日期和项目结束日期之间的公式:

=IF(AND(C2>=A2,C2<=B2),"In Range","Out of Range")
IF 和 AND 公式用于检查两个日期之间的

上述公式检查两个条件,如果提交日期在开始日期和结束日期之间,则返回“在范围内”,如果提交日期在项目开始日期之前或项目结束日期之后,则返回“超出范围”。

请注意,在上面的公式中我仍然使用了 IF 函数,但是我不需要使用两个 if 函数。

由于我必须检查这两个条件,因此我使用 AND 函数来进行。

如果两个条件都为真,则 AND 函数将返回 TRUE,如果其中一个或两个条件为假,则返回 FALSE。

而且由于我需要更具描述性的输出而不是简单的 TRUE 或 FALSE,因此我使用了 IF 函数,如果结果为 TRUE,它会返回“在范围内”,如果结果为 FALSE,它会返回“超出范围”。

t推荐:Excel两个数字之间的计数(COUNTIF / COUNTIFS)

检查日期是否为周末

在项目管理中处理日期时的一个常见用例是确定某个日期是否在周末。

如果您手动检查,您会检查日期是星期六还是星期日。

但是在 Excel 中处理日期时,您可以使用 WEEKDAY 函数轻松为您完成此操作。

下面我有一组数据集,其中 A 列有一些日期,我想检查这些日期是否在周末。

检查日期是否为周末

为了本教程的目的,我将周六和周日视为周末。

以下公式可以帮您实现这一目标:

=WEEKDAY(A2,2)>5
WEEKDAY 公式检查日期

如果日期是星期六或星期日,它将返回 TRUE,否则将返回 FALSE。

上述 WEEKDAY 公式检查日期的序列号,并返回与该日期的星期几相对应的数字。因此,如果是星期一,它将返回 1,如果是星期二,它将返回 2,依此类推。

由于我检查的条件是工作日结果是否大于 5,所以如果日期是周末,它将返回 TRUE,如果日期是工作日,它将返回 FALSE。

如果您希望结果更有意义,可以使用下面的 if 公式,如果日期发生在工作日,则返回“工作日”,如果日期发生在周末,则返回“周末”。

=IF(WEEKDAY(A2,2)>5,"Weekend","Weekday")

检查日期是否在两个日期之间时出现的问题

到目前为止,我已经向您展示了几个可以检查日期是否介于两个给定日期之间的场景。

在所有公式中,基本原理是将给定日期的值与开始日期和结束日期进行比较。如果给定日期的值介于开始日期和结束日期之间,则它发生在这两个日期之间,否则不发生。

然而,在某些情况下,您可能会看到一些意想不到的结果。

在本节中,我将介绍在 Excel 中比较日期时需要注意的一些常见陷阱:

推荐:AdSense每千次展示费用

日期需要采用正确的格式

日期和时间值在 Excel 的后端以数字形式存储。因此,当您比较两个日期时,实际上是在比较两个数字。

您可能认为日期看起来不像数字(例如 2023 年 1 月 1 日),但请记住,日期的格式在 Excel 单元格中的显示方式不同,而在后端这些仍然是数字。

例如,一个单元格可能显示 2023 年 1 月 1 日,但在后端,该单元格的值将是 44927(表示 1900 年 1 月 1 日之后经过的总天数)。

现在,如果您的日期格式正确,那么一切就都好了。

但也有可能您的日期格式不是 Excel 识别的日期格式,这意味着它最终被视为文本字符串而不是后端的数字。

例如,2023 年 1 月 1 日在 Excel 中不是有效的日期格式。

因此,如果您在 Excel 中的单元格中包含此内容,它将被视为文本字符串,并且使用它将其与其他日期进行比较可能会产生不正确的结果。

底线——在 Excel 中比较日期时,确保日期格式正确

日期可能包含隐藏的时间部分

与日期一样,时间值也以数字的形式存储在 Excel 后端。

整数表示一整天,而小数部分则表示一天的一部分或当天的时间值。

例如,如果 Excel 单元格中显示 01-01-2023 18:00:00,则后端将显示 44927.75,其中 44927 表示 01-01-2023,0.75 表示 18:00:00

现在,这是您在检查某个日期是否位于两个给定日期之间时可能遇到的问题。

您可能清楚地看到该日期介于两个给定的日期之间,但 Excel 可能会给出不同的结果。

发生这种情况的原因是,大多数时候当人们处理日期和时间时,时间部分是隐藏的,因此您只能看到日期而看不到时间值。

下面我有一个简单的例子,其中单元格 A1 和 B1 中有相同的日期,但是当我比较这两个单元格时,它告诉我它们不一样。

日期看起来相同但不同

虽然您可以清楚地看到这些日期完全相同,但您看不到的是单元格 A1 中有一个时间值被隐藏了,所以您看不到它。但是当 Excel 比较这两个单元格时,它会认为它们是不同的(这是理所当然的)。

虽然这种情况并不常见,但如果发生这种情况,有时甚至连高级 Excel 用户都会感到困惑。

在本教程中,我向您展示了几个简单的公式,您可以使用它们来检查日期是否介于两个给定的日期之间。

我还提到了比较日期和 Excel 时应该注意的一些陷阱。

推荐:在Excel中复制并粘贴多个单元格(相邻和不相邻)


发表评论