Offset、match函数,你不仅需要知道,还要明白! 函数怎样用,不是说可以查看Excel帮助文档嘛。那好,我们来查!查到了,帮助是这样告诉我们的: 以指定的引用为参照系,通过给定偏移量得到新的引用。
看帮助你读懂了吗?可能此刻你心里在诅咒Excel,尼玛,能说人话吗?
既然你没懂,我来给你翻译一下:
Offset函数,其实就是类似于数学的坐标系公式,以某个单元格作为坐标系的坐标原点,返回符合横纵坐标的值。
再说得简单点:
=Offset(坐标原点单元格,向下移动的行数,向右移动的列数)
第二个参数,如果正数向下移动,如果负数向上移动。
第三个参数,如果正数向右移动,如果负数向左移动。
喂!能举个栗子吗?好,满足你!
假如,我们以A1单元格为原点来得到D3红色背景单元格的值。
一起数数:从A1单元格开始,需要向下移动几行?2行!需要向右移动几列?3列!那么公式就是:=OFFSET(A1,2,3)
你也来试试,要得到E5的值98,公式怎样写?=OFFSET(A1,4,4)
会了吗?我们来解题。C11:C14单元格的销量,能写出公式了吗?
上海&周学宗的销量就是D2单元格,=OFFSET(A1,1,3)
北京&邹银平的销量就是H3单元格,=OFFSET(A1,2,7)
广东&舒志豪的销量就是E4单元格,=OFFSET(A1,3,4)
云南&熊继超的销量就是F5单元格,=OFFSET(A1,4,5)
……
继续写下去,是不是又该骂我啦!这效率和手动去数数有什么区别?
问题来了,如何智能的知道向下和向右移动的行列数,而不是一个个去数?
先看规律,姓名在姓名列表中的第几位,就是向下移动几行,地区在地区列表的第几位,就是向右移动几列。
那有神马函数可以替代我们手动去一个个的数?它就是MATCH函数,今天的第二主角儿。
MATCH函数又是什么鬼?再看看帮助。
我再给你翻译一下,match函数就是获取某个值在列表中排名第几。
match(内容,列表,0)
看看舒志豪在姓名中第几行?=MATCH(B13,A2:A8,0),得到3,舒志豪在第3行。
再来看看上海在地区中第几列?=MATCH(A11,B1:H1,0),得到3,上海在地区中第3列。
最后,该是我们来写出完整公式的时候了。
我们直接在C11单元格输入公式:=OFFSET(A1,MATCH(B11,A2:A8,0),MATCH(A11,B1:H1,0))
如果还想一劳永逸的公式下拉到底,就需要把该固定的单元格搞成绝对引用,此时终结版公式为:
=OFFSET($A$1,MATCH(B11,$A$2:$A$8,0),MATCH(A11,$B$1:$H$1,0))
|