offset函数

功能

以指定的(单元格或相连单元格区域的引用)为参照系,通过给定偏移量得到新的引用。返回的引用可以是一个单元格也可以是一个区域(可以指定行列数,即数组)。

语法

=offset( reference, rows, cols, [height], [width])

=offset(参照单元格, 行偏移量, 列偏移量, 返回几行, 返回几列)

参数解释

  • 参数Reference —— 参照单元格(单元格或相连单元格区域的引用)。否则,offset函数返回错误值#VALUE!
  • 参数Rows——行偏移量。正数(代表在参照单元格的下方),负数(代表在参照单元格的上方)。
  • 参数Cols——列偏移量。正数(代表在参照单元格的右边)或负数(代表在参照单元格的左边)。
  • 参数Height——返回几行(必须为正数),即所要返回的引用区域的行数。
  • 参数Width——返回几列(必须为正数),即所要返回的引用区域的列数。

最后2个参数不指定时,默认返回1行1列。

实例

输入公式:=offset(A1,1,1,1,1) -- 返回A1的右下角单元格

输入公式:=sum(offset(A1,1,1,2,2)) -- 返回A1的右下角2*2单元格,并进行求和

可通过F9按钮查看数据。

另外,也可以通过选定2*2单元格,再进行输入公式,按住三键CTRL+SHIFT+ENTER进行数组计算。

三键(CTRL+SHIFT+ENTER) -- 数组计算

行列转换的三种方式

1.右键转置

复制源数据--右键--选择性粘贴--勾“转置”,确定。

2.转置公式TRANSPOSE

  • 列转行 → 先选中横向连续的N个空白单元格,在编辑栏输入公式=TRANSPOSE($A$1:$A$10),然后按三键CTRL+SHIFT+ENTER即可;
  • 反之,行转列则先选中竖向的单元格区域,后续操作类似。

$表示绝对引用,可按F4直接切换。

3.引用函数OFFSET+ROWS/COLUMN(支持随时更新数据)

方法一、方法二只能一次性转置,后期无法随时更新数据。

  • 列转行 → 输入公式 =OFFSET($A$1,COLUMN(A1)-1,0,1,1)向右拉
  • 行转列 → 输入公式=OFFSET($A$1,0,ROW(A1)-1,1,1)向下拉

一行(列)转多行多列

结合OFFSET函数与ROW/COLUMN函数进行嵌套使用,即可实现。

1.一列转多列多行(或多行多列)

①先列后行,比如一列数据转为四列多行。

在目标区域第一个单元格输入以下公式,然后向右拉到第4列,再下拉直到出现空白。

=OFFSET($A$1,COLUMN(A1)-1+(ROW(A1)-1)*4,)&""

②先行后列,比如一列数据转为四行多列。

在单元格输入以下公式,然后向下拉到第4行,再右拉直到出现空白。

=OFFSET($A$1,ROW(A1)-1+COLUMN(A1)*4-4,)&""

2.一行转多列多行(或多行多列)

①先列后行,比如一行数据转为三列多行。

同样,此例在单元格输入以下公式,然后向右拉到第3列,再下拉直到出现空白。

=OFFSET($A$1,,(COLUMN(A1)-1)+(ROW(A1)-1)*3,)&""

②先行后列,比如一列数据转为三行多列。

在单元格输入以下公式,然后向下拉到第3行,再右拉直到出现空白。

=OFFSET($A$1,,(ROW(A1)-1)+(COLUMN(A1)-1)*3,)&""

3.多行多列转一列

①先向下引用源数据,再向右引用。

单元格输入以下公式,下拉直到出现空白。

=OFFSET($A$1,MOD(ROW(A6),6),ROW(A6)/6-1,)&""

②先向右引用源数据,再向下引用。

单元格输入以下公式,下拉直到出现空白。

=OFFSET($A$1,ROW(A5)/5-1,MOD(ROW(A5),5))&""

4.多行多列转一行

多行多列数据转成单行的情况实际应用中应该不算常见,不过这里也一并整理了,若需要可直接套用公式。

①先向右引用源数据,再向下引用。

单元格输入以下公式,右拉直到出现空白。

=OFFSET($A$1,INT(COLUMN(F1)/6)-1,MOD(COLUMN(F1),6))&""

②先向下引用源数据,再向右引用。

单元格输入以下公式,右拉直到出现空白。

=OFFSET($A$1,MOD(COLUMN(E1),5),INT(COLUMN(E1)/5)-1)&""

①ROW()返回行号,比如ROW(A2)=2;

②COLUMN()返回列号,比如COLUMN(F1)=6;

③MOD()求余数,比如MOD(1,5)=1,即1÷5余数是1,再比如MOD(5,5)=0,因为5被5整除,没有余数;

④上面每个公式最后都加了&"",作用是把引用空单元格得到的0去掉,显示为空白;

⑤上面公式中用到不少逗号,(英文半角状态下),不能随意省略或移动位置,每一个小豆芽都有它存在的意义。

参考链接1:Excel中offset函数的使用方法

参考链接2:Excel行列互转的三种方法

参考链接3:EXCEL中一列(行)转多行多列或多行多列转一列(行)

Excel学习笔记:行列转换的更多相关文章

  1. Excel学习笔记杂荟

    Excel学习 一.工具->选项 可以对整个excel里面的东西进行编辑,里面有隐藏行号,下拉档等选项,有文档作者信息. 隐藏网格等 二.单元格内容比较大可以右击单元格->设置单元格格式- ...

  2. handsontable前端excel学习笔记

    暂时没有好的中文资料,大概找了三遍随便看看,之后重点研究其github 1.Handsontable 学习笔记-Methods 2. Handsontable通用方法 3.handsontable的核 ...

  3. C++学习笔记33 转换操作符

    有时候,我们要转换为类类型和类类型,同时,这两个类继承关系不存在,这时候我们就需要一些所谓的转换操作符运营商. 一个简单的例子.类别A转换为int种类 #include <iostream> ...

  4. Excel学习笔记:vlookup基础及多条件查找

    一.vlookup基础 关于vlookup的基础不多记录,相信基本的使用方法大家都懂得. 使用格式:=vlookup(搜索值,搜索范围,列号,是否精准匹配) =VLOOKUP(E2,$B$2:$C$6 ...

  5. opencv学习笔记——颜色空间转换函数cv::cvtColor详解

    cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致. 具体 ...

  6. 6.4(java学习笔记)转换流

    一.乱码问题 我们来看下列例子: public class ConStream { //当前平台默认采用GBK public static void main(String[] args){ Stri ...

  7. EXCEL 学习笔记

    上一次学院培训学生干部,讲了这个,发现自己EXCEL还是弱爆了.分享一些上次学到的东西. 1. 字符串拼接: 2.排名快速生成 RAND()随机函数 RANK(num,ref,[order]) 第一列 ...

  8. Vue学习笔记-jsonl转换显示工具JsonView安装及使用

    一  使用环境: windows 7 64位操作系统 二  jsonl转换显示工具JsonView安装及使用 1.下载: https://github.com/gildas-lormeau/JSONV ...

  9. Excel学习笔记

    ---恢复内容开始--- -----------随学随记----------- 获取当前日期: 获取当前系统时间,包含年月日时分秒: =NOW() 获取当前系统时间,包含年月日: =TODAY() 只 ...

随机推荐

  1. Eureka参数配置项详解

    Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考. Eure ...

  2. HTTP中GET请求与POST请求的区别

    GET和POST是HTTP请求的两种基本方法.最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数.但这只是表象,或者说只是现象,并不是核心.本文将细细谈谈对它们的 ...

  3. LC 725. Split Linked List in Parts

    Given a (singly) linked list with head node root, write a function to split the linked list into k c ...

  4. [Java复习] Java基础 Basic

    Q1面向对象 类.对象特征? 类:对事物逻辑算法或概念的抽象,描述一类对象的行为和状态. OOP三大特征,封装,继承,多态 封装:隐藏属性实现细节,只公开接口.将抽象的数据和行为结合,形成类.目的是简 ...

  5. curl获取远程页面

    // 创建一个新cURL资源$ch = curl_init(); // 设置URL和相应的选项$options = array(CURLOPT_URL => 'http://www.w3csch ...

  6. NLP基础

    1  自然语言处理三大特征抽取器(CNN/RNN/TF)比较 白衣骑士Transformer:盖世英雄站上舞台 华山论剑:三大特征抽取器比较 综合排名情况 以上介绍内容是从几个不同角度来对RNN/CN ...

  7. python-Web-django-商城-session存入数据库

    utils: '''用户session''' import datetime from app01.models import Sessions ''' iii = request.session.s ...

  8. 前端面试经典题之apply与call的比较

    在讲apply和call之前,我们需要先清楚在js中,this指向的是什么. 大家可以参考一下阮一峰老师写的关于JavaScript中this的原理讲解文章:http://www.ruanyifeng ...

  9. 攻防世界新手Misc writeup

    ext3 在Linux,使用root账户挂载linux文件,打开后使用find *|grep flag查找到一个flag.txt,打开后是base64编码,解码获得flag. give_you_fla ...

  10. 50道Kafka面试题和解析(转载)

    转载:https://zhuanlan.zhihu.com/p/78912551 前言 Apache Kafka的受欢迎程度很高,Kafka拥有充足的就业机会和职业前景.此外,在这个时代拥有kafka ...