我正在使用 Excel 2013。
我有一个包含三列的表:Start Date、End Date和Holiday - 一列包含一个公式,用于检查假期是否介于Start Date和End 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)}
有没有办法让这个公式与表中日期的引用一起工作?