(EXCEL)請教在同一欄內數值如何分解對應

顯示結果從第 1 筆 到 8 筆,共計 8 筆
  1. #1
    會員
    註冊日期
    2005-03-16
    討論區文章
    9

    【求助】(excel)請教在同一欄內數值如何分解對應...檔案已經上傳

    試問以下問題(*表示區隔,沒有意義,不然兩欄的數字會連在一起)
    *********欄A ********************欄B
    列1***** A123456789************C123,C456,C789,C741,
    列2*****Q879654321************B123,B963,B999,B963,
    列3****************************B785,B852,B147,
    列4*****P987654321************R12,R33,R77,R45,R96,
    列5***************************R68,R44,R66,R87,
    列6***** P852741963************C987,C456,C841,C123,

    如何轉成

    欄E ************欄F
    C123***********A123456789
    C456***********A123456789
    C789***********A123456789
    C741***********A123456789
    B123***********Q879654321
    B963***********Q879654321
    B999***********Q879654321
    B963***********Q879654321
    B785***********Q879654321
    B852***********Q879654321
    B147***********Q879654321
    R12************P987654321
    R33************P987654321
    R77************P987654321
    R45************P987654321
    R96************P987654321
    R68************P987654321
    R44************P987654321
    R66************P987654321
    R87************P987654321
    C987***********P852741963
    C456***********P852741963
    C841***********P852741963
    C123***********P852741963

    進而可以將相同之開頭(以下循E欄為例)歸納排列

    欄G****************欄H
    C123***********A123456789
    C123***********P852741963
    C456***********A123456789
    C456***********P852741963
    C741***********A123456789
    C789***********A123456789
    C841***********P852741963
    C987***********P852741963

    B123***********Q879654321
    B147***********Q879654321
    B785***********Q879654321
    B852***********Q879654321
    B963***********Q879654321
    B999***********Q879654321

    R12************P987654321
    R33************P987654321
    R44************P987654321
    R45************P987654321
    R66************P987654321
    R68************P987654321
    R77************P987654321
    R87************P987654321
    R96************P987654321


    附加檔案 附加檔案

  2. #2
    會員
    註冊日期
    2001-10-16
    討論區文章
    1,893
    VBA 應該一下下就好了,如果您去做一件善事,我就幫您寫一段。

  3. #3
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244
    唔... 再貼一次好了, 希望大家一起討論更好的寫法
    語法:
    Sub gg()
    Dim ary() As String
    r = 1: re = 1: b = Cells(r, 2)
    [E1].CurrentRegion.ClearContents
    While b <> ""
     If Cells(r, 1) <> "" Then a = Cells(r, 1)
     ary = Split(b, ",")
     For Each s In ary
      If s <> "" Then _
       Cells(re, 5) = s: Cells(re, 6) = a: re = re + 1
     Next
     r = r + 1
     b = Cells(r, 2)
    Wend
    [E1].CurrentRegion.Copy [G1]
    [G:H].Sort [G1], Header:=xlNo
    Set g = Cells(2, 7)
    While g <> ""
     If Left(g, 1) <> Left(g.Offset(-1, 0), 1) Then
      g.Resize(, 2).Insert xlShiftDown
      Set g = g.Offset(2, 0)
     Else: Set g = g.Offset(1, 0)
     End If
    Wend
    End Sub
    :Excel97(含)以下版本不支援 Split 函數。

  4. #4
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244
    順便示範如何貼表格 (本區有開放HTML代碼)

     欄A欄B
    列1A123456789C123,C456,C789,C741,
    列2Q879654321B123,B963,B999,B963,
    列3 B785,B852,B147,
    列4P987654321R12,R33,R77,R45,R96,
    列5 R68,R44,R66,R87,
    列6P852741963C987,C456,C841,C123,

  5. #5
    會員
    註冊日期
    2005-03-16
    討論區文章
    9
    感謝版上各位先進的解答
    使用上述巨集的確可以做出所需結果
    .....假如資料中存在空白欄位,便停止程式執行因而中斷
    該如何讓他繼續執行
    欄A 欄B
    列2 Q879654321 B123,B963,B999,B963,
    列3
    列4 P987654321 R12,R33,R77,R45,R96,
    列5 R68,R44,R66,R87,

    感謝指點

    PS..檔案已經上傳



  6. #6
    會員
    註冊日期
    2005-03-16
    討論區文章
    9
    感謝版上各位先進的解答
    使用上述巨集的確可以做出所需結果
    .....假如資料中存在空白欄位,便停止程式執行因而中斷
    該如何讓他繼續執行
    欄A 欄B
    列2 Q879654321 B123,B963,B999,B963,
    列3
    列4 P987654321 R12,R33,R77,R45,R96,
    列5 R68,R44,R66,R87,

    感謝指點

    PS..檔案已經上傳

  7. #7
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244
    把這一段:
    r = 1: re = 1: b = Cells(r, 2)
    [E1].CurrentRegion.ClearContents
    While b <> ""
     If Cells(r, 1) <> "" Then a = Cells(r, 1)
     ary = Split(b, ",")
     For Each s In ary
      If s <> "" Then _
       Cells(re, 5) = s: Cells(re, 6) = a: re = re + 1
     Next
     r = r + 1
     b = Cells(r, 2)
    Wend

    改為:
    re = 1
    [E1].CurrentRegion.ClearContents
    For r = 1 To [A65536].End(xlUp).Row
     b = Cells(r, 2)
     If b <> "" Then
      ary = Split(b, ",")
      If Cells(r, 1) <> "" Then a = Cells(r, 1)
      For Each s In ary
       If s <> "" Then _
        Cells(re, 5) = s: Cells(re, 6) = a: re = re + 1
      Next
     End If
    Next r

  8. #8
    平風造雨 cinta3344 的大頭照
    註冊日期
    2002-04-11
    討論區文章
    72
    看LEON兄的貼每次都會有收穫
    像[A65536].End(xlUp).Row這個用法
    我就可以來檢驗公司的某些EXCEL檔虛胖的原因了

類似的主題

  1. 【求助】請教EXCE儲存格中計算結果數值如何限制其範圍???
    作者:magiczachary 所在討論版:-- OFFICE 相 關 軟 體 討 論 版
    回覆: 2
    最後發表: 2003-11-26, 09:44 PM
  2. Excel中如某一欄中,分別輸入資料1,2,3,4,5,6,7,8,9,10, 如何篩選出只顯示奇數
    作者:roboto 所在討論版:-- OFFICE 相 關 軟 體 討 論 版
    回覆: 5
    最後發表: 2003-09-21, 09:31 PM
  3. 【問題】輸入代碼並顯示搜尋的值(輸入跟顯示在同一欄)
    作者:Maggie123 所在討論版:-- OFFICE 相 關 軟 體 討 論 版
    回覆: 1
    最後發表: 2002-09-09, 10:39 PM
  4. 如何分解??
    作者:rock4582 所在討論版:-- 繪 圖 軟 體 討 論 版
    回覆: 1
    最後發表: 2001-11-02, 02:17 AM
  5. 請問如何分辨在同一個電腦的兩張相同的網路卡?
    作者:jfpsy 所在討論版:-- 網 路 硬 體 版
    回覆: 2
    最後發表: 2001-07-31, 07:45 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •