[心得] Excel如何取得股票代碼清單

看板Stock作者時間5年前 (2018/06/17 09:55), 編輯推噓31(3105)
留言36則, 33人參與, 5年前最新討論串1/3 (看更多)
Excel如何取得股票代碼清單 網誌圖文版: http://www.b88104069.com/archives/4315 上一節成功取得單一公司三個年度的損益表,實務上,無論出於產業財務報表分析、或者 是投資者比較各檔股票基本面,會針對多檔股票的損益表作比較,因此有需要同時取得多 家公司的損益表資料。在這裡有個先決條件,網址上皆是股票代碼,如果要以公司名稱對 應到股票代碼,有必要先取得對照清單,在這一節便介紹如何運用網頁資料,整理出符合 需要的清單。 一、於「公開資訊觀測站」選擇「彙總報表」、「資訊揭露」、「每月營收」、「採用 IFRSs後營業收入彙總表」、「每月營業收入彙總表」: http://mops.twse.com.tw/mops/web/index。 二、接著是「國內上市」、年度「107」、月份「1」、「查詢」,再按下面的「請選點選 這裡」。 三、另跳視窗的網址:「http://mops.twse.com.tw/nas/t21/sii/t21sc03_107_1_0.html 」,利用Excel下載網頁資料,幾乎如實呈現了網頁的內容。不過仍然尚有兩點事項待處 理,第一項是有很多營收相關的欄位,但其實於此只需要前面兩欄「公司代碼」及「公司 名稱」,另外除了有公司代碼的資料行,有許多文字行和空白行,其實也不需要。 四、為順利產生公司代碼清單,首先輸寫如下程式碼,重點在於瞭解「 UsedRange.Rows.Count」和「TypeName」的用法。 R = Worksheets("三").UsedRange.Rows.Count Sheets("五").Cells(1, 3).Value = R 從程式碼的英文單字顧名思義,這是計算工作表「三」內容範圍有多少行的固定語句,並 且要在工作表「五」的第一行第三欄呈現所計算出來的「R」值。 StockID = Worksheets("三").Cells(i, 1).Value Sheets("五").Cells(i, 1).Value = TypeName(StockID) 將工作表「三」儲存格(i, 1)的值設定為變數「StockID」,然後再將該變數的資料型態 輸入到工作表「五」儲存格Cells(i, 1)。 五、前二十行資料,共有三種型態,「String」為文字 、「Empty」空白 、「Double」 為數字,「C1」儲存格的「1020」代表步驟三所下載的網頁內容共有1020行,稍微垂直捲 動這些資料,不難發現第一欄(A欄)的後面1020行中,和前面二十行資料相同,其實總 共就三種型態,而且公司代碼所屬行都是「Double」,分析出這個規律之後,接下來才能 做相對應的處理。 六、在步驟四的基礎上,進一步編寫程式碼,重點在加入資料型態的判斷句,並且將符合 的資料複製到新工作表上。 R = Worksheets("三").UsedRange.Rows.Count For i = 1 To R 在第四章第五節「多餘資料刪除」中,介紹過「For i = 1048576 To 2 Step -1」的終極 用法,它雖然能完整掃過工作表,但其實在大部份資料沒有那麼多行的情況,這樣的設計 只是執行空轉,白白耗費了計算機資料,所以利用「UsedRange.Rows.Count」先自動評估 有多少行資料,再設計「For i = 1 To R」精準迴圈是較為聰明的作法。 StockID = Worksheets("三").Cells(i, 1).Value If TypeName(StockID) = "Double" Then j = j + 1 Sheets("三").Cells(i, 1).Copy Sheets("七").Cells(j, 1) Sheets("三").Cells(i, 2).Copy Sheets("七").Cells(j, 2) End If 先取得工作表「三」第一欄 (A欄)的內容,賦值予變數「StockID」,判斷其資料型態是 否為數字「Double」,如果是的話,設置變數「j = j + 1」,等於是一個從1開始正整數 的計數器,這是編寫程式的慣常用法,最後將工作表「三」符合條件的特定行,第一欄公 司代碼和第二欄公司名稱複製到工作表「七」的第一欄第二欄,依照正整數「j」的順序 。 七、執行結果一如預期! 在資料量鉅大的情況下,都會有像編碼原則和代碼對照表這一類的東西。一方面是需要將 資料分門別類,才能有序整理及快速搜尋,另一方面現在所有資料都會以電子形式儲存, 所以要有個合乎電子格式的識別代碼。很多時候,我們很需要一份完整清單,方便針對資 料作進一步處理,可是又沒辦直接取得這份清單,這一節所介紹的方法也許不盡完美,但 應該極具參考價值。 本文內容取自《人人做得到的網路資料整理術》,博客來書店網址: http://www.books.com.tw/products/0010775391。 延伸閱讀: Excel如何取得公開發行公司財務報表 http://www.b88104069.com/archives/4312 Excel如何取得多期損益報表 http://www.b88104069.com/archives/4313 VBA如何修改網址下載財務報表 http://www.b88104069.com/archives/4144 -- 周末,我們繼續Excel:精華區=>21.心得=>5.其他=>3.office 會計人的Excel小教室: https://www.facebook.com/acctexcel -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.20.96.23 ※ 文章網址: https://www.ptt.cc/bbs/Stock/M.1529200529.A.7AD.html

06/17 09:58, 5年前 , 1F
好用心,好多功能沒月過
06/17 09:58, 1F

06/17 10:03, 5年前 , 2F
06/17 10:03, 2F

06/17 10:04, 5年前 , 3F
用心推一個!
06/17 10:04, 3F

06/17 10:04, 5年前 , 4F
先推再說
06/17 10:04, 4F

06/17 10:07, 5年前 , 5F
用心給推
06/17 10:07, 5F

06/17 10:10, 5年前 , 6F
06/17 10:10, 6F

06/17 10:13, 5年前 , 7F
06/17 10:13, 7F

06/17 10:57, 5年前 , 8F
06/17 10:57, 8F

06/17 11:00, 5年前 , 9F
感謝分享
06/17 11:00, 9F

06/17 11:04, 5年前 , 10F
06/17 11:04, 10F

06/17 11:19, 5年前 , 11F
06/17 11:19, 11F

06/17 12:02, 5年前 , 12F
推 改天研究
06/17 12:02, 12F

06/17 12:04, 5年前 , 13F
06/17 12:04, 13F

06/17 12:04, 5年前 , 14F
usedrange.rows.count好像對於前面有空白行的頁面不
06/17 12:04, 14F

06/17 12:06, 5年前 , 15F
能得到想要的結果吧…… 要從頭到尾無遺漏我覺得可
06/17 12:06, 15F

06/17 12:08, 5年前 , 16F
06/17 12:08, 16F

06/17 12:08, 5年前 , 17F
06/17 12:08, 17F

06/17 12:09, 5年前 , 18F
用activesheet.usedrange.rows.count + activesheet
06/17 12:09, 18F

06/17 12:09, 5年前 , 19F
推 感謝分享
06/17 12:09, 19F

06/17 12:09, 5年前 , 20F
.usedrange.row-1
06/17 12:09, 20F

06/17 12:14, 5年前 , 21F
06/17 12:14, 21F

06/17 12:48, 5年前 , 22F
06/17 12:48, 22F

06/17 12:49, 5年前 , 23F
06/17 12:49, 23F

06/17 12:54, 5年前 , 24F
06/17 12:54, 24F

06/17 13:51, 5年前 , 25F
推用心
06/17 13:51, 25F

06/17 13:58, 5年前 , 26F
這個不推不行
06/17 13:58, 26F

06/17 13:59, 5年前 , 27F
06/17 13:59, 27F

06/17 14:17, 5年前 , 28F
推認真分享文
06/17 14:17, 28F

06/17 14:27, 5年前 , 29F
推 
06/17 14:27, 29F

06/17 14:37, 5年前 , 30F
06/17 14:37, 30F

06/17 16:50, 5年前 , 31F
06/17 16:50, 31F

06/17 16:55, 5年前 , 32F
用心 推
06/17 16:55, 32F

06/17 23:20, 5年前 , 33F
06/17 23:20, 33F

06/18 09:51, 5年前 , 34F
06/18 09:51, 34F

06/18 22:51, 5年前 , 35F
推 很認真
06/18 22:51, 35F

06/19 11:11, 5年前 , 36F
06/19 11:11, 36F
文章代碼(AID): #1R9R-HUj (Stock)
文章代碼(AID): #1R9R-HUj (Stock)