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. hbuider配置初始

    { "forEach": { "prefix": "fec", "body": [ ".forEach(fun ...

  2. Descriptors;Hello1 project中的Web.xml

    Deployment Descriptors(描述符)是一个xml文件,用来描述如何部署一个模块或者应用(根据描述符中定义的配置和容器选项).举例来说,一个EJB的部署描述符会向EJB容器传递如何管理 ...

  3. iTerm2 + oh my zsh +agnoster 打造最强Mac终端

    链接: http://www.siguoya.name/pc/home/article/256 http://www.jianshu.com/p/fabd40cf83fe http://www.jia ...

  4. UEBA 学术界研究现状——用户行为异常检测思路:序列挖掘prefixspan,HMM,LSTM/CNN,SVM异常检测,聚类CURE算法

    论文 技术分析<关于网络分层信息泄漏点快速检测仿真> "1.基于动态阈值的泄露点快速检测方法,采样Mallat算法对网络分层信息的离散采样数据进行离散小波变换;利用滑动窗口对该尺 ...

  5. js实现数组去重

    1.遍历 let aArray = [1,2,2,3,3,"3"] let bArray = [] for(const a of aArray){ let index = bArr ...

  6. learning makefile = and :=

  7. 调用shutdown.sh后出现could not contact localhost8005 tomcat may not be running报错问题

    之前调用tomcat的shutdown.sh无法关闭tomcat,一直报could not contact localhost8005 tomcat may not be running错. 在网上找 ...

  8. 运维grep语法

    grep的语法和用法 grep命令的格式: grep   [options]   PATTERN  [FILE] 其中:1,pattern是用正则表达式书写的模式.2,FILE是要查找的文件,可以是用 ...

  9. 强大的拖拽组件:React DnD 的使用

    强大的拖拽组件:React DnD 的使用 react.js 10.6k 次阅读  ·  读完需要 25 分钟 17 文章首发我的个人blog : 原文链接 学习 React DnD 的最初原因是阅读 ...

  10. 自动化测试-1.selenium简介

    1. selenium一个自动化测试工具,适用于测试web系统2. selenium支持多种编程语言:python .java .c#.ruby3.selenium支持多浏览器,selenium脚本可 ...