match函数
目的:查询函数,范围单元格中搜索特定的项,然后返回该项在此区域中的相对位置。
For example:让 match 去【隔壁办公室】找【老张】
Match 回复:【老张】坐在【隔壁办公室】第【四】个座位上
公式:【= match (要查找的值,查找的区域,匹配方式】
问题一:如何在【数据源】表中查询到【客户 ID 】列中单元格内容为【 CHOPS 】的位置
=MATCH(A2,数据源!A:A,0)
第一参数【要查找的值】:可以是文本、数值或逻辑值,本题中是【A2】 CHOPS
第二参数【查找的区域】:即要搜索的单元格区域,本题中要搜索的区域是【数据源】表中的 A 列【客户 ID 】列
第三参数【匹配类型】:本题的匹配类型为【0】精准匹配(最常用精确匹配)
index函数
目的:引用函数,根据指定的行和列找到某单元格的内容。
公式:【= index (要查找的区域,查找值的行,查找值的列】
问题二:如何根据【客户 ID 】得到【公司名称】
=INDEX(数据源!B:B,15)
第一参数【要查找的区域】:即要搜索的单元格区域,本题中为【数据源】表中【公司名称】所在列 B 列
第二参数【查找值的行】:即要查找的【公司名称】在【要查找的区域】中所在的行数,由上文 match 函数可知,在第【15】行。
第三参数【查找值的列】:选填。即要查找的【公司名称】在【要查找的区域】中所在的列数,由于本题【查找区域】只有 B 列一列,因此可以不填,或填【1】
因此公式为:【=INDEX(数据源!B:B,15)】
问题三:INDEX和MATCH结合使用,通过客户ID找出公司名称。
=INDEX(数据源!B:B,MATCH(A2,数据源!A:A,0))
补充: column 函数
目的:用来找到某个单元格在第几列,也就是寻找它的列号。
公式:【= COLUMN (单元格)】
比如,【= COLUMN (C1)】, C 是第三列,所以得到结果为【3】
【= COLUMN ()】括号内什么都不填,会引用到当前所在单元格的列号
使用 vlookup 进行多列填充
(对于多列填充可以引用Vlookup数组来做,会简单很多)
问题:如何根据【客户 ID 】查询【公司名称】【地址】【联系人姓名】【电话】【城市】
当【数据源】表头与【新表】表头一致时:
通俗易懂来解释一下这个数组的底层逻辑
bash
COLUMN(B1:G1)等价于
COLUMN(B1),COLUMN(C1),COLUMN(D1),COLUMN(E1),COLUMN(F1),COLUMN(G1).
意思就是说你不想一个个Vlookup的写,
VLOOKUP( D 4 , 数据源 ! D4,数据源! D4,数据源!A: G , C O L U M N ( 数据源 ! B 1 ) , 0 ) . . . . . V L O O K U P ( G,COLUMN(数据源!B1),0) ..... VLOOKUP( G,COLUMN(数据源!B1),0).....VLOOKUP(D4,数据源! A : A: A:G,COLUMN(数据源!G1),0)
就可以直接用一个数组公式搞定
公式 =VLOOKUP( D 4 , 数据源 ! D4,数据源! D4,数据源!A:$G,COLUMN(数据源!B1:G1),0)
总结:
MATCH、INDEX和VLOOKUP函数是Excel中非常实用的函数的综合应用。MATCH函数用于查找某个值在给定范围内的位置,INDEX函数用于根据行号和列号从给定范围中返回一个值,而VLOOKUP函数用于在指定范围中查找某个值,并返回该值所在行的指定列的值,vlookup更高级用法的就是加入数组用法。