OFFSET可以单独使用,也可以和其它函数嵌套,主要是看业务场景。但前提是,我们要熟悉OFFSET本身的功能和作用。OFFSET能够返回指定行和列的数据,比如返回两行三列的数据,或者一行的三列的数据等,运用这些可以同时返回一个人的各科成绩
OFFSET参数说明
OFFSET(reference, rows, cols, [height], [width])
reference:是必须有的参数。要基于偏移量的引用,说人话就是基准,参考量,或者以它做零点
rows:必须有的参数,就是参照基准向上向下偏移的行数
cols:必须有的参数,就是参照基准向左向右偏移的列数
[height]:非必须,以经过偏移后的基准点,要返回的行也就是高(不写默认和基准点等同,其实一般也就是1)
[width]:非必须,以经过偏移后的基准点,要返回的列也就是宽(不写默认和基准点等同,其实一般也就是1)
下面看一个实际操作
=OFFSET(A1,1,1)
=OFFSET(A1,1,1,1,1)
1.我们观察到上面两个公式的返回值是一样的,也就是返回值为1行1列的时候第四,第五个是可以省略的
2.但是当返回值是多行多列时,返回值就是数组,简单说就是返回值不止一个数,此时一个单元格承载多个数据就会报错
3.这个时候我们根据返回的数量选中对应行和列(比如选中2行1列)的单元格,在公式输入栏输入公式如:=OFFSET(A1,1,1,2,1),再然后ctrl shift enter,单元格就会显示内容了
=OFFSET(A1,1,1,2,1)
相对于A1单元格行(正数向右移动,负数向左移动,这里1就是向右移动1)移动1,列(正数向下移动,负数向上移动,这里1就是向右移动1)移动1,向右移动1,向下移动1就是B2,然后以B2为起点,扩展成两行一列也就是包含B2和B3的区域
A1 | B1 | C1 | D1 | 返回1个值 | 函数 | |
A2 | B2 | C2 | D2 | B2 | =OFFSET(A1,1,1) | |
A3 | B3 | C3 | D3 | B2 | =OFFSET(A1,1,1,1,1) | |
A4 | B4 | C4 | D4 | 返回2行1列2个值 | 函数 | |
A5 | B5 | C5 | D5 | B2 | {=OFFSET(A1,1,1,2,1)} | |
A6 | B6 | C6 | D6 | B3 | {=OFFSET(A1,1,1,2,1)} | |
A7 | B7 | C7 | D7 | |||
A8 | B8 | C8 | D8 | 返回2行2列4个值 | ||
A9 | B9 | C9 | D9 | B2 | C2 | |
A10 | B10 | C10 | D10 | B3 | C3 |
OFFSET案例
上面学习了OFFSET的基本使用,下面看一个案例,给出一个同学的名字就返回他的各科成绩,下面是某班级的成绩表,我们希望右侧输入姓名,就返回对应的成绩
姓名 | 语文 | 数学 | 英语 |
赵世俊 | 69 | 60 | 70 |
骆江浩 | 96 | 96 | 86 |
姚丹亚 | 83 | 96 | 94 |
江珊 | 66 | 84 | 56 |
张曼丽 | 100 | 92 | 54 |
杨宁丽 | 100 | 90 | 61 |
刘俊丽 | 70 | 99 | 86 |
本案例用到了MATCH函数
MATCH(F14,A14:A20,0)
MATCH(查找的值,查找值所在的数组,是否精确查找0为精确查找)返回值是所在的位置
比如我们查找赵世俊在A14:A20的位置返回值是1,就是赵世俊在数组A14:A20的第一个位置
也就是第一行
=OFFSET(A13,MATCH(F14,A14:A20,0),1,1,3)
把MATCH(F14,A14:A20,0)替换成1,因为赵世俊通过MATCH函数返回值是1
函数=OFFSET(A13,MATCH(F14,A14:A20,0),1,1,3)
我们就简化:=OFFSET(A13,1,1,1,3)
OFFSET(A13,1,1,1,3)我们相对A13也就是姓名,移动一行一列,就定位到69,返回的值是1行三列,将69拓展成1行3列就是69,60,70三个数组构成的区域
评论 (0)