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

Is the MATCH worksheet function allowed in a named range for Excel charts?

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

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

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

第一个命名范围被接受为图表系列,它绘制的数据很好。不接受第二个命名范围(指向相同的单元格)。 Excel 抛出错误 window 说 "We found a problem with one or more formula references in this worksheet."

我试过用静态日期代替 TODAY 函数,但还是不行。不过,这不应该是问题,因为 Excel 会突出显示两个命名范围的相应单元格。

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

对于第二个定义的名称试试这个:

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

希望这对您有所帮助。我能够将其放入定义的名称中,然后绘制数据。它可能是 INDIRECT 在定义的名称中不起作用。

如果这些确实是 'both highlight the same range of cells' 那么这就是您的数据的特殊性。在两组样本数据上,我得到了不同的结果。依赖仅有时有效的公式是不明智的。

看来你要在header列中用RAXMTR_1列中的数据绘制图表。在本例中是 C 列。您需要 30 天 'window' 的数据以 TODAY().

结尾

去掉所有易变的INDIRECT, OFFSET and ADDRESS函数,这可能是一个更好的公式。

=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 也是不稳定的。