职工信息表格 员工信息表

上次跟大家讲了,如何用VLOOKUP函数建立《员工档案管理表》 。VLOOKUP函数虽然很强大,但其基本用法中只能作正向查找,而不能反向查找,即根据前列查找后列的内容,而不能根据后列查找前列内容 。
如我用VLOOKUP函数,可以根据工号来查姓名,但是反过来不行 。但如果我用INDEX+MATCH函数组合,可实现双向查找,可顺可逆 。
接下来,我们还是以《员工档案管理表》举例,如何根据姓名来查员工信息 。
1、设置数据有效性
关键步骤:
数据—数据有效性—允许(序列)—来源(框选数据源)
2、INDEX函数
展开全文
INDEX翻译成中文的意思是“索引”,INDEX函数是指返回指定区域、指定位置的数值 。
INDEX的语法:
INDEX(array,row_num,column_num),指返回数组中指定的单元格或单元格数组的数值 。
INDEX(reference,row_num,column_num,area_num),指返回引用中指定单元格或单元格区域的引用 。
简单点说就是 INDEX(区域,第几行,第几列),返回区域第几行第几列的数值 。
那么,如何用INDEX函数来找出李四的身份证号呢?
关键步骤:
输入INDEX—框选查找区域—李四的身份证号在第3行第3列
做到这一步,很多人会直接往右边***公式,结果看似和源数据一样,但是换个姓名后面的信息并没有随之变化,所以这样是不可取的 。
3、COLUMN函数
身份证号是在源数据的第3列,出生日期是在源数据的第4列,以此类推……
这个时候,我们可以用COLUMN函数来表达列标,即COLUMN()是指查看所选择的某一个单元格所在第几列,即它是第几列 。
4、MATCH函数
COLUMN函数解决了列标的问题,行号我们要用到MATCH函数来表示 。
MATCH函数的意思是返回目标值在查找区域中的位置,语法为:
MATCH(lookup_value,lookuparray,match-type)
lookup_value:表示查询的指定内容;
lookuparray:表示查询的指定区域;
match-type:表示查询的指定方式,用数字-1、0或者1 。
match_type=0(精确查找)
查找精确等于lookup_value的排名个数值,lookup_array按任意顺序排列 。一般只使用精确查找 。
match_type=1
查找小于或等于lookup_value(目标值)的较大数值在lookup_array(查找区域)中的位置,lookup_array必须按升序排列 。
match_type=-1
查找大于或等于lookup_value(目标值)的较小数值在lookup_array(查找区域)中的位置,lookup_array必须按降序排列 。
如果我们要查找李四在源数据第几行,可以怎样表示?
关键步骤:
输入=INDEX—框选李四(需查询内容)—框选源数据姓名列(查询的区域)—0-(精确匹配)
5绝对引用

职工信息表格 员工信息表

文章插图
(错误做法)
很多人以为这样就完了,直接向右***发现公式不适用,那是因为我们没有采取绝对引用 。关于绝对引用、相对引用和混合引用这三者的区别,我们举例来说明:
1、相对引用,***公式时地址跟着发生变化,如C1单元格有公式:=A1+B1
当将公式***到C2单元格时变为:=A2+B2
当将公式***到D1单元格时变为:=B1+C1
2、绝对引用,***公式时地址不会跟着发生变化,如C1单元格有公式:=$A$1+$B$1
当将公式***到C2单元格时仍为:=$A$1+$B$1
当将公式***到D1单元格时仍为:=$A$1+$B$1
3、混合引用,***公式时地址的部分内容跟着发生变化,如C1单元格有公式:=$A1+B$1
职工信息表格 员工信息表

文章插图
当将公式***到C2单元格时变为:=$A2+B$1