公式引用Excel表

时间:2018-09-07 16:27:34

标签: excel excel-formula excel-2013 excel-tables

我正在使用Excel2013。

我有一个包含三列的表格:开始日期结束日期假日-包含用于检查是否假期介于开始日期结束日期之间。 开始日期结束日期列包含对其他计算日期的列的引用。 假日列中的公式使用Index / Match函数在假期列表中查找(在名为 SLA假期的单独工作表上) 。该表在一周的时间范围内有成千上万的记录,并且每天都会更新。

假期公式不起作用-即使在时间范围内有假期,它也会返回FALSE。在评估公式时,它表示AND函数的第一个逻辑为FALSE;但是,这是真的(9/3/2018> 8/31/2018)。该公式正确计算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]])}

Photo of table with formula working incorrectly

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)}

是否可以通过引用表中的日期来使该公式起作用?

1 个答案:

答案 0 :(得分:1)

开始日期结束日期列包含用于计算日期的公式,而不仅仅是实际日期值。我更改了假日公式,使其包含Value函数,并采用表列引用的值,从而解决了该错误。