是否允许在Excel图表的命名范围内使用MATCH工作表函数?

时间:2015-08-13 20:45:04

标签: excel charts named-ranges

以下两个命名范围定义有效(由Excel验证),并且都突出显示相同范围的单元格。

=OFFSET('AU_ARENDOFDAY Times'!$C$1, COUNT('AU_ARENDOFDAY Times'!$C$2:$C$10000) - 29, 0, 30, 1)

=OFFSET(INDIRECT("'AU_ARENDOFDAY Times'!" & ADDRESS(MATCH(TODAY(), 'AU_ARENDOFDAY Times'!$A$1:$A$10000, 0), MATCH("RAXMTR_1", 'AU_ARENDOFDAY Times'!$A$1:$ZZ$1, 0))), -29, 0, 30, 1)

第一个命名范围被接受为图表系列,它可以很好地绘制数据。不接受第二个命名范围(指向相同的单元格)。 Excel会抛出一个错误窗口,说明"我们在此工作表中发现了一个或多个公式引用的问题。"

我尝试使用静态日期代替TODAY功能,但它仍然无法正常工作。但这不应该成为问题,因为Excel将突出显示两个命名范围的相应单元格。

我唯一能想到的是Excel图表不能使用包含MATCH函数的命名范围。这是真的?如果是这样,是否有另一种方法来完成同样的事情?

2 个答案:

答案 0 :(得分:1)

对于第二个定义的名称,请尝试:

=OFFSET('AU_ARENDOFDAY Times'!$A$1,MATCH(TODAY(), 'AU_ARENDOFDAY Times'!$A$1:$A$10000, 0)-1-29,MATCH("RAXMTR_1", 'AU_ARENDOFDAY Times'!$A$1:$ZZ$1, 0)-1, 30, 1)

希望这会有所帮助。我能够将它放在一个定义的名称中然后绘制数据。它可能是间接的,不能用于定义的名称。

答案 1 :(得分:1)

如果那些真正'都突出显示相同范围的单元格那么这对您的数据来说是特殊的。在两组样本数据中,我得到了不同的结果。依靠有时只运作的公式是不明智的。

您似乎希望在列标题中使用RAXMTR_1绘制列中的数据。在这种情况下是C列。您想要一个以TODAY()结尾的30天“窗口”数据。

抛弃所有不稳定的INDIRECTOFFSETADDRESS函数,这可能是一个更好的公式。

=INDEX('AU_ARENDOFDAY Times'!$A:$ZZ, MATCH(TODAY(), 'AU_ARENDOFDAY Times'!$A:$A, 0)-29, MATCH("RAXMTR_1",1:1, 0)):INDEX('AU_ARENDOFDAY Times'!$A:$ZZ, MATCH(TODAY(), 'AU_ARENDOFDAY Times'!$A:$A, 0), MATCH("RAXMTR_1",1:1, 0))

这确实产生与第二个公式相同的结果。使用它作为命名范围内的引用:应该没有问题(假设您有足够的数据来允许30天的后退)。

您的问题显然是关于您的数据的详细信息。使用MATCH(TODAY()-30, ...可能是一个更好的公式,而不是从匹配TODAY返回的行中减去29,但只有在日期是连续的时候才会有效。

fwiw,该公式仍然不稳定,因为TODAY function也是不稳定的。