0

我正在使用 Excel 2013。

我有一个包含三列的表:Start DateEnd DateHoliday - 一列包含一个公式,用于检查假期是否介于Start DateEnd Date之间。开始日期结束日期列包含对计算日期的其他列的引用。Holiday列中的公式使用Index/Match函数查看假期列表(在名为SLA Holidays的单独工作表上)。该表在一周的时间跨度内有数千条记录,并且每天更新。

假期公式不起作用 -FALSE即使时间范围内有假期,它也会返回。在评估公式时,它说AND函数的第一个逻辑是FALSE; 但是,这是真的(2018 年 9 月 3 日 > 2018 年 8 月 31 日)。该公式正确评估了AND函数的第二个逻辑。

当我用对包含这些日期的表之外的单元格的引用替换对开始日期结束日期的表引用时,公式可以正常工作。

下面是表格中一些记录的屏幕截图,显示了 3 列。我还包括了一个 HTML 版本的复制能力。公式如下:

{=AND(INDEX('SLA Holidays'!$A$2:$A$7,MATCH(MIN(ABS('SLA Holidays'!$A$2:$A$7-[@[Start Date]])),ABS('SLA Holidays'!$A$2:$A$7-[@[Start Date]]),0))>[@[Start Date]],INDEX('SLA Holidays'!$A$2:$A$7,MATCH(MIN(ABS('SLA Holidays'!$A$2:$A$7-[@[Start Date]])),ABS('SLA Holidays'!$A$2:$A$7-[@[Start Date]]),0))<[@[End Date]])}

公式工作不正确的表格照片

Start Date  End Date    Holiday
08/31/2018  9/4/2018    FALSE
08/31/2018  9/4/2018    FALSE
08/31/2018  9/4/2018    FALSE

当我使用完全相同的公式,但使用包含相同日期的单元格引用切换表引用时,该公式有效。这是更新的公式:

{=AND(INDEX('SLA Holidays'!$A$2:$A$7,MATCH(MIN(ABS('SLA Holidays'!$A$2:$A$7-AC5)),ABS('SLA Holidays'!$A$2:$A$7-AC5),0))>AC5,INDEX('SLA Holidays'!$A$2:$A$7,MATCH(MIN(ABS('SLA Holidays'!$A$2:$A$7-AC5)),ABS('SLA Holidays'!$A$2:$A$7-AC5),0))<AD5)}

有没有办法让这个公式与表中日期的引用一起工作?

4

1 回答 1

1

开始日期结束日期列包含计算日期的公式,而不仅仅是实际日期值。我更改了我的假日公式以包含Value函数,获取表列引用的值,这解决了错误。

于 2018-09-07T18:17:49.193 回答