Board logo

標題: 關於使用excel做重新排列 [打印本頁]

作者: wei9133    時間: 2018-3-26 18:36     標題: 關於使用excel做重新排列

關於使用excel做重新排列

我需要將a4對切並重新排列順序
假設總共有18個數字 (此數字量不固定)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

照原本的印出順序應該是 (這裡共9張a4紙)
1        3        5        7        9        11        13        15        17
2        4        6        8        10        12        14        16        18
這樣對切後順序就不是1~18,而是1.3.5.7.9.11.13.15.17.2.4.6.8.10.12.14.16.18

我需要的印出順序應為
1        2        3        4        5        6        7        8        9
10        11        12        13        14        15        16        17        18
這樣才能將a4對切後直接將下面那疊放在上面那疊之後
成為1~18

目前是有發現規律
先用公式去除以2
=ROUNDUP(COUNTA(A2:A101)/2,0)
然後上半部的數字減遞增數量
1-0        3-1        5-2        7-3        9-4        11-5        13-6        15-7        17-8        一路到總數/2-1
而下半部則是數字加遞減數量
2+8        4+7        6+6        8+5        10+4        12+3        14+2        16+1        18+0
請問有辦法用excel 2003解決嗎? 若無法只以excel處理是否可用2003的VBA處理呢

[attach]28471[/attach]

p.s上述數字指的是位置而不是內容,可以視為儲存格的位置
也就是a10的值要放到b2
作者: hcm19522    時間: 2018-3-27 10:33

http://blog.xuite.net/hcm19522/twblog/573012877
作者: wei9133    時間: 2018-3-28 01:26

回復 2# hcm19522

您好,感謝您的回覆
目前看起來是符合我要用的樣子,過幾天有要用到的時候再做實際操做看看
看起來要增加數量應該是修改A的值即可
再次感謝您

C2:C65535=IF(A2="","",ROUNDUP(COUNTA(A$2:A$65535)/2,)*(MOD(ROW(A1),2)=0)+INT(ROW(A2)/2))

D2:D65535=IF(A2="","",OFFSET(A$1,ROUNDUP(COUNTA(A$2:A$65535)/2,)*(MOD(ROW(A1),2)=0)+INT(ROW(A2)/2),))



[attach]28478[/attach]
作者: wei9133    時間: 2018-3-28 02:19

回復 2# hcm19522
不好意思,改了一下東西,因為實際操作中不需要第一行,複製的時候是複製整欄再到其他地方做處理
但改了之後發現若不為整除會多出一個0的部分,想請位可以將那個多出的部分放成第一個值或最後一個值嗎? (A1 OR "A"end)
[attach]28479[/attach]
整個檔案在附件中
[attach]28480[/attach]

再次麻煩您了 m(_ _)m
作者: hcm19522    時間: 2018-3-28 10:08

回復 4# wei9133


    E2=IF(A2="","",OFFSET(A$1,ROUNDUP(COUNTA(A$2:A$9999)/2,)*(MOD(ROW(A1),2)=0)+INT(ROW(A2)/2),))
作者: wei9133    時間: 2018-3-31 21:12

回復  wei9133


    E2=IF(A2="","",OFFSET(A$1,ROUNDUP(COUNTA(A$2:A$9999)/2,)*(MOD(ROW(A1),2)=0)+ ...
hcm19522 發表於 2018-3-28 10:08



  你好,我改完的是不要第一欄的狀況
所以需要從E1開始拉,用上這個公式A1位置的部分會不見,而且整個等於往後一格了
[attach]28491[/attach]
還請協助修改公式,要向C那欄表示位置的一樣,不過C那欄的問題是最後一個數字會不見
[attach]28493[/attach]

前面沒有說清楚還請你見諒,詳細請用附見檔案看比較清楚
附件的檔案C欄少最後一個,E欄少第一個

[attach]28492[/attach]
作者: hcm19522    時間: 2018-4-1 09:49

E1=IF(A1="","",OFFSET(A$1,ROUNDUP(COUNTA(A$1:A$9999)/2,)*(MOD(ROW(A1),2)=0)+INT(ROW(A2)/2)-1,))
作者: Hsieh    時間: 2018-4-3 15:07

回復 6# wei9133


    =IF(ROW(A1)>COUNTA($A:$A),"",OFFSET($A$1,CHOOSE(MOD(ROW(A1)-1,2)+1,INT((ROW(A1)-1)/2),ROUNDDOWN(COUNTA($A:$A)/2,0)+INT((ROW(A1)-1)/2)),))
作者: wei9133    時間: 2018-6-19 21:56

回復  wei9133


    =IF(ROW(A1)>COUNTA($AA),"",OFFSET($A$1,CHOOSE(MOD(ROW(A1)-1,2)+1,INT((ROW( ...
Hsieh 發表於 2018-4-3 15:07



    你好,不好意思翻了舊文了...
E的欄位用了你的公式能夠正常運做了
但C欄還是少最後一個的位置
原本C欄為第一格公式為
=IF(A2="","",ROUNDUP(COUNTA(A$2:A$65534)/2,)*(MOD(ROW(A1),2)=0)+INT(ROW(A2)/2))
[attach]28866[/attach]
在這裡的部分第38個位置就不顯示了,能否讓他顯示呢?
需要看檔案的話請參考附件
[attach]28867[/attach]
先感謝你的幫助與抽空回覆
作者: 准提部林    時間: 2018-6-20 11:53

回復 9# wei9133


C1:
=IF(A1="","",ROUNDUP(COUNTA(A:A)/2,)*MOD(ROW(A2),2)+INT(ROW(A2)/2))

E1:
=IF(A1="","",INDEX(A:A,ROUNDUP(COUNTA(A:A)/2,)*MOD(ROW(A2),2)+INT(ROW(A2)/2)))




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)