解决这个问题首先需要明白错误值有几个类别:以下为常见错误值类型。
#DIV/0! 错误名称:"被零除"错误 公式或函数被零或空单元格除
#N/A 错误名称:"值不可用"错误 某个值对于该公式或函数不可用
#VALUE! 错误名称:值错误 公式中所用的某个值是错误的数据类型
#NAME 错误名称:"无效名称"错误 公式中包含不可识别的文本
#REF! 错误名称:"无效的单元格引用"错误 移动或删除单元格导致了无效的单元格引用,或者函数返回了引用错误信息
#NULL! 错误名称:"空值"错误 公式中的范围不相交
#NUM! 错误名称:数字错误 公式中所用的某数字有问题
通过上方表示,可以看到#N/A表示值不可用,对于lookup函数本身来说,造成错误的原因有以下几种:
1、lookup函数的lookup_value参数(也就是第一参数)值不在数据源中出现,或者本身就是#N/A结果,如下图所示:
数据源中没有0这个值,而查找值为0,lookup所执行查找为:小于等于lookup_value的值,而数据源中数据均大于0,导致结果出错。
2、数据源中就存在#N/A,如直接输入#N/A,或者使用na()函数得到#N/A。
3、公式写错,如下图所示:
所需要查找字符“a”,看起来在数据源中出现,但写公式的时候,将lookup函数lookup_vector(第二参数)选择为:B列,从而在lookup函数在B列无法找到字符"a"导致出错。
在Excel中,文本型数字与数值型数字对于函数来说也是不同类型。所以在分析出错原因时,可以通过错误的结果提示,一步步分析出来,达到最后的修改完成。
您的数据类型有问题。在出错的那个版本中,M4为数值型数据,而对应的A列为“文本型数字”,数据类型不一致,自然找不到,出现错误值。
后面的版本,要查找的数据和查找范围内的数据都为“文本”型,所以可以得到正确结果。