ms excel 2007,vlookup #n / a error

时间:2014-09-25 22:23:35

标签: excel-formula vlookup

This question is an extension of this - click me:

所以我有7个有序的复选框,生成128种可能被检查/取消选中的组合。每个复选框都链接到一个显示其状态的单元格 - true = 1,false = 0。

然后我有一个单元格将所有7个复选框的状态连接成一个7位数的字符串,例如1000011或0000000或1110011等 - 为我的查找表提供查找值(将每个可能的组合指定为一段文本)。

我遇到的问题是vlookup没有找到以前导1开头的字符串,例如1000001,或1110000,或1001110等,但奇怪的是匹配其中一个以前导1 - “10000000”开头的字符串。换句话说,当我只选择7的第一个复选框时,我会得到文本。当我选择第一个复选框以及其他6的任意组合时,我得到一个#N / A.当我取消选中第一个复选框时,使用其他复选框,我会得到文本。奇怪,我知道。

有人可以帮忙解决这个问题吗? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

简短回答:提供 FALSE 作为第4个 VLOOKUP()参数。


如果省略, 范围搜索 应该为TRUE,在这种情况下,VLOOKUP()列表中的项目顺序 <强>事,因为它们被理解为阈值,而不是单数值。

来自 VLOOKUP()帮助:

  

Lookup_value 要在表格数组的第一列中搜索的值。 Lookup_value可以是值或引用。如果   lookup_value 小于第一个中的最小值   table_array的列,VLOOKUP返回#N / A错误值。

现在仔细阅读:

  

Range_lookup 一个逻辑值,指定是否需要   VLOOKUP找到完全匹配或近似匹配:

     

如果为TRUE或   省略,返回精确或近似匹配。如果完全匹配   找不到,小于lookup_value的下一个最大值是   回。

     

必须放入table_array第一列中的值   升序排序;否则,VLOOKUP可能不会给出正确的   值。您可以通过选择排序来按升序排列值   从“数据”菜单中选择命令并选择“升序”。更多   信息,请参阅默认排序顺序   如果 FALSE ,VLOOKUP只会找到   完全匹配。在这种情况下,第一列中的值   table_array不需要排序。如果有两个或更多值   在table_array的第一列中,与lookup_value匹配,   使用的第一个值。如果未找到完全匹配,则表示错误   值#N / A被返回。

答案 1 :(得分:2)

您可以检查origin的格式是否等于目标的所有值,我的意思是,如果您在查找字段中将1000001作为NUMBER,并且在查找表中您具有与TEXT相同的值,则VLOOKUP永远不会找到它,因为Excel与NUMBER的值不同,值与TEXT不同。

我几乎可以肯定,在您的查找表中,您有一些值为NUMBER;要解决这个问题,当你拥有所有可能的组合时,你必须只选择查找表的列,然后转到数据 - &gt;文本到列,然后单击下一步 - &gt;下一步 - &gt;选择“文字”选项 - &gt;完成

如果这对您有用,请告诉我们。