返回精确查找是vlookup最基本也是最常用的功能,对于数据量大的查找,其速度比菜单中的查找还快。设置vlookup第四精确查找适用于文本,也适用于数值;但对数值查找时须注意格式一致,否则会出错表一姓名张三丰李四光王麻子赵六儿姓名赵六儿姓名李四光工号KT002工号KT001工号KT001KT002KT003KT004籍贯河南性别女籍贯天津性别男女男女籍贯北京天津河北河南出生年月1970年8月1980年9月1975年3月1985年12月根据姓名在$B$9:$F$12中查找籍贯,$B$9:$F$12区域最好使用绝对引用(可在公式中选定区查找的姓名必须位于$B$6:$F$9的第一列;籍贯在$B$6:$F$9位于第四列,因此第三个参数为根据姓名在【表一】中查找籍贯【表一】是定义的单元格区域$B$9:$F$12的名称,在名称框(编辑栏左边)可以选定;也可根据工号在$C$8:$E$12中查找籍贯注意范围已改为$C$8:$E$12,确保工号在第一列;由于范围的改变,籍贯位于该范围的第3列出生年月25781根据工号在$C$8:$F$12中查找出生年月,但此时返回的是时间序列值(即格1970年8月需要重新设定单元格格式1970年8月或在公式中使用text设定格式数值近似匹配查询之基本运用
近似匹配查找通常情况下用于累进数值的查找。此时第四个参数省略,或为true,或为非0数值。(EXCEL中0等同FA这是一张个所税税率表,对于不确定的收入,可以利用近似匹配查找税率及速扣数表二级数 应税所得超过且不超过税率(%)速算扣除数 15005025002000102532000500015125450002000020375520000400002513756400006000030337576000080000356375880000100000401037591000004515375应税所得税率速算扣除数 税款5360203756975360在表中未列出,因此EXCEL查找小于5360的最大值即5000,并返回对应的税率等。注意公式中第四个参数省略,或为true,或为非0数值。
并且查找的第一列必须升序排列,否则不会返回期望的结果(需要注意的是此时不一定返回错误)。试着输入5000,你会发现税率为20%,应是15%(由条件指定),虽然对最后计算结果没有影响。以应税所得5000税率15速算扣除数 125税款625文本近似匹配查询之基本运用表三吖八嚓咑鵽发猤铪夻咔垃嘸旀噢妑七囕仨他屲夕丫帀ABCDEFGHJKLMNOPQRSTWXYZ对于文本,一般不使用近似匹配查找(非模糊查找)。
并非文本不能用于近似查找,主要是没有太多用途。除了下面这个例子:
这个例子利用文本近似匹配查找汉字的第一个拼音字母
由于EXCEL中汉字字符是按拼音排序的,因此汉字字符比较时的大小与拼音同序左边的表是根据汉字拼音首字母排列,并取各字母的临界点汉字字符(该字母的汉字字符拼音首字母家J通过将“家”与表中字符比较后,找到比“家”小的最大值“J这个例子一般用于姓名的缩写,而上面的公式只找第一个字符,因此需要修改汉字字符拼音首字母普利卡PLK这个公式取得前三个汉字字符的拼音字母。使用MID依次取出字符后由Vlookup查
使用该例关键是【表三】的建立;同理,如果要查找汉字的完整拼音,可以建立但这个方法并不一直正确,由于多音字及文字大小排序与其拼音不完全一致的原
区别查询结果的空白与0值表四姓名张三丰李四光王麻子赵六儿内容0张三丰李四光王麻子赵六儿张三丰李四光00vlookup对于查找到的0值会返回0;对于空白单元格(非空字符串)也会返回0;对空字符串仍返回空字符串。0如要对0值和空白单元格区别,可以直接判断是否=\"\"如不需要0值,可直接判断=0,或在【工具】—【选项依次序返回同一查询结果的多列内容
按姓名在【表一】中查询全部内容姓名工号性别李四光KT002女王麻子KT003男籍贯天津河北出生年月1980年9月1975年3月当查询某个结果的多列内容,并要依次取出,可使用column()函数作为index_num参数
column()函数返回公式所在列的列号,当公式复制时,会随单元格的移动相应改变
lookup_value参数使用混合引用,如$B96。即对列标绝对引用(列标前加$)、行号相对引用
上面公式只要输入C96中的公式,然后向右、向下复制就可以。
返回同一查询结果的多列(不按原次序)的内容
按姓名及不同项目(不依次序)在【表一】中查询
赵六儿王麻子性别女男籍贯河南河北出生年月1985-12-11975-3-1工号KT004KT003先由match函数确定项目内容在B8:F8区域的位置,将返注意公式中Match函数的第一个参数使用行
Vlookup函数的第一个参数使用
按部分内容模糊查询
按姓在【表一】中查询姓姓名王王麻子工号KT003性别男籍贯河北出生年月1975年3月vlookup支持通配符【*】和【?】,因此当查找内容不全时,可以使用通配符;如例公式中使用【&】将查找文本与通配符连接后查找,注意通配符连接位置注意查找中,有多个符合条件的结果时,只会返回第一个
在同一单元格按不同字段查询
在同一单元格按姓名或工号在【表一】中查询姓名或工号性别籍贯KT002女天津李四光女天津王麻子男河北出生年月1980年9月使用countif判断,如果在姓名区中有C131单元格的内1980年9月或者使用isna判断,如果按姓名查找出错,就按工号查1975年3月或者使用一个vlookup,第二、三个参数由判断结果决返回多个符合条件的查询结果
表五11123查找的结果不止一个,并要全部返回姓名工号vlookup对于包含多个结果的查找只会返回第一个结果(数据区由上向下第一个张三丰KT001但有时需要返回所有的结果。如例,需要按姓名查找同名的各个工号李四光KT002这种情况一般使用数组公式解决。但数据量大时,使用数组公式会由于计算量大李四光KT003vlookup没有直接的解决方法,需要添加辅助列(注意辅助列需添加在左侧,因张三丰KT004张三丰KT005表五左侧白色区域为辅助列,B141公式为=($C$148=C141)+B1姓名工号该公式结果为:如姓名列内容与查找姓名相同,张三丰KT001然后,在查询中查找数值1、2、3„„即可查找到对应查找内容的多个结果(注意为便于复制,vlookup第一个参数数值1、2、3„„使用函数row()返KT004KT005当然,辅助列中的公式可以改为其它,只要达到区别相同内容的目的有两个并列条件(不同字段)的查询
表六:查找某业务员对某客户的销售额业务员客户销售额商场A张三丰商场A张三丰100超市B张三丰超市B张三丰200店铺C李四光店铺C李四光300超市B李四光超市B李四光400店铺C张三丰店铺C张三丰500商场A李四光商场A李四光600对于此类根据两个或多个并列条件查
B158公式=C158&D158,即将被查找的内容
有些数据需要在两个数据间插入一特殊符号(查询数据
例如两个条件分别是:
此时就需要用其他符号将其区别:
业务员李四光客户超市B销售额400使用【&】将要查询的两个条件合并后作为查询值,在
使用数组常量的查询
一般,使用vlookup前需要有一个对应的表格供查找,即作为vlookup的Table_array参数的表格区域;但有时这个表格可能会显得累赘;如果数据不是太多而且比较固定,可以考虑使用数组常量代替单
所谓数组常量就是直接输入的一组数组,以“{}”开始结束、同一行的数值用逗号“,”分隔、同一列的数
如{10,20,30},是一行三列(横向)、包含三个元素的一维数组常量{10;20;30;40},是一列四行(纵向)、包含四个元素的一维数组常量
{10,20,30;40,50,60},是两行三列、包含六个元素的二维数组常量;二维数组常量需要行列等
如果你觉得输数组常量麻烦(要区分【,】、【;】,文本要加【\"】),
可以先将数据输入单元格区域,然后在其它单元格输入【=】,用鼠标选定该区域后按F9,显示的就是数组
其实将以前使用的vlookup公式中第三个参数(区域不要太大)选定按F9,再回车,可以看到公式正常运作;此时已使以下举例中的公式并不是数组公式,输入时不用Ctrl+Shift+Enter一齐按搬一个由chenjun版主提供的计算个人所得税的例子:应税所得税率速算扣除数 税款650020375925再搬一个前面的例子汉字字符拼音首字母是否被公式中的数组常量吓一跳?不是一个个输的,按F9得到的;海H汉字字符拼音首字母螺丝扣LSK对于此类固定的数组常量可以将其定义一个名称,公式就简洁多了,还不占用单元格公式中的【拼音】就是一个定义的名称,可以自【插入】——【名称】——从右向左查询
我们知道,vlookup查找的列必须位于查找区域的最左列,有时会需要按右面的查找左边的值
以【表一】为例,要按【姓名】查询【工号】很容易;但反过来按【工号】查找【姓名】直接使用
此时可以使用的公式很多,如lookup、index+match、offset+match、indirect+match等
但由chenjun版主提供的使用vlookup的解法我觉得很有参考价值,介绍这个用法的目的主要是学会将两个一维数组合
工号KT002姓名李四光这个公式先由【IF({1,0},$C$9:$C$12,$B$9:$B$12)】计算出内存数组:{\"KT001\可以看到,在该内存数组中,【工号】位于【姓名】的左侧,Vlookup在该内存数组中查找注意{1,0}是一行二列(横向)常量数组,后面的两个区域是多行一列(纵向),即两个数组
张三丰李四光单中的查找还快。设置vlookup第四个参数为false或0,即为精确查找。王麻子赵六儿KT001KT002KT003KT004使用绝对引用(可在公式中选定区域按F4转换),便于复制。
9位于第四列,因此第三个参数为4;精确查找,第四个参数FALSE
框(编辑栏左边)可以选定;也可在插入—名称—定义中查看修改
围的改变,籍贯位于该范围的第3列,因此第三个参数为3
(即格式没有带过来)
数值。(EXCEL中0等同FALSE,非零值均视为TRUE)
不一定返回错误)。
响。以下公式可以解决这个问题:
多用途。除了下面这个例子:
汉字字符比较时的大小与拼音同序(一般情况下)各字母的临界点汉字字符(该字母的“最小汉字”)
大值“夻”,返回J个字符,因此需要修改
使用MID依次取出字符后由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在该内存数组中查找
是多行一列(纵向),即两个数组的方向不同,这样才会生成两列多行数组
因篇幅问题不能全部显示,请点此查看更多更全内容