輕鬆用GoogleSheet三種函數抓股價

Allen
Dr.Combo
Published in
May 8, 2021

打入函式簡單獲得股票即時資訊,免爬蟲免編程!

本篇將介紹如何在GoogleSheet上使用GOOGLEFINANCE、IMPORTHTML、IMPORTXML三種方式來抓股價及相關資料,除了讓投資人可以更方便追蹤、掌握持股與標的,也能運用於其他簡易爬蟲需求哦~

第一招 :GOOGLEFINANCE

直接從Google財經服務擷取股票最新或過往資訊。

=GOOGLEFINANCE(股票代碼,"屬性")

範例說明:
抓即時報價只需填入股票代碼,並在屬性欄位輸入「PRICE」即可
若要讀取台股資料,記得在股票代碼前加入交易所名稱「TPE:」

【美股】
=GOOGLEFINANCE("TSM","PRICE")
【台股】
=GOOGLEFINANCE("TPE:2330","PRICE")

GOOGLEFINANCE除了可以抓股價外,也能進階設定其他條件,如設定起訖時間撈取一段時間的股價資料,或是調整屬性欄位抓其他股市指標,評估公司常用的指標EPS、PE、Beta等均可用此函數撈取。
註:其他可設定的屬性請參考Google說明

=GOOGLEFINANCE(代號, [屬性], [開始日期], [結束日期|天數], [間隔])

第二招 :IMPORTXML

IMPORTXML函數可匯入多種結構化類型的資料,包括 XML、HTML、CSV、和 RSS 等格式。

=IMPORTXML(網址, XPath)

範例說明:
假設要至「鉅亨網」使用IMPORTXML函數抓台積電的股價資料,步驟如下
1.進入鉅亨網並搜尋台積電股票頁面
2.觀察網址變化,會發現不同股票頁面的網址差異在於/後的代碼,故IMPORTXML函數的網址欄位可用CONCATENATE結合鉅亨網的網址前段與自己輸入股票代碼的儲存格A2,再來就剩找到Xpath囉!

=IMPORTXML(CONCATENATE("https://invest.cnyes.com/twstock/TWS/",A2),"貼上Xpath"))

3.如何找XPath呢?在股價位置反白→滑鼠點擊右鍵→選擇檢查

4.在原始碼反白處→滑鼠點擊右鍵→選擇COPY→選擇COPY XPath

5.在函數貼上XPath即完成!
⚠請注意~Xpath裡的雙引號要改為單引號才傳的出結果喔!

【剛貼上XPath長這樣】
=IMPORTXML(CONCATENATE("https://invest.cnyes.com/twstock/TWS/",A2),"//*[@id="_profile-TWS:2330:STOCK"]/div[1]/div[3]/div[1]/div/span"))"))
【請將貼上的XPath雙引號改為單引號】
=IMPORTXML(CONCATENATE("https://invest.cnyes.com/twstock/TWS/",A2),"//*[@id='_profile-TWS:2330:STOCK']/div[1]/div[3]/div[1]/div/span")

第三招 :IMPORTHTML

將表格或清單中的資料匯入,需搭配取出參照位址資料的INDEX函數使用。

=INDEX(IMPORTHTML("網址","查詢屬性","索引第幾個"),第幾欄,第幾列)

範例說明:
假設要抓YahooFinance的蘋果(#AAPL)每股盈餘EPS
1.首先進入YahooFinance搜尋AAPL來到蘋果的股票頁面,觀察網址變化可以發現只有後面幾碼改為股票代碼,使用如前面教學CONCATENATE函數即可完成IMPORTHTML函數「網址」的處理。

2.接著IMPORTHTML函數「屬性」的地方填入"Table”,表示要查詢的資料類型為表格。(若要查找清單格式則輸入"List”)

3.觀察要傳回的EPS位於頁面的「第二個表格(“table”,2)」、「第四行第二欄INDEX(....,4,2)」,故在函數中依序輸入這幾個位址,即可傳回想要的值囉!

=INDEX(IMPORTHTML(concatenate("https://finance.yahoo.com/quote/",A4),"table",2),4,2)

學會以上三種GoogleSheet的函數,就能輕鬆建立自己的追蹤表或是交易紀錄,幫助您做出更好的投資決策!

--

--

Allen
Dr.Combo

一個平平無奇的路人,從你的世界裡路過,給不了你溫暖,但能送你三月的風、六月的雨、用盡一生寫下的故事。