如何利用『資料處理過濾增益集』分割地址資料?

如何利用『資料處理過濾增益集』分割地址資料?

註冊組開學都要進行學生資料建檔的工作,學生的聯絡地址與戶籍地址是其中一個重要資料,校務行政系統為了方便註冊組建立資料除了提供單筆新增修改的功能,也提供Excel格式的批次匯入,但是比較麻煩的是校務行政系統的Excel格式要求將戶籍地址或通訊地址依照下列欄位分別建立:

戶籍地址-郵遞區號 戶籍地址-縣市(請填入完整的縣市名稱) 戶籍地址-鄉鎮市區(請填入完整的名稱) 戶籍地址-村里(請填入完整的名稱) 戶籍地址-鄰(請填入半形數字) 戶籍地址-住址(包含路巷段號樓等)

雖然我們可以從學生入學管道或會考資料取得大部分高一新生的戶籍地址或通訊地址的電子檔,但是並不會依照上述欄位分割,而是全部在一個欄位如下

新北市中和區安平里130鄰中和路292巷21弄70號1樓
新北市土城區廷寮里136鄰永豐路255巷340號
新北市土城區埤林里350鄰學府路1段826巷40號11樓
新北市土城區頂福里19鄰中央路4段125巷2弄54號
新北市土城區日和里123鄰中央路1段299巷28號一樓
臺北市信義區莊敬路800號30樓
新北市板橋區公館里17鄰文化路1段385巷36號
新北市中和區興南路133巷16弄18號四樓
新北市樹林區柑園里28鄰大雅路303號24樓
新北市板橋區忠孝路10巷81號16樓
新北市板橋區九如里150鄰民享街224號21樓

 

在Excel中有提供『資料剖析』的功能

image

可以用分隔符號或固定的寬度來將地址分割,使用特定的分隔符號是可以用文字來將資料分割,但是沒有辦法只取得我們要的資料。而使用固定寬度分割資料的方法,如果提供資料者有依照地址書寫的順序規則提供,是有機會取得部分正確的資料,例如『縣市』或『鄉鎮市區』。但是因為地址資料是家長或學生提供給學校,經常不是完整的資料,有時會將一些地址內容省略或不按正常書寫順序,所以依照資料固定長度來分割不是很好的選擇,除了切完之後也許部分資料是正確,但是錯誤的部分要檢查出來是麻煩。

所以我在『資料處理過濾增益集3.8』的「正規比對資料過濾」\「工作表資料內容處理」中[用來取代符合篩選資料的字串]參數,新增一個#i#的參數選擇。

image

以下表為例,我們要將A欄的地址資料依序分割出"縣市"、"鄉鎮市區"、"村里"、"鄰"、"住址(包含路巷段號樓等)",然後依序寫入B、C、D、E、F等欄

image

我們在「工作表資料內容處理」表單的參數設定如下

image

解釋一下[用來取代字串的規則]此參數是代表我們要取代的正規比對規則,舉例我們要在B欄寫入縣市資料,所以我們要比對地址資料把縣市資料找出來並用某一個字串來取代它,
"\w{2}市|\w{2}縣"這個比對規則代表的就是比對xx市或xx縣,\w{2}是代表任意兩個字,所以新北市或台北市或彰化縣都符合。

[用來取代浮合篩選資料的字串 ]此參數是用來取代符合[用來取代字串的規則]的字串,例如地址資料中的"新北市"符合篩選規則"\w{2}市",則程式會用[用來取代浮合篩選資料的字串 ]此參數來取代這筆資料,如果[用來取代浮合篩選資料的字串 ]此參數輸入#i#,則代表是用是符合[用來取代字串的規則]規則的字串來取代,舉例地址是:"新北市中和區安平里130鄰中和路292巷21弄70號1樓",則用上述的參數設定處理的最後結果整筆資料會被"新北市"三個字取代,這樣就可以達到將縣市資料分割的目的。

如果要分割"鄉鎮市區"資料寫入C欄,則參數可以如此設定

image

讀者可以自行試試看村里、

鄰、住址(包含路巷段號樓等)的操作。

範例檔下載

cool      歡迎引用,請注明來源出處!

作者:楊煥謀