1. 首页 > 科技

如图,Lookup函数模糊查找时已将查找区域进行排序,为什么查找出来的值还是不对?(使用lookup函数查找时为什么前几个是正确的,后面的则是错误的值呢?)

如图,Lookup函数模糊查找时已将查找区域进行排序,为什么查找出来的值还是不对?(使用lookup函数查找时为什么前几个是正确的,后面的则是错误的值呢?)

使用lookup函数查找时为什么前几个是正确的,后面的则是错误的值呢?

这是利用了LOOKUP函数的向后兼容性,对于多条件查询特别有效,不用按数组公式方式输入。当有多个条件符合时,总是返回最后一个。

LOOKUP函数,当找不到查找值时,会返回小于查找值的最大值所对应的数据,现在要查找的是1,但后面结果只有两种0和#DIV/0!,符合条件的为0,不符的为#DIV/0!,永远找不到1,所以会返回最后一个0,所对应的数据,但是如果所有条件都不符合,则全部都是#DIV/0!,则结果返回错误值#N/A。

上面的公式必须加绝对引用符,否则就不能向下向右填充了:

=LOOKUP(1,0/(($B$3:$B$20=H$2)*($C$3:$C$20=$G11)),$D$3:$D$20)

为什么VLOOKUP设置了精确查找,却仍然是模糊查找结果?

根据你的问题描述,按理来说确实是#N/A才对,但是你的确能查出来,那么这个关键点就在你的查找值里面,不知道你知不知道有通配符这个东西。

恰好你的查找值里面就有一个*符号的通配符,这个符号表示任意字符,可以代替任意的字符的一个通配符号。下面我举了个例子如图

A45是源数据,B45是按你的方式输入的VLOOKUP公式

=VLOOKUP("外箱尺寸45*45",A45:A47,1,0)

这个*符号通配符刚好替代了4500里面的两个0,因此可以查找得到

为了准确的查找公式应该是B46的方式,如图

把源数据的*号替换为数学符号的✖️号

望采纳,谢谢!

在用vlookup查找时,结果为什么顺序不对?

vlookup函数的语法用通俗的话说就是:vlookup(要查找的内容,查找的范围,要返回的数据在查找的范围内相对查找内容偏移的行数,查找内容匹配类型)

查找内容匹配类型有TRUE,FALSE,"".如果为TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于y要查找内容的最大数值;如果为FALSE,函数 将返回精确匹配值。如果找不到,则返回错误值#N/A。

关键是我没见到你的函数具体如何设置的,不太好分析,能补充一下吗?

姓名列是不是代发工资!的A列 如果是公式中的范围改为代发工资!$A:$C;

返回结果是不是C列的值,第3个参数应该是3;第四个参数改为0,或者TRUE或者FALSE,

试一下吧,祝你成功

你检查一下第一个表中的名字,后面多了空格,试一下把空格删掉,你的公式就行了 ,不删的话,第四个参数只能用TRUE

vlookup函数中当第四个参数为1时,工作表区域首列应该按照升序还是降序排列,为什么叫模糊查找?

工作表中的第一列中的值必须以升序排序;否则 VLOOKUP 可能无法返回正确的值。vlookup函数中第四个参数为逻辑值“Range_lookup ”。用于选择VLOOKUP 查找精确的匹配值还是近似匹配值。所以叫做”模糊查找“。

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

Lookup_value 为需要在表格数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)第一列中查找的数值。Lookup_value 可以为数值或引用。若 lookup_value 小于 table_array 第一列中的最小值,VLOOKUP 返回错误值 #N/A。

Table_array 为两列或多列数据。使用对区域或区域名称的引用。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。

Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num :

小于 1,VLOOKUP 返回错误值 #VALUE!。

大于 table_array 的列数,VLOOKUP 返回错误值 #REF!。

Range_lookup 为逻辑值,指定希望 VLOOKUP 查找精确的匹配值还是近似匹配值:

如果为 TRUE 或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。

table_array 第一列中的值必须以升序排序;否则 VLOOKUP 可能无法返回正确的值。有关详细信息,请参阅排序数据。

如果为 FALSE,VLOOKUP 将只寻找精确匹配值。在此情况下,table_array 第一列的值不需要排序。如果 table_array 第一列中有两个或多个值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。