重覆但必須的工作, 例如友人需要每天處理超過好幾萬筆的資料, 可惜來源的格式需要修正. 為了方便運用 (匯入DATABASE, 市場資料分析等等), 必須做基本的處理.

例如以下括號內的資料, 首尾/中間包含可能是一個或多個空格 (SPACE) -

原始資料太多的空格 [    TEXT     AAA         BB     TEXT           ]
整理過後正規的資料 [TEXT AAA BB TEXT]

 

 

  通常, 首尾的空格是多餘的 (可能某某會有爭議), 但是要作資料分析時, 這樣的空格往往造成困擾. 另外, 中間包含多個空格, 雖然可以用 [資料剖析] 或 [取代]去除, 但是會有衍生的問題. 如何把這樣的資料整理成比較正規的格式, 保留必須但最少的空格. 手工和時間的容許話, 可以慢慢來. 懶惰的話, 可以試一下用 MACRO (巨集) 的功能. 完整 MACRO 如下, 執行後, EXCEL 資料表內所有多餘的空格都會去除. 不想打字的話, EMAIL 寄給你源碼.


 

 

或剪貼以下到你的 MARCO 內

---------------------CUT & COPY HERE BELOW


Sub 整理資料()

   
    '先查有資料的範圍, 得到最大的行,列號, 計算有多少格資料要處理
    最大的列號x = Cells.Find(what:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
    最大的行號y = Cells.Find(what:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
   
    X = 1 ' X & Y 指標指向第一列的第一格
    Y = 1

    Do While X <= 最大的列號x
        Y = 1                                   '設定指向第一格
        Do While Y <= 最大的行號y
            Cells(Y, X).Select
            ActiveCell = 除去字串中連續兩個的空格(ActiveCell)
            Y = Y + 1                       '已處理本格, 指向下一格
        Loop
        X = X + 1                           '已處理本列, 指向右面一列
    Loop

End Sub

Public Function 除去字串中連續兩個的空格(待處理字串 As String) As String

    原本字串 = Trim(待處理字串)
    新字串 = ""
    原本字串長度 = Len(原本字串)
    字符指針 = 1
   
    Do While 字符指針 <= 原本字串長度               '如預到連續兩個的空格, 只保留一個
        現行字符 = Mid(原本字串, 字符指針, 1)
        下一字符 = Mid(原本字串, 字符指針 + 1, 1)
       
        If 現行字符 = "" Then Exit Do
        ElseIf 現行字符 <> 下一字符 Or 現行字符 <> " " Then 新字串 = 新字串 & 現行字符
        End If
       
        字符指針 = 字符指針 + 1
    Loop
    除去字串中連續兩個的空格 = 新字串

End Function

---------------------CUT & COPY HERE ABOVE


END-


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 xiaolabaDIY 的頭像
    xiaolabaDIY

    xiaolabaDIY 的部落格

    xiaolabaDIY 發表在 痞客邦 留言(1) 人氣()