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方式做拆解後,在合併。

WISH 9年開4萬

 前幾天聽同事說,把滿9歲的神車WISH 賣掉,透過社團賣了40多萬。

仔細聽他說,原來車才開4萬多公里,然後就換了最新的YARIS CROSS

我心想,這樣.................................不如租車

回顧一下,他車是買當年的頂級WIH,有循跡系統歐。

以TOYOTA來說,這確實是很頂

可能很多人看到這會跟我一開始想的一樣,真的不如租車

因為這9年養這台車的稅金費用+折舊=買這台了

一年10萬租車,真的很好租

但小編現在再想想,在自己能力有餘之際,好好愛家人,好好愛自己

當作對自己好的一種方式也不錯

錢就別太計較了

接下來等同事牽新車了 OH YEAH.


周指數變化(2023.10.27)

 周指數變化(2023.10.27)

自己整理給自己勘,不作為投資理財參考

REVIEW上周紀錄:

uaw罷工現況 ,已反映在財報上

以色列戰火新聞

        對台灣最重要
        臺灣貨幣供給額 M1B年增率 3.33%
        美國首次申請失業救濟人數 210K 看樣子應該是不升了










補充:原物料要動了嗎?










 

2023年10月24日 星期二

航空股回顧2023.10.24

 前一篇來簡單關心一下












補個油價

油價脫離70已不復返.....



如果有看到這,反向思考或許應該要來買機要飛飛摟



office 還是新的比較好 (CHARTOBJECT 物件給我出現-2147024809 )


這幾天透過老電腦的office 2007來協助跑spc資料

發現有群組物件的圖形物件gigi了(chartobject)
認了
軟體這玩意還是要定期交保護費
才能一路暢通
不然就要用舊元件重作一次,粉累



圖1.錯誤訊息

圖2.發現為物件錯誤
說明:左上角直接變為"群組6"物件了
圖3.office 2010
說明:左上角為"圖形 4"物件

或許這就是相容性物件八,以後還是要多注意這類bug





 

2023年10月23日 星期一

THIS IS A RACE.THIS IS MARKET.THIS IS BLOCK LEAD.

自己整理給自己勘,別做為理財投資參考

上週中國端出墨家方案,以抵抗美國晶片法案,

早上查了跟中國石墨相關的新聞,也看到這篇 

順手也整理了一點點資料,然後就開盤了

圖1.隨手亂整理

一開始還想追看看中鋼轉投資的某間公司,看到漲停了,讓我回想起"華X"投資的過往,還好沒追,今天漲幅全數回吐.....oh my race.

圖2.今日收了

圖3.本益比感覺很高 不碰果然是對的

來看看集保變化:











我的雷達:20240506

自己紀錄給自己看。 在大跌1400多點後,拉回中。 雷達顯示遠離風險區但離前一個底(大盤高點也不遠了)