vlookup应用实例精确匹配查询之基本运用
精确查找是vlookup 最基本也是最常用的功能,对于数据量大的查找,其速度比菜单中的查找还快。设置vlookup 第四个精确查找适用于文本,也适用于数值;但对数值查找时须注意格式一致,否则会出错
数值近似匹配查询之基本运用
近似匹配查找通常情况下用于累进数值的查找。此时第四个参数省略,或为true,或为非0数值。(EXCEL中0等同FALS
注意公式中第四个参数省略,或为true,或为非0数值。
并且查找的第一列必须升序排列,否则不会返回期望的结果(需要注意的是此时不一定返回错误)。
试着输入5000,你会发现税率为20%,应是15%(由条件指定),虽然对最后计算结果没有影响。以下公式可以解决这个文本近似匹配查询之基本运用
返回
对于文本,一般不使用近似匹配查找(非模糊查找)。
并非文本不能用于近似查找,主要是没有太多用途。除了下面这个例子:
这个例子利用文本近似匹配查找汉字的第一个拼音字母
由于EXCEL中汉字字符是按拼音排序的,因此汉字字符比较时的大小与拼音同序(
左边的表是根据汉字拼音首字母排列,并取各字母的临界点汉字字符(该字母的
通过将“家”与表中字符比较后,找到比“家”小的最大值“J
这个例子一般用于姓名的缩写,而上面的公式只找第一个字符,因此需要修改
这个公式取得前三个汉字字符的拼音字母。使用MID依次取出字
使用该例关键是【表三】的建立;同理,如果要查找汉字的完整拼音,可以建立
但这个方法并不一直正确,由于多音字及文字大小排序与其拼音不完全一致的原区别查询结果的空白与0值
依次序返回同一查询结果的多列内容
当查询某个结果的多列内容,并要依次取出,可使用column()函数作为index_num参数
column()函数返回公式所在列的列号,当公式复制时,会随单元格的移动相应改变
lookup_value参数使用混合引用,如$B96。即对列标绝对引用(列标前加$)、行号相对引用上面公式只要输入C96中的公式,然后向右、向下复制就可以。
返回同一查询结果的多列(不按原次序)的内容
注意公式中Match函数的第一个参数使用行
Vlookup函数的第一个参数使用行按部分内容模糊查询
vlookup支持通配符【*】和【?】,因此当查找内容不全时,可以使用通配符;如例
公式中使用【&】将查找文本与通配符连接后查找,注意通配符连接位置
注意查找中,有多个符合条件的结果时,只会返回第一个
在同一单元格按不同字段查询
返回多个符合条件的查询结果
该公式结果为:如姓名列内容与查找姓名相同,则按顺序显示1、2、
为便于复制,vlookup第一个参数数值1、2、3……使用函数row()返有两个并列条件(不同字段)的查询
对于此类根据两个或多个并列条件查
B158公式=C158&D158,即将被查找的内容合
有些数据需要在两个数据间插入一特殊符号(查询数据中
例如两个条件分别是:
此时就需要用其他符号将其区别:
使用【&】将要查询的两个条件合并后作为查询值,在
使用数组常量的查询
一般,使用vlookup前需要有一个对应的表格供查找,即作为vlookup的Table_array参数的表格区域;
但有时这个表格可能会显得累赘;如果数据不是太多而且比较固定,可以考虑使用数组常量代替单
所谓数组常量就是直接输入的一组数组,以“{}”开始结束、同一行的数值用逗号“,”分隔、同一列的数值如{10,20,30},是一行三列(横向)、包含三个元素的一维数组常量
{10;20;30;40},是一列四行(纵向)、包含四个元素的一维数组常量
{10,20,30;40,50,60},是两行三列、包含六个元素的二维数组常量;二维数组常量需要行列等长如果你觉得输数组常量麻烦(要区分【,】、【;】,文本要加【"】),
可以先将数据输入单元格区域,然后在其它单元格输入【=】,用鼠标选定该区域后按F9,显示的就是数组其实将以前使用的vlookup公式中第三个参数(区域不要太大)选定按F9,再回车,可以看到公式正常运作;此时已使以下举例中的公式并不是数组公式,输入时不用Ctrl+Shift+Enter一齐按
F9得到的;
从右向左查询
我们知道,vlookup查找的列必须位于查找区域的最左列,有时会需要按右面的查找左边的值
以【表一】为例,要按【姓名】查询【工号】很容易;但反过来按【工号】查找【姓名】直接使用
此时可以使用的公式很多,如lookup、index+match、offset+match、indirect+match等但由chenjun版主提供的使用vlookup的解法我觉得很有参考价值,介绍这个用法的目的主要是学会将两个一维数组合
可以看到,在该内存数组中,【工号】位于【姓名】的左侧,Vlookup在该内存数组中查找
注意{1,0}是一行二列(横向)常量数组,后面的两个区域是多行一列(纵向),即两个数组
中的查找还快。设置vlookup第四个参数为false或0,即为精确查找。使用绝对引用(可在公式中选定区域按F4转换),便于复制。
9位于第四列,因此第三个参数为4;精确查找,第四个参数FALSE
框(编辑栏左边)可以选定;也可在插入—名称—定义中查看修改
围的改变,籍贯位于该范围的第3列,因此第三个参数为3
时间序列值(即格式没有带过来)
或为非0数值。(EXCEL中0等同FALSE,非零值均视为TRUE)
一定返回错误)。
果没有影响。以下公式可以解决这个问题:
用途。除了下面这个例子:
汉字字符比较时的大小与拼音同序(一般情况下)
字母的临界点汉字字符(该字母的“最小汉字”)
大值“夻”,返回J
个字符,因此需要修改
取出字符后由Vlookup查询到字母,最后“&”连接文本
字的完整拼音,可以建立一个由各种拼音组成的类似列表。
大小排序与其拼音不完全一致的原因,有时返回的字母可能不是你要的
的0值会返回0;
非空字符串)也会返回0;
元格区别,可以直接判断是否="",或使用len函数测试返回值的长度;
接判断=0,或在【工具】—【选项】中将【零值】去掉。
ndex_num参数
随单元格的移动相应改变
引用(列标前加$)、行号相对引用(行号前没有$);复制时引用单元格会改变。项目内容在B8:F8区域的位置,将返回值作为vlookup的第三个参数。
Match函数的第一个参数使用行号绝对引用、列标相对引用;
p函数的第一个参数使用行号相对引用、列标绝对引用;
名区中有C131单元格的内容,按姓名查找;否则按工号查找
,如果按姓名查找出错,就按工号查找;
up,第二、三个参数由判断结果决定(查找范围、列号)。
一个结果(数据区由上向下第一个)
名的各个工号
数组公式会由于计算量大,速度会很慢
列(注意辅助列需添加在左侧,因为要根据辅助列的内容查找)
C$148=C141)+B140;等同=IF($C$148=C141,1,0)+B140
查找姓名相同,则按顺序显示1、2、3……,从而将相同姓名区分
找到对应查找内容的多个结果(注意查找区域由辅助列开始)
数值1、2、3……使用函数row()返回的行号产生
同内容的目的
条件查找某个结果的问题,使用vlookup也需要添加辅助列
58,即将被查找的内容合并作为一列,并以此作为查找列。
)以示区别
的两个条件合并后作为查询值,在区域$B$158:$E$163中查询第4列内容
数的表格区域;
代替单元格区域的方法;
值用逗号“,”分隔、同一列的数值用分号“;”分隔
组常量;二维数组常量需要行列等长
定该区域后按F9,显示的就是数组常量,然后复制到公式中
可以看到公式正常运作;此时已使用了数组常量
还不占用单元格
——【名称】——【定义】中查看
姓名】直接使用vlookup就不行了
direct+match等
目的主要是学会将两个一维数组合并为一个二维数组
组:
;"KT004","赵六儿"}
侧,Vlookup在该内存数组中查找
是多行一列(纵向),即两个数组的方向不同,这样才会生成两列多行数组