Excel 二维数组(数据块)旋转/翻转技巧

原创 2017-12-30 久石六 久石六

工作中遇到个问题,需要将Excel中的数据块或者说二维数组向右旋转90度,才能再加工处理。当然,不是旋转文本方向,那太容易了,而是整体旋转改变数据块的排列组合顺序。如下所示:

这个问题如果换成是图形,那也很容易,在“格式”菜单下有旋转功能可选,可是数据块怎么旋?问问度娘,似乎只给出了一种解决方案,就是利用 Offset 函数,这个亲测也确实有效,视为第一种方法吧,可是自己经常要做这样的旋转,不停地码公式也是醉了,一不小心还会出错,还有没有其它办法呢?


下面给出自己探索出来的第二种方法,还是有点小小的骄傲的,虽然遇到这种问题的人可能很少,还是分享出来以供参考

有些人可能看不太明白,我们可以简化一点,看看其中的逻辑。如下图所示,棕红色条状代表辅助行,蓝色条状代表辅助列,箭头代表数据的顺序,那么以上转换过程就可以简化成:

上面是第一种情况——向右旋转90度,由此也可以很容易推导出其它旋转的方法。

向左旋转90度

垂直翻转

水平翻转

向右、向左旋转180度,效果是一样的:

那出个考题,如果是向右或者向左旋转360度,应该怎么做呢?


哦?有人说不知道怎么按排序,简单介绍下吧,毕竟我也很晚才认识到Excel可以这样子排序的,闲言少叙,下面酱紫:

Excel 菜单“开始” => 排序和筛选 => 自定义排序 => 蹦出下图左边的对话框=>点击“选项”按钮蹦出右边的对话框,看到没?默认的“按列排序”,选择“按行排序”就好了,然后依次选择“主要关键字”、排序依据、次序,好啦,大功告成!

Excel 二维数组(数据块)旋转/翻转技巧的更多相关文章

  1. 计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。

    //函数fun的功能为:计算x所指数组中N个数的平均值(规定所有数都为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并输出. //重难点:形参与实参之间,是否进行了 ...

  2. python中的二维数组90度旋转

    data=[[col for col in range(4)] for raw in range(4)] #创建一个二维数组 for n in data: print (n) print('\n') ...

  3. 计算机二级-C语言-对标志位的巧妙使用。对二维数组数据进行处理。对文件进行数据输入。

    //函数fun的功能是:计算形参x所指数组中平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于的移至后部,平均值作为返回值,在主函数中输出平均值和后移的数据. //重难 ...

  4. PHP导出excel文件,第二步先实现自写二维数组加入模板excel文件后导出

    今天主要研究数据加入EXCEL并导出的问题,先不从数据库提取数据导出,自己先写一个二维数组,然后遍历二维数组写入excel模板中导出,首先根据模板excel的内容书写对应的二维数组 $arr=arra ...

  5. Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印

    1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) thro ...

  6. python-Day4-迭代器-yield异步处理--装饰器--斐波那契--递归--二分算法--二维数组旋转90度--正则表达式

    本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - ...

  7. 用js实现二维数组的旋转

    我最近因为做了几个小游戏,用到了二维数组,其中有需求将这个二维数组正翻转 90°,-90°,180°. 本人是笨人,写下了存起来. 定义的基本二位数组渲染出来是这种效果. 现在想实现的结果是下面的效果 ...

  8. 从txt文件中读取数据放在二维数组中

    1.我D盘中的test.txt文件内的内容是这样的,也是随机产生的二维数组 /test.txt/ 5.440000 3.4500006.610000 6.0400008.900000 3.030000 ...

  9. C#读txt文件并写入二维数组中(txt数据行,列未知)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

随机推荐

  1. CSS中的盒子模型与 box-sizing 属性

    盒子模型是css中一个重要的概念,是开发网页必须要用的布局方法.盒子模型有两种,分别是标准 w3c 盒子模型和 ie 盒子模型. 标准 w3c 盒子模型:包括 magin(外边距).border(边框 ...

  2. 多线程thread的使用

    1.thread是多线程,凡是thread的子类都是一个线程. 2.thread必须调用start方法进开启线程,不能直接调用Runnable中的run方法,因为直接调用run方法没有创建新的线程,就 ...

  3. 在react/redux中使用Immutable

    在redux中使用Immutable 1.什么是Immutable? Immutable是一旦创建,就不能被更改的数据. 对Immutable对象的任何修改或添加删除操作都会返回一个新的Immutab ...

  4. JavaScript 之 DOM

    1. DOM DOM:Document Object Model 文档对象模型,定义访问和操作结构化文档(HTML)的方式. 在 HTML DOM (Document Object Model) 中 ...

  5. oracle累积求和分析函数sum over的使用

    oracle sum()over函数的使用 over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用. over函数的参数:over(partit ...

  6. tp5 base64 图片上传

    /** * 保存图片 */ public function uploads($value='') { // $file = base64_decode(request()->file('imag ...

  7. linux中运行.sql文件

    1.linux目录结构 2.假设home下面有a.sql文件 先得use databasename,要不会报错 “No Database Selected” 然后source /home/a.sql ...

  8. laravel 解决保存Emoji 表情问题

    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; ALTER TABLE table ...

  9. iOS动画学习

    学习一下动画,感谢以下大神的文章:    UIView:基础动画.关键帧动画.转场动画 Core Animation :基础动画,关键帧动画,动画组,转场动画,逐帧动画 CALayer :CALaye ...

  10. cython 成功创建import 模块

    又是因为别人代码里有这么一个部分,用到了cython,,简而言之,就是利用这个模块调用C语言,从而加速程序运行,其中具体怎么调用我还没整清楚,但基本用法差不多了解了. 1 安装:https://www ...