在 Excel 2010 中,我使用两个 Excel 表。一个表 (ActiveDS) 只有一个列,其中包含我们的活动数据源列表。另一个表 (ApproverRole) 有许多列,包括一个“清洁数据源”列。
我想确定“审批者角色”表中的条目是否在 ActiveDS 表中有匹配的条目。我当前的公式是
=IFERROR((MATCH([@[Clean Data Source]], ActiveDataS[Active Data Source],0)), "Not Active")
我遇到了该公式的错误。当我逐步执行公式时,错误在于解析 MATCH 函数中的“ActiveDataS[Active Data Source]”参数。它可以很好地将其转换为单元格引用。
这里发生了什么?
已编辑:我收到每个项目的 #N/A 错误。错误不是在解析完整公式时,而是在解析查找数组时。
答案1
在问题文本中,您显示了已命名的表,ActiveDS
但在公式中,有一个空格: Active DS
。
尽管 7 岁孩子的问题永远不会得到证实,但这种差异足以导致 Excel 在尝试解析该参数时失败。
就我个人而言,我总是使用这种命名惯例(它有一个名字,但我记不清了),每个单词的开头都是大写字母,其他方面基本上就像一年级时学会写字一样:例如“ThisColumnComesFirst”。它比插入需要 Shift 键的麻烦的下划线字符要容易得多,而且更易读(通常......“ActiveDSCafeteria”中的 D 和 S 都是大写的缩写,然后是下一个单词中的 C......这些突然出现,是它不是最好的一个领域)。
然而,它有一个巨大的缺点:我们习惯于在输入单独的单词时插入空格,因此可能会插入不属于该单词的空格。
当使用约定时,如果出现由于无法解析地址而导致的错误或似乎导致的错误,应该促使您立即寻找此类问题。
答案2
#N/A
表示项目不匹配。选择您认为在 ActiveData 表中有匹配项的单元格。使用以下公式
=MySheet!A1='Active DS'!A1
将引用替换为您知道匹配的两个单元格。您会发现它们不匹配。清理数据。