2022年8月30日 星期二

BDI 更新(2022.08.31)

 BDI 最新觀察更新:

資料整理分享,不作為投資理財參考

下載



營收:MOSFET(111/07)

 MOSFE 上半年度營收整理

這半年變化,資料整理不作為理財投資規劃。







營收:車用電子營收這半年後變化(111/07)

 追綜一下車用電子營收這半年後變化

資料整理不作為理財投資規劃。




營收:石英業(111/07)

 石英業新聞

追綜一下新聞後續半年後變化

資料整理不作為理財投資規劃。

但怎有些公司110年5月營收高點過後就......




營收:瑞薩供應鏈(111/07)

追綜一下新聞後續半年後變化

資料整理不作為理財投資規劃。





安裝mysql for vba 用 要點

網路上已一堆教學文,但寫這篇主要是提醒自己,也提供參考。

1.office軟體版本:

要點:先透過使用的office軟體版本,來判斷要安裝那個版本的odbc(32 or 64 bit)

but!!!! 永遠有but,如果是64bit作業安裝32bit的office哩???

請安裝32bit的odbc。

小編以自身使用的office 2010查詢結果為例,做參考。

透過office鈕>點選說明>

圖1.


2.下載MYSQL軟體,並設定MYSQL軟體。

    這裡一定要下載最新的,避免不可預期的錯誤發生。但winxp 還是選舊版的為主。

3.設定ODBC,並測試連線:

在windows 搜尋圖案上,做點選並輸入odbc,即出現64與32bit版本的odbc,再根據使用上需要做選擇與設定。

圖2.

圖3.


VBA EASY 寫EXCEL 函數(VBA RANGE.FORMULA)

 小編這幾天有同學在問,有無辦法批次寫函數,然後小編滑鼠點2下就自動順著行自動產生了(同事臉綠)再問,我希望每行函數條件都"要指定",有解???

小編苦笑0.....................0 有。

但要時間,所以留下這一篇當作紀錄。

在儲存格物件中,要寫入公式,主要是控制formula 這個函數。

先來個簡易版:

圖1.
如圖1資料,做c1:l1 sum函數使用,一般excel都是這樣做,如圖2.

圖2.
vba 則是這樣:作一個activex 命令按鈕後,插入程式碼。

Private Sub CommandButton1_Click()

    Sheets("工作表2").Range("b1").Formula = "=SUM(C1:L1)"

End Sub

運算結果相同歐! 然後如圖1的資料堆壘方式,其實A行的函數滑鼠點兩下自動產生即可


來一點難度:

當資料筆數不相同時????

圖2.
說明:透過VBA計算資料數量後,SUM函數就可以自動計算各列資料了。

Private Sub CommandButton1_Click()

   For I = 1 To 3 Step 1

            S2 = Application.CountA(Sheets("工作表2").Range(I & ":" & I)) 

         S2_ADDRESS = Split(Sheets("工作表2").Cells(1, S2).Address, "$")

         Sheets("工作表2").Range("b" & I).Formula = "=SUM(C" & I & ":" & S2_ADDRESS(1) & I & ")" '小編從C行開始堆壘資料

    Next    

End Sub

類似應用文:

VBA:Range.formula 乖離率

VBA:透過SUMPRODUCT,來分析產業別營收年增率走勢圖












2022年8月29日 星期一

2022年8月28日 星期日

美元爬山中,能爬多高??

 

圖1.是2022.08.29 中午資料,圖市開盤沒多久的資料
資料來源:台灣銀行

圖1.

圖2.





2022年8月21日 星期日

產業別當沖比2022/08/01~2022/08/19

  產業別當沖比2022/08/01~2022/08/19

單純資料分享,不作為投資理財參考

資料分類:根據公開觀測站營收資料的產業分類 

藍色是交易張數;紅色是當沖



2022年8月18日 星期四

TARGET 財報重點 2022.Q2

 

Operating Results

Comparable sales grew 2.6 percent in the second quarter, reflecting comparable store sales growth of 1.3 percent and comparable digital sales growth of 9.0 percent. Total revenue of $26.0 billion grew 3.5 percent compared with last year, reflecting total sales growth of 3.3 percent and a 14.8 percent increase in other revenue. Operating income was $321 million in second quarter 2022, down 87.0 percent from $2.5 billion in 2021, reflecting a decline in the Company's gross margin rate.

Interest Expense and Taxes

The Company’s second quarter 2022 net interest expense was $112 million, compared with $104 million last year, reflecting higher commercial paper and average long-term debt levels.


2022年8月17日 星期三

mysql writing configuration file "Invalid server template" 對策

再跑 writing configuration file

出現以下錯誤

Beginning configuration step: Writing configuration file

Saving my.ini configuration file...

Invalid server template

Ended configuration step: Writing configuration file


因為是安裝舊的8.0.25版的,全數刪除,連同安裝檔都刪除後,下載8.0.28版,以及修改c磁碟機為C就PASS了。


MYSQL 查詢資料表單存在否、新增資料表

最近鑽研vba+mql,或許有人說vba+access 就很棒了,但access有資料上限的天花板,若資料量有一定程度,早早進去sql的領域,才是長遠之計(早點碰sql語法ㄏㄏ)。

做了一個簡單的vba副程式,來產生mysql資料庫的資料表"table"。

但覺得不夠又寫了一個檢查資料表是否存在的vba 

範例說明:

作一個按鈕,放入以下陣列。

陣列說明:

finance_table 是要產生的資料表

field_NAME 是要設定的欄位名稱

field_NAME_S 是要設定的欄位規格

然後透過迴圈方式去檢查表單是否存在,不存在則執行表單產生。

Private Sub CommandButton1_Click()

   finance_table = Array("FINANCE_106", "FINANCE_107", "FINANCE_108", "FINANCE_109", "FINANCE_110", "FINANCE_111")
   
   field_NAME = Array("id", "sheet_name", "stockid", "subject", "data")
      
   field_NAME_S = Array("INT NOT NULL AUTO_INCREMENT", "VARCHAR(45)", "VARCHAR(45)", "VARCHAR(45)", "VARCHAR(45)")
   
   PRIMARY_KEY = "id"
   
   DATA_NAME = "securities_company_data"
   
For i = LBound(finance_table) To UBound(finance_table) Step 1 ' SYBOL ` IN DIFFERENT '
 
   a = ODBC_TABLE("securities_company_data", finance_table(i))
   
   If a = 0 Then
   
        Call odbc_new_table_single_table(DATA_NAME, finance_table(i), field_NAME, field_NAME_S, PRIMARY_KEY)
   
   End If
   
Next
   
   
End Sub
以下為副程式模組:

檢查表單:

產生表單:




2022年8月13日 星期六

平均銷貨天數 (111.Q2/產業別整理)

資料分析整理,不作為投資理財參考。

已掌握到資料的1119家公司中整理的資料。

不同產業分佈狀況:

下載

2022.08.18 更新資料約1500多家資料,blog圖沒更新。







2022年8月12日 星期五

演算法版整理:法人買賣超與台股指數整理


因為前一篇實在超廢文,所以用不簡單的演算法,再重新資料整理一次,

強調不作為理財參考。

法人買賣超資料來源:中華民國統計處

指數:台灣證卷觀測站

法人持股公布日:當月15日或20日做上個月份買賣超金額增減公布

整理方式:當月公布後,取上月份最後一天交易日做指數日資料彙整(簡稱統計日指數)

資料範圍:2000/3/31~2022/5/31









2022年8月11日 星期四

VBA:VISIBLE 屬性(SHEET、視窗、activex物件)

 VISIBLE,這個屬性再VB、VBA內相當多物件皆具備此一屬性,小編透過SHEET、視窗、RANGE 等物件做屬性說明。

 VISIBLE屬性,主要控制"可視"這物理特性(也就是隱藏與否可不可以看見)

EX:工作表2為例

Private Sub CommandButton1_Click()

    Sheets("工作表2").Visible = False '隱藏

End Sub


Private Sub CommandButton2_Click()

    Sheets("工作表2").Visible = True '顯示

End Sub

EX:視窗

Private Sub CommandButton1_Click()

    Application.Visible = False '隱藏

End Sub


Private Sub CommandButton2_Click()

    Application.Visible = True '顯示

End Sub

EX:activex物件,以命令按鈕為例

Private Sub CommandButton1_Click()

    CommandButton2.Visible = False '隱藏

End Sub

Private Sub CommandButton2_Click()

    CommandButton2.Visible = True '顯示

End Sub

股票:營收、年增率走勢圖(108/01~111/07)

  僅供參考,不作為投資理財依據。 


2022年8月10日 星期三

股票:產業別營收年增率走勢圖(110/01~111/07)

 股票:產業別營收年增率走勢圖(110/01~111/07)

分類:按照公開觀測站各產業別營收,整理 營收年增率走勢。

僅供參考,不作為投資理財依據。 

資料下載



 

VBA+MYSEL SELECT 應用:查詢建立以及查詢結果導入工作表中(快速語法教學)

 自己寫給自己看的mysql查詢,也留作紀錄。

1.先設定引用項目:
圖1.
microsoft activex data object 6.1 library
microsoft ado ex.2.8 for ddl and security
(不小心全打成小寫xd👀)

2.mysql環境掌握:

圖2.mysql環境
keyword:root、localhost、3306
圖3.schemas 
說明:查詢要連線哪一個資料庫,以及查那一頁。
筆者要查資料庫"twi_securities_lending",跟工作表的"securities_lending_borrowing" 這一頁。

3.開始寫查詢sub

MYSEL 查詢主要是透過SELECT *FROM 語法查詢

關鍵語法:

   strSql = "Select  " & "*" & " FROM " & "securities_lending_borrowing" & " where" & " date='2021/08/09'

記得查詢的條件要前後加上"'" 的部分:
主要語法: "Select  " & "*" & " FROM " & "securities_lending_borrowing" & " where" 
前後都要有"符號歐,因為是文字一定要加。

Function 查詢()

On Error GoTo line1                                                                                        

   Dim Conn As New ADODB.Connection

    Dim rs As New Recordset


'設定查詢資料庫、ip、port、使用者跟密碼

  Conn.Open "Driver=_

{MySQL ODBC 8.0 UNICODE Driver};Server=127.0.0.1:3306;_

Database=twi_securities_lending;User=root;Password=_

xxxx;Option=3;"  

 Conn.CursorLocation = adUseClient

  Dim Catalog As New ADOX.Catalog

  Set Catalog.ActiveConnection = Conn

  Dim Table As ADOX.Table, Column As ADOX.Column

   strSql = "Select  " & "*" & " FROM " & "securities_lending_borrowing" & " where" & " date='2021/08/09'"

rs.Open strSql, Conn, adOpenStatic                                    

                                      s1 = rs.RecordCount                                      

                                      If s1 = 0 Then

                                          查詢= 0                                       

                                           Exit Function

                                      End If

                                         RS_ARRAY = rs.GetRows(s1)     

                   rs.Close                   

                   查詢 = RS_ARRAY

  Exit Function

line1:

   Debug.Print Err.Description

  Debug.Print Err.NUMBER

       MsgBox Err.Description  

End Function


4.怎在工作表中直接導入查詢結果

先貼上查詢sub的code,以及設定好後。

作一個activex命令按鈕,貼上以下內容

Private Sub CommandButton1_Click()

        a = 查詢    

        Sheets("工作表5").Range("A1:H" & UBound(a, 2) + 1) = WorksheetFunction.Transpose(a)        

End Sub

圖5.大功告成

常有的問題:如忘了"'"符號 XD、MYSQL PORT、TABLE NAME設定錯誤等等。


2022年8月7日 星期日

數字統計:20240223

成交量大  漲幅大 統計: 演算法模擬: