Excel中的match函数的应用?
推荐于2017-09-29 · 知道合伙人软件行家
1.match函数的含义
返回目标值在查找区域中的位置。
2..match函数的语法格式
=match(lookup_value, lookup_array, match_type)
=Match(目标值,查找区域,0/1/-1)
3.参数lookup_value目标值——在lookup_array(查找区域)中
参数lookup_array查找区域——包含所有目标值的连续的单元格区域,查找区域只能为一列或一行
参数match_type——
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必须按降序排列。
4.如图所示,查找5月份在查找区域B2:D2的位置。
输入公式=MATCH(C2,B2:D2,0)。
5.match函数经常和其他函数组合起来使用,如vlookup函数和index函数,具体可以观看经验Excel中index函数的使用方法和Excel中vlookup函数的使用方法
6.参数lookup_array查找区域——包含所有目标值的连续的单元格区域,查找区域只能为一列或一行
7.match_type=0(精确查找),查找精确等于lookup_value的第一个数值,返回其位置,lookup_array按任意顺序排列。
如图所示,查找值=A7,等于查找值的第一个数值=A6,返回其位置5。
输入公式=MATCH(A7,A2:A7,0),返回5,而不是6。
8.match_type=1,查找小于或等于lookup_value(目标值)的最大数值,返回其在lookup_array(查找区域)中的位置,lookup_array必须按升序排列。
如图所示,目标值为450,小于等于目标值的最大数为400,且查找区域是升序排列,返回其位置为1。
输入公式=MATCH(450,B3:D3,1)
9.match_type=-1,查找大于或等于lookup_value(目标值)的最小数值,返回其在lookup_array(查找区域)中的位置,lookup_array必须按降序排列。
如图所示,目标值为450.大于或等于目标值的最小数500,且查找区域lookup_array必须按降序排列,返回其位置为2。
输入公式=MATCH(450,E3:E5,-1)
请参阅
返回在指定方式下与指定数值匹配的数组中元素的相应位置。如果需要找出匹配元素的位置而不是匹配元素本身,则应该使用 MATCH 函数而不是 LOOKUP 函数。
语法
MATCH(lookup_value,lookup_array,match_type)
Lookup_value 为需要在数据表中查找的数值。
Lookup_value 为需要在 Look_array 中查找的数值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。
Lookup_value 可以为数值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。
Lookup_array 可能包含所要查找的数值的连续单元格区域。Lookup_array 应为数组或数组引用。
Match_type 为数字 -1、0 或 1。Match-type 指明 Microsoft Excel 如何在 lookup_array 中查找 lookup_value。
如果 match_type 为 1,函数 MATCH 查找小于或等于 lookup_value 的最大数值。Lookup_array 必须按升序排列:...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE。
如果 match_type 为 0,函数 MATCH 查找等于 lookup_value 的第一个数值。Lookup_array 可以按任何顺序排列。
如果 match_type 为 -1,函数 MATCH 查找大于或等于 lookup_value 的最小数值。Lookup_array 必须按降序排列:TRUE、FALSE、Z-A、...、2、1、0、-1、-2、...,等等。
如果省略 match_type,则假设为 1。
说明
函数 MATCH 返回 lookup_array 中目标值的位置,而不是数值本身。例如,MATCH("b",{"a","b","c"},0) 返回 2,即“b”在数组 {"a","b","c"} 中的相应位置。
查找文本值时,函数 MATCH 不区分大小写字母。
如果函数 MATCH 查找不成功,则返回错误值 #N/A。
如果 match_type 为 0 且 lookup_value 为文本,lookup_value 可以包含通配符、星号 (*) 和问号 (?)。星号可以匹配任何字符序列;问号可以匹配单个字符。
示例
如果您将示例复制到空白工作表中,可能会更易于理解该示例。
操作方法
创建空白工作簿或工作表。
请在“帮助”主题中选取示例。不要选取行或列标题。
从帮助中选取示例。
按 Ctrl+C。
在工作表中,选中单元格 A1,再按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。
1
2
3
4
5
A B
Product Count
Bananas 25
Oranges 38
Apples 40
Pears 41
公式 说明(结果)
=MATCH(39,B2:B5,1) 由于此处无正确的匹配,所以返回数据区域 B2:B5 中最接近的下一个值 (38) 的位置。(2)
=MATCH(41,B2:B5,0) 数据区域 B2:B5 中 41 的位置。(4)
=MATCH(40,B2:B5,-1) 由于数据区域 B2:B5 不是按降序排列,所以返回错误值。(#N/A)
这个时候d1输入=match(b1,a1:a7,0)返回值就是6("f"在a1:a7中的行号)
这是基本的原理
经常和index()函数一起使用!
比如:和上表一样,b1:b7为10203040506070
=index(b1:b7,match(c1,a1:a7,0),0)就能返回“f”对应的b列的值60
index可以实现反向查找,比vlookup用法更加灵活