berry asked in 商業與財經投資 · 1 decade ago

Excel高手請幫幫我!!!儲存格欄列轉換問題

有一個Excel的檔案如下:

公司名 年月 報酬率 市值 股價淨值比

 A  1   a   b   c  

 A  2   d   l   i  

 A  3   v   s   p  

 A  4   b   w   o

    ˙

    ˙

    ˙ 

 B  1   g   h   u  

 B  2   f   y   f  

 B  3   d   w   h  

 B  4   s   w   g

    ˙

    ˙

    ˙  

 C  1   b   f   k  

 C  2   j   g   k  

 C  3   d   w   k  

 C  4   e   h   k 

    ˙

    ˙

    ˙

(共有12個月份) 

想將它變成以下格式的檔案:

        1月           2月˙˙˙˙˙˙˙˙12月

公司名 報酬率 市值 股價淨值比 報酬率 市值 股價淨值比

 A   a   b   c    d   l   i  

 B   g   h   u    f   y   f  

 C   b   f   k    j   g   k  

不知道有沒有什麼比較快速的方法?因為資料相當多。

Update:

是處理好了....不過是好幾個人,一個人做幾年分工合作完成的!

Update 2:

我們是先把年月按時間排序,之後再按公司名排序,

就如仙人掌所說的,一個月一個月的貼,一年貼十一次就好了。

但其實我比較想用VBA的方法,因為那樣比較快,也比較不會出錯,

可是我還是沒學會用VBA,又因為時間緊迫,所以沒時間慢慢研究,

最後只好幾個人一起土法煉鋼了.......

不過還是謝謝那位先生啦!

4 Answers

Rating
  • 1 decade ago
    Favorite Answer

    我用VBA來處理此問題,在不講求效率的情況下,將程式寫成如下:

    Private Sub CommandButton1_Click()

    Dim i As Long

    Dim rn As Long

    Dim k As Byte

    For i = 3 To 65536

    If Cells(i, "B") = "" Then

    rn = i - 1

    Exit For

    End If

    Next

    k = 3

    For i = 3 To rn

    If Cells(i, "B") = 1 Then

    Sheets("Month").Cells(k, 1) = Cells(i, "A")

    Sheets("Month").Cells(k, 2) = Cells(i, "C")

    Sheets("Month").Cells(k, 3) = Cells(i, "D")

    Sheets("Month").Cells(k, 4) = Cells(i, "E")

    ElseIf (Sheets("Month").Cells(k, 1) = Cells(i, "A")) And (Cells(i, "B") = 2) Then

    End If

    If (Cells(i, "B") = 12) Or (Cells(i, "B") > Cells(i + 1, "B")) Then

    k = k + 1

    End If

    Next

    MsgBox "處理完成!"

    End Sub

    我已將它寫成檔案,但在這裡只能貼2000字,所以無法完整貼出,若您需要此檔及程式,請至下列BLOG留下連絡的E-mail,我會將完成的檔案e給您!

    無名:http://www.wretch.cc/blog/iking2006

    yahoo:http://tw.myblog.yahoo.com/jw!xGY7uqebLxw1sME_8mku...

    無名圖較大,Yahoo速度較快。

    2006-08-13 12:54:50 補充:

    若用VBA,只要按下一個鍵,不到一秒鐘就處理完成,是最快的處理方式。

    Source(s): 我自己
  • 1 decade ago

    用排序

    按資料>排序

    先在主要鍵選月份

    再在次要鍵選公司名

    這樣就可以依月份別及公司別,分別列出你要的資料了

  • 1 decade ago

    你選擇資料框起來

    選擇複製

    再到空白處(或是換一個SHEET)

    貼上時使用

    '選擇性貼上'

    點選 '轉置'

    他就會倒過來了

    試看看(一定要用選擇性貼上,不是貼上)

    2006-08-13 02:34:59 補充:

    如果資料很多你就用篩選 點選年月選擇 1月 將你篩選後的版面複製 , 貼到另一個SHEET 攔(A,b,C,d)再選擇2月同樣複製 攔(B,c,d) ,貼到新SHEET之攔(E,F,G)持續作12次就完成了利用篩選後之複製,可以才可以跳行複製

    2006-08-15 08:47:20 補充:

    你處理好了嗎?

    2006-08-16 00:16:26 補充:

    可以稍微提示一下你們是怎麼完成的嗎? thank's

    2006-08-16 15:29:53 補充:

    可以稍微提示一下

    你們是怎麼完成的嗎? thank's

    Source(s): mis
  • 1 decade ago

    有篩選的方式就好啦!這樣搬來搬去的不會覺得很麻煩嗎?為什麼還要這樣搬來搬去的?

    2006-08-12 22:36:07 補充:

    在你的列1全選-->資料-->篩選-->全部篩選,就可以篩選你要的資料,不用大費周張的搬移了,如果要凍結可以在列2全選-->視窗-->凍結窗格以上的方法很方便,不知道是不是你要的這種方法來查詢資料

    2006-08-20 15:21:47 補充:

    我還是不懂為什麼一定要這樣貼來貼去的,用篩選的方式就可以秀出你們整月的資料啦!而且很快,你們太辛苦啦!

Still have questions? Get your answers by asking now.