Excel 验证列表公式在公式求值发现 None 时生成错误

Excel Validation List Formula Generates Error When Formula Evaluation Finds None

所以我一直在尝试在数据验证中使用动态下拉列表,并且取得了很大的成功,但出于某种原因,这个特定的公式让我很不爽:

=IF(ISERROR(INDEX(INDIRECT(A2&"SL1"),1,1)),A1,INDIRECT(A2&"SL"&INDEX(LevelO, V2, MATCH(A2, LevelO[#Headers]))))

我以前使用过它的所有组件,没有任何问题。但是,最后一个 INDEX 导致了问题。如果我删除它并对列号进行硬编码,那么它看起来像这样:

=IF(ISERROR(INDEX(INDIRECT(A2&"SL1"),1,1)),A1,INDIRECT(A2&"SL"&9))

然后它工作正常。为什么我不能在 INDIRECT 函数中使用 INDEX 函数,而反过来却很好?顺便说一下,所有适用的表和范围都存在,这不是问题。当我将第一个公式放入单元格时,它会很好地评估所有命名范围(使用公式评估)。这是 Excel 2007.

首先你可以在*公式选项卡名称管理器中创建一个名称 ,然后给你的新 name 起个名字,然后把你的公式放在 refers to 中。完成后,您可以在数据验证中使用相同的名称,而不是将您的公式放在引用框中,插入您创建的名称。 它应该有效。