---
layout: post
title: excel中index match用法
description: 在工作中,我们需要处理大量数据,查询与引用函数是非常常用一类函数,灵活的运用它们,可以提高工作效率。当需要在数据清单或表格中查找特定数值,或者需要查找某一单元格的引用时,可以使用查询和引用工作表函数。HiGrid采用简单的例子介绍这些函数的高级使用方法,非常容易理解index函数和match函数的使用方法
keywords: excel中index match用法
author: admin
date: 2013-10-29 11:37
category: 软件使用
tags: Excel
---


在工作中,我们需要处理大量数据,查询与引用函数是非常常用一类函数,灵活的运用它们,可以提高工作效率。当需要在数据清单或表格中查找特定数值,或者需要查找某一单元格的引用时,可以使用查询和引用工作表函数。HiGrid采用简单的例子介绍这些函数的高级使用方法,非常容易理解index函数和match函数的使用方法


##MATCH函数和INDEX函数的初级用法

假设有这样一个excel表格,这里将数据进行了简化,如果数据更多,**index和match**函数的使用方法是类似的,但多的数据更显示出match函数和index函数的威力。

![截图](http://i.imgur.com/tiRMKJW.png)

现在higrid想在上图中的`Excel`数据中查找 `hicms`是什么版本,可以使用`vlookup`,相对而言 **vlookup函数** 更简单,当然也可以使用match函数和index函数来查找。一般是将这两个函数组合起来应用,返回列表或数组中的指定行列的值。

![截图](http://i.imgur.com/3ER2W50.png)

- MATCH(查找值,查找范围,[查找类型]),excel帮助文件中是 Match(lookup_value,lookup_array,match_type);返回匹配的数值在数组中的位置而不是值
- INDEX(引用区域,行号,[列号]),excel帮助文件中是Index(Array,Row_num,Column_num);返回数组中某一行某一列的值

## INDEX函数使用方法

**index函数** 的解释:Array:数组 Row_num:行号 Column_num:列号 这里要说明的是,Row_num,Column_num 指的相对这个数组中的行与列,而不是相对整个Excel。 如Array=A$2:B$5 那么 1<=Row_num<=4,1<=Column_num<=2。
INDEX函数的功能就是返回指定单元格区域或数组常量。如果同时使用参数行号和列号,函数INDEX返回行号和列号交叉处的单元格中的值。

在INDEX数组应用中:

1. 第2或第3参数数组各个数值大小和个数表示原始数据行或列方向的位置和个数;
1. 第2或第3参数字符实际位置决定原始数据位置的字符最终的行、列放置位置;
1. 第2参数为水平数组,则行列置换,第2参数为垂直数组,则行列不置换;反之,不置换。
1. 第3参数为垂直数组,则行列置换,第3参数为水平数组,则行列不置换;反之,不置换。
1. 在行列置换的情况下,第2、第3数组参数为2,1或2;1,表示将原始数据首行或首列置换为第2列或第2行;为1,2或1;2,表示将原始数据首行或首列置换为为首列或首行;
1. 当第2参数为垂直数组,则第3参数应为水平数组(换种说法就是:第2参数和第3参数分隔符必须不同),否则表格会乱,除非有特殊需要;
1. 当第2参数的数组组数和第1参数行组数相同时,第三参数数组组数就应该和第一参数的列组数相同,或者说当第2参数的数组组数和第1参数列组数相同时,第三参数数组组数就应该和第一参数的行组数相同,这样所有的原始置换数据才不会丢失;
1. INDEX(原始数据行列数组,行组数,列组数),其中行、列组数参数携带着原始数据位置、排列转换后位置、与原始数据对应的的行列组数等信息。

只要你对以上总结的8条规律牢记在心,那么无论置换多复杂的表格,你都可以反向层层分解,见招拆招,做到心中有数。

##Match函数

**match函数** 的功能如下:
lookup_value,就是要寻找的值 loopup_array,与寻找的值进行匹配的数组 match_type, 匹配类型。-1代表查找大于或等于lookup_value的值;0代表查找等于lookup_value的第一个值;1代表小于或等于lookup_value的值。

用起来很简单,要注意的是,比如有一列是姓名 为中文,这个Excel里面,这个中文后面会有空格,这个时候匹配的话,就有可能匹配不了解决方案是,加通配符“*”,就能解决这个问题。 如 Match(A1&"*",B$1:B$5,0);(在B1加个$符代表是绝对位置)。

## index match函数与vlookup的区别

很多人也许对以上index函数和match函数的使用方法不以为然,因为使用vlookup看样子更简单,实际上index match比vlookup很多方面更胜出。

###index match函数效率更高

index和match结合的一个主要优势是效率更高,因为组合不需要查找整个数组,只需要查找 **1列**。而vlookup需要查找整个数组,速度更慢。

###index match函数可以向左查找
index和match结合的另一个优势是可以向左查找。
很多网站对excel这个非常关键的功能并没有介绍,。。。

--to be continued