雅乐网

计算机技术、学习成长

编程 » excel四列合并为一行

excel四列合并为一行

好久没更新了,先水一篇。。本文介绍excel中使用offset函数实现四列合并为一行的效果。

原来的表格是这样的

scrn20150523111939

 

要变成这样的效果

scrn20150523112102

先分析一下单元格的移动。

目标表格的第1 行对应了原表格的第 1 – 4 行

目标表格的第2 行对应了原表格的第 5 – 8 行

目标表格的第3 行对应了原表格的第 9 – 12 行

目标表格的每一行有8列,分别对应原表格 四行的两列。

给目标单元格每个单元格编号,由于每行8列,自然地应该把行号乘以8 再加上列号

按照从1开始数的习惯,可以把行号-1 再乘8

这样目标单元格的编号为 (行号-1)* 8 + 列号 编号如下

scrn20150523112920

现在的对应关系变成了

1,2 对应  原表格的第 1 行

3,4 对应  原表格的第 2 行

5,6 对应  原表格的第 3 行

归纳一下 一个编号对应的原表格的行号是 编号/2 +1 如果按照原表格的左上角A1为基准,需要往下移动  编号/2  行

再看一下原表格的列,奇数编号对应的是第1列,距离A1 为 0

偶数编号的对应原表格的第二列, 距离A1为1

所以按照原表格A1为标准,需要往右移动 (编号 除以2 的余数)

OFFSET(reference, rows, cols, [height], [width])

offset函数的三个必选参数是基准位置,行偏移量,列偏移量

根据上面的分析,目标表格和原表格的对应关系

按照A1为基准,

行偏移量为 编号/2

列偏移量为 编号 mod 2  (mod是取余数)

公式要用到excel中的这几个函数

row() 单元格所在的行号

column()单元格所在的列号

mod(5,3) 5除以3的余数

所以可以写出offset函数啦

offset($A$1,      (  (row()-1)*8 + column()-4  ) / 2  ,   mod( (row()-1)*8 + column()-4  ) , 2)    )

由于需要在同一个表格中使用公式,目标表格就不能使用1列和2列了。只需要把列号偏移一下即可,如果目标表格从D1开始,就需要吧列号-4

最终公式如下

使用方法如下:

2

当然,这样生成后单元格的格式是公式,可以按照数值粘贴就可以变为数值了。

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
http://www.yalewoo.com/excel_offset.html

上一篇:

下一篇:

我要评论

验证码*: 0 + 1 =