Excel进行数据重新排列

原创 2007年09月28日 16:36:00
    前阵子进行数据采集,有一个软件输出的数据是以每行249个来输出的,而我们当时的数据采集要求是每行240个,这样就需要将这些数据重新排列。当时采用了笨方法,纯手工打造,每行用手重新输入的,费了好大力气。
    这阵子有些轻闲,所以上网去搜寻了下方法。没想到碰到高人指点,茅塞顿开。不敢独享,特此拿出来大家共勉。
    我这里举个简单的例子吧:
原始数据(4行8列):
1
9 10 11  12  13  14  15  16 
17 18 19  20  21  22  23  24 
25  26  27  28  29  30     

准备转换成为每行5个数据(即:6行5列),目标数据:

 1
 6 10 
11  12  13  14  15 
16  17  18  19  20 
21  22  23  24  25 
26  27  28  29  30 

在Excel中目标区的公式输入为:=OFFSET($A$1,INT(((ROW()-5)*5+COLUMN()-1)/8),MOD((ROW()-5)*5+COLUMN()-1,8))

这样就可以在目标区域得到我们想要的数据了。

上图中A5到E10的公式就是“=OFFSET($A$1,INT(((ROW()-5)*5+COLUMN()-1)/8),MOD((ROW()-5)*5+COLUMN()-1,8))”

 

下面说说这样做的原理:

1.用(ROW()-1)*5+COLUMN()-1根据行列的变化生成一个序列
   第一行是0,1,2,3,4
   第二行是5,6,7,....依次类推
2.用INT(((ROW()-1)*5+COLUMN()-1)/8)来使上述序列在是8的多少整数倍,从而得到行偏移量
3.用MOD((ROW()-1)*5+COLUMN()-1,8)来得到列偏移量
4.利用Offset得到结果。

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

2.6使用二维数组存储学生的数据,包括学号、姓名、操作系统成绩、Java成绩、高数成绩、总分;一行存储一个学生的数据;要求输入若干学生的数据,求出总分;然后按照总分由高到低重新排列;输出排序后的结果

摩尔的Java学习笔记2.6 使用二维数组存储学生的数据,包括学号、姓名、操作系统成绩、Java成绩、高数成绩、总分;一行存储一个学生的数据;要求输入若干学生的数据,求出总分;然后按照总分由高到低重新...

给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数---百度笔试题

题目:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。        要求:空间复杂度O(1),时间复杂度为O(n)。   我自己写了一下(之前写的那个不对,现在重写了,时间复...

乱序火车车厢重新排列

  • 2008年06月03日 01:38
  • 15KB
  • 下载

不改变正负数之间相对顺序重新排列数组(时间O(N),空间O(1))

不改变正负数之间相对顺序重新排列数组(时间O(N),空间O(1)) 原帖位置:http://blog.csdn.net/v_july_v/article/details/7329314 问...

[笔记]一道C语言面试题:判断字串是否可以通过重新排列字母使之对称

题目:输入一个字符串,如“adcaeceeed”,判断是否可以通过重新排列使之可以输出对称字符串,如本例可以输出“adceeeecda”,返回True。 来源:某500强企业面试题目 思路:扫...

织梦dedecms列表页显示顺序,根据个别字段值实现重新排列

织梦文章列表中,比如我要求显示最新文章,并按id降序排列,但是,附加表中有一个字段,就叫结束时间的endtime字段,要求按这个字段的值重新排序.比如要求,如果结束时间的值小于系统当前时间,则这个字段...
  • viqecel
  • viqecel
  • 2016年04月28日 20:38
  • 842

不改变正负数相对顺序重新排列数组

看到网上一个解法,空间复杂度O(1),时间复杂度O(nlogn) 做一个小算法题,提提神 一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序。...
  • lxmky
  • lxmky
  • 2012年09月16日 11:02
  • 844
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Excel进行数据重新排列
举报原因:
原因补充:

(最多只允许输入30个字)