今天说说如何对二维表进行匹配。先来看数据表格:
备注:以上人名,均属虚构,如有雷同,说明有缘~~
咳咳!要做什么呢!
这位亲想要得到不同地区,不同人的销售量。
阿凯提问:
“亲!能否将你的原始数据表改成正常的一维表格吗?就是平常常见的那种第一列是地区,第二列是姓名,第三列是销售量那种!如果是那种,直接套用Vlookup的多条件匹配就行啦!”
网友回应:
阿凯内心写照:
我就想呀想,想呀想,用了0.1秒钟想出来方法!
接下来是见证奇迹的时刻!!
提问:二维表,符合某种条件返回数据,什么函数最好用??
回答:Offset
提问:Offset函数会用吗?
回答:不会!
待我从头细细说来!!!!
原表重新来一次!
目标:
需求简化为,在二维表提取满足双条件信息。
二维表的应用首先想到的是Offset函数,Offset函数怎么用呢???
OFFSET函数的功能为以指定的引用为参照系,通过给定偏移量得到新的引用。返回的引用可以为一个单元格或单元格区域。并可以指定返回的行数或列数。
上面那段话你愿意读吗?不愿意我给你翻译一下:
Offset函数类似于曾经我们中学数学的坐标系公式,以某个单元格作为坐标系的坐标原点,返回符合横纵坐标的值。
Offset最简单用法:
=Offset(坐标原点单元格,向下移动的行数,向右移动的列数)
第二个参数,如果正数向下移动,如果负数向上移动
第三个参数,如果正数向右移动,如果负数向左移动
我以A1单元格为例,如何获取涂黄的单元格内容?
我们开始数数:
从A1单元格开始,需要向下移动几行?
2行!
需要向右移动几列?
1列!
So,公式就是!=OFFSET(A1,2,1)
发现想要返回二维表的值,Offset是否可以完美解决呢?
下个问题,我如何能很智能的知道向下和向右移动的行数呢?
然后我发现了一个问题:
姓名在姓名列表中的第几位,就是向下移动几行,地区在地区列表的第几位,就是向右移动几列。
给自己点赞……
那如何获取某个单元格在列表中排在第几位呢?
=match(内容,列表,0)
match函数的用法就是获取某个值在列表中排名第几。
感觉我做出来了!
当当当当——
公式:
=OFFSET($A$1,MATCH(B11,$A$2:$A$8,0),MATCH(A11,$B$1:$F$1,0))
小长!拆分一下公式
最外层就是Offset公式,且以A1单元格作为坐标原点,没什么说的哈。
里面是两个Match函数。
MATCH(B11,$A$2:$A$8,0)
找姓名在姓名列表中第几位
MATCH(A11,$B$1:$F$1,0)
找地区在地区列表中第几位
最后OFFSET函数,分别以两个MATCH函数的结果做行列偏移参数,返回需要的内容。
今天和大家一起学习了OFFSET函数和MATCH函数的组合使用。实际应用时,这个问题可以使用多种方法解决,你有什么方法,说说看吧~~
示例文件链接:
https://pan.baidu.com/s/1o8JmXpo
图文作者:阿忠凯
欢迎关注阿凯的Excel