文字函數的應用

在做資料統計分析之前，我們都會對資料做一些處理，尤其是文字型的變數，其中可能某一段對我們的分析有特殊涵義，以電話號碼為例，區碼就是一個很重要的資訊，另外每個區域的電話長度也都不一樣，所以可以藉此特性檢查電話號碼有無錯誤，下面我們將針對下面一個簡單的資料，使用較常使用5個的文字函數做資料處理 原始資料 範例1：從電話中取出區域代碼 Step1.選擇查詢產生器 Step2.將原始資料變數拉入右側的選取資料中後，點選 Step3.選擇進階運算式->下一步 Step4.這有三大區塊，左下方是函數和變數的選擇區塊，右下方是函數的說明區塊，上方是函數輸入區塊。 在這我們用了2個函數SUBSTR和FIND，因為我們要從電話號碼中擷取部分的文字，而SUBSTR函數的用處就是擷取變數的部分字串，然而在電話號碼中的區碼有2碼也有3碼，所以我們需要FIND函數是要找尋某文字符號的位置來決定要截取的長度 用法： SUBSTR(字串或變數,截取起始位置,截取長度); FIND(字串或變數,”文字符號”) 以台北市跟南投縣的電話區域號碼為例(02)或(049) 截取的文字皆從第2個位置開始，截取長度我們利用找尋 “)” 位置的方法 FIND((02),”)”)=4 FIND((049),”)”)=5 所以我們可以利用FIND(t1.phone, ")")-2來決定長度 故我們最終的式子為： SUBSTR(t1.phone, 2, FIND(t1.phone, ")")-2) Step5.輸入欄名稱跟標籤後按完成 範例2：計算電話的長度 Step1.點選 Step2. 選擇進階運算式->下一步 Step3.藉由左下方是函數和變數的選擇區塊，輸入上方是函數輸入區塊，結果如下，後下一步。 電話的長度是全長扣掉區碼和符號的個數，用LENGTH((02)1234-5678)算出全部長度13，再利用FIND(t1.phone, ")")-2算出區碼的長度，再扣掉3個符號（(,),-） 故我們最終的式子為： LENGTH(t1.phone)-(FIND(t1.phone, ")")-2)-3 Step4. 輸入欄名稱跟標籤後按完成 範例3.合併姓和名的兩個變數成為全名 Step1. 點選 Step2. 選擇進階運算式->下一步 Step3. 藉由左下方是函數和變數的選擇區塊，輸入上方是函數輸入區塊，結果如下，後下一步。 CATX("",t1.lname,t1.fname) Step4. 輸入欄名稱跟標籤後按完成 Step5.按執行 我們就可以得到我們所要的結果