2023年10月28日 星期六

初學者的VBA資料分析 CLASS 3:基本資料分析任務前篇

CLASS 3:基本資料分析任務

本篇,小篇想要以單獨處理資料方式來切入,怎說是單獨處理資料,例如資料中有空白特殊符號、例如日期資料轉換,例如僅單獨要資料中的一部分等等。

本篇可能看了會覺得,疑那我直接用函數就好啦,學這些作啥??.....QQ

所以本篇會以VBA角度使用這些函數(廢話),所以看到這才領悟是用 VBA的你,可以考慮往回看初學者的VBA資料分析CLASS1或是CLASS2,慢慢你就離自動化更近一些了

一、CLASS 3 課程規劃前篇

資料使用前要做一些處理,也可以稱為資料清洗

1.去除空白或符號

2.拆解字串,萃取出自己需要的部分

3.常用資料轉換,例如數字、文字與日期

4.取代特定文字功能

二、講解:

1.去除空白或符號:

打字時,每個人習慣不同,所以常會出現一個情況,例如一樣的名稱資料,怎資料長度不同的情況發生,通常就是空白或是換行符號惹的禍。

excel內建去除空白的函數 TRIM  就很好用拉,怎用??

ex:有一串文字長這樣"12A12 ",明顯有一個空白。

透過 temp=trim("12A12 "),則temp變數內則存放了去除空白後的字串資料 "12A12"

還有Ltrim跟Rtrim可以參考MSDN教學。

怎去除符號,也可以透過REPLACE 函數。

去除空白:

temp=REPLACE("12A12 "," ","")  , "12A12"

去除符號:

temp=REPLACE("12A12 ","A","") , "1212 "

temp=REPLACE("12@12 ","@","") , "1212"

2.拆解字串,萃取出自己需要的部分 

一般常見的函數,如LEFT、MID與RIGHT,小編加碼SPLIT

講解:

ex:現有一串文字長這樣"12A24",要取出12跟24怎做?

A=RIGHT("12A24",2),右邊取2個字元

A=LEFT("12A24",2),左邊取2個字元

A=MID("12A24",1,2),從右邊第一位取2個字元

A=MID("12A24",4,2),從右邊第四位取2個字元

加碼:

SPLIT,是字串分割函數,轉換後會變為陣列方式做資料儲存

A=SPLIT("12A24","A"),使用A字串做分割,A變數會變為A陣列,A(0)=12,A(1)=24,這時候是否有問題了,啥是陣列?有機會在聊聊。

3.常用資料轉換,例如數字、文字與日期

講解:

ex:現有一串文字長這樣"1224"。

文字資料如何轉換成數值資料,透過VAL()函數

語法VAL("1224"),文字資料就變成數值資料了

數值怎轉換成文字呢?,透過STR()函數

語法STR(1234),數值資料就變成文字資料"1234"了 

P.S 前後加上雙引號,就是文字資料的表示方式

日期該怎處理? 

常見日期格式2023/10/18、2012/1/1、20130101

不管是那種格式,強烈建議資料清洗一定要使用同一種格式,同一種格式歐

ex:現在要把20130101轉換為2023/01/01該怎做?

小編透過LEFT、RIGHT、MID函數來轉換一下

A=LEFT("20130101",4) & "/" & FORMAT(MID("20130101",5,2),"00") & "/" & FORMAT(RIGHT("20130101",2),"00")

ex:現在要把2013/1/1轉換為2023/01/01該怎做?

A=SPLIT("2013/1/1","/")

A=FORMAT(A(0),"0000") & "/" & FORMAT(A(1),"00") & "/" & FORMAT(A(2),"00")

如果要轉換為民國年呢? 簡單,就是在年減去1911

A=FORMAT(A(0),"0000")-1911 & "/" & FORMAT(A(1),"00") & "/" & FORMAT(A(2),"00")

反之如果要變成20130101這樣的格式呢?

A=SPLIT("2013/1/1","/")

對,拿掉"/"變成""即可

A=FORMAT(A(0),"0000") & "" & FORMAT(A(1),"00") & "" & FORMAT(A(2),"00")

4.取代特定文字功能

ex:現有一串數值資料長這樣"12@24@36@"。

第一可以透過類似去除符號的方式,以replace函數取代。

亦可以透過split方式做拆解後,在合併。

沒有留言:

張貼留言

指數變化(2024.05.17)

指數變化(2024.05.17) 上周焦點:         5/9當周焦點                          事實:fed與非農就業,引起投資市場對降息有加速,但肯定的是,fed說不加息了。                        美國密西根大學信心指數 ...