作者JieJuen (David)
看板Office
标题Re: [算表] 将数字分行
时间Wed Nov 21 15:09:56 2007
现在左边是
三个数一列
C D E F G H I J
1 2 3 1 2 3 4
4 5 6 5 6 7 8
7 8 9 9 10 11 12
10 11 12 =?=> 13 14 15 16
13 14 15 17 18 19 20
16 17 18 21 22 23 24
19 20 21
22 23 24
如何变成右边的
四个数一列?
[法一]
基本元素:
ROW()-ROW($G$1) 列号0 1 2 3...
COLUMN()-COLUMN($G$1) 栏号0 1 2 3...
列号处理:
INT((4*(ROW()-ROW($G$1))+COLUMN()-COLUMN($G$1))/3)
效果:
0 0 0 1
1 1 2 2
2 3 3 3
注: 4*(ROW()-ROW($G$1))+COLUMN()-COLUMN($G$1) 效果为
0 1 2 3
4 5 6 7
8 9 10 11
栏号处理:
MOD(ROW()-ROW($G$1)+COLUMN()-COLUMN($G$1),3)
效果:
0 1 2 0
1 2 0 1
2 0 1 2
结论:
G1
=OFFSET($C$1,
INT((4*(ROW()-ROW($G$1))+COLUMN()-COLUMN($G$1))/3),
MOD(ROW()-ROW($G$1)+COLUMN()-COLUMN($G$1),3))
[法二]
基本元素:
ROW(1:1)-1 列号0 1 2 3...
COLUMN(A:A)-1 栏号0 1 2 3...
(也可以用A1,但A1或其他有参照到的储存格被覆盖时会#REF!,
而上式当第一列或第一栏或其他有参照到的栏、列全被覆盖时会#REF!
被搬移时可能会有误.
此法公式短一点、方便些,但多一点危险)
原理同上,结论:
=OFFSET($C$1,INT((4*ROW(1:1)+COLUMN(A:A)-5)/3),MOD(ROW(1:1)+COLUMN(A:A)-2,3))
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.164.52.117
※ 编辑: JieJuen 来自: 122.123.37.251 (11/21 23:44)
1F:推 plancklin:有点复杂,不过很好用,大推 11/22 12:19
2F:推 ddx:努力看懂中...XD 11/23 23:49