Googleスプレッドシートを利用した株価分析や情報収集のやり方 Googleファイナンス&スクレイピング

本ページにはプロモーションが含まれております
著者:しょうこちゃん

f:id:showchan82:20220206102501p:plain

楽天RSS(Ⅰ版Ⅱ版)を利用した株価分析のやり方を紹介しましたが、Googleが提供しているスプレッドシートを使っても株価の情報収集が可能です。米国株やETFの分析なら実はこのGoogleスプレッドシートを使うほうが面倒な手順なしに簡単だったりします。

米国株投資中心の投資家の方はポートフォリオ管理や自分が使いやすいようにGoogleスプレッドシートを編集して情報管理するのも一つだと思います。dポイント投資やPayPayボーナス運用などにも活用できますよ。

今回はそんなGoogleスプレッドシートで株式投資をサポートする方法を紹介します。
といいつつ、この記事はほぼ自分への備忘録です。

Googleファイナンス関数をスプレッドシートで活用する

Googleファイナンス関数(GOOGLEFINANCE)はGoogleがスプレッドシート用に用意してくれている便利な関数です。

関数を入れるだけで株価などの情報をまとめてくれるという便利ツール。

公式ドキュメント

上記の公式なドキュメントを見ていただくとわかりますけど、Google Financeから現在、過去の証券情報を取得することができます。

Appleやマイクロソフト、Google(アルファベット)のような米国個別株はもちろんですし、IVVやSPYといった米国のETFの情報も取得可能です。

これを使えばdポイント投資やPayPayボーナス運用における情報取得も容易ですね。

GoogleスプレッドシートでのGOOGLEFINANCE関数の使い方

デフォルトで利用できます。

セルに「=GOOGLEFINANCE("ICLN","price"))」と入れればICLN(クリーンエネルギー)のETF価格(本日終値)が表示されるというわけです。

ICLNの部分を別の銘柄のティッカー(日本でいう銘柄コード)を入れかえると銘柄別の情報が表示されます。Googleの株価なら「GOOG」ですね。

調べたい銘柄のティッカーがわかない時は「銘柄名 ティッカー」といったキーワードでGoogle先生に聞いてみましょう(検索しましょう)。

出力された結果は加工可能

出力された数字は加工可能なので、自分が取得した時の価格との差を計算して損益率を計算したり、為替レートを出力して円建てにしてみるといった計算もできます。

dポイント投資とGoogleスプレッド(Googleファイナンス)

dポイント投資はその投資対象はすべて米国ETFです。アクティブコースやスタンダードコースはお金のデザイン社が運用している投資信託ですが中身は米国ETFです。

なので、価格変動を調べたい時はGoogleスプレッドシートで手軽に検索できます。
仮にテーマだけ考えてみましょう。

  • 新興国    IEMG
  • コミュニケーション    IXP
  • 生活必需品    KXI
  • ヘルスケア    IXJ
  • 金    IAU
  • クリーンエネルギー    ICLN
  • SDGs    SDG
  • 米国大型株    IVV

各コースはこんな感じで米国ETFに投資をしています。前日終値(closeyest)と当日終値(price)で比較してあげれば変動率が分かりますよね。

PayPayポイント運用とGoogleスプレッド(Googleファイナンス)

同じです。PayPayポイント運用も米国ETFを基準価格にしています。

  • チャレンジコース:SPXL
  • スタンダードコース:SPY
  • テクノロジーコース:QQQ

これらの変動もGoogleスプレッドシートでみることができます。

ただし、PayPayポイント運用は日本時間も変動しています。この変動分はGoogleスプレッドシートが提供しているGoogleファイナンス関数では追えません。日本時間は対象外だからです。

日本時間中の変動は先物価格を追っていく必要がありますが、残念ながらGoogleファイナンス関数では先物価格の提供は行っていません。

IMPORT XML関数を使う

GoogleスプレッドシートではIMPORTXML関数というものも用意されています。要するにスクレイピングです。スクレイピングというのはWEBサイト上から必要なデータを抽出することです。

WEBサイトに対するスクレイピングについて禁止をしているサイトも少なくないので注意してくださいね。たとえば金融系だとYahooファイナンスは禁止しています。明確に禁止しているサイトへのWEBスクレイピングはやめておきましょう。また、自動化して超大量のデータを取得しようとすると先方のサーバーに負担がかかりますので常識的な範囲で利用してください。

GoogleスプレッドシートではIMPORT XML関数を使うことでWEBサイトに対するスクレイピングが可能です。これを利用することで、必要な情報(データ)をGoogleスプレッドシートに入れ込むことができます。

前述のPayPayボーナス運用の場合、そのままでは日本時間の変動が分かりませんが、S&P500先物の動き(変動率)を見ることができればGoogleスプレッドシート上でPayPayボーナス運用の変動を計算することもできますね。

スクレイピングと聞くとプログラマーじゃないから無理!となるかもしれませんが、Googleスプレッドシートを使えばそれ自身は簡単です。

基本の使い方

=IMPORTXML("対象のURL", "引っ張ってくる場所")

これだけです。
たとえば、Investing.comが提供している、S&P500先物の変動率を取ってこようと思ったら下のようになります。

=IMPORTXML("https://jp.investing.com/indices/us-spx-500-futures-historical-data", "//*[@id='quotes_summary_current_data']/div[1]/div[2]/div[1]/span[4]")

「引っ張ってくる場所」のゴニャゴニャした部分はXpathという部分です。複雑っぽいですが、Chromeのデベロッパーツール上で該当要素を右クリック、「Copy→Copy XPath」を選べばコピーされます。

沢山調べたい

「対象のURL」の部分をCONCATENATE関数にすれば複数の情報を調べたい時に便利です。CONCATENATE関数は背うの内容と文字列をつなげる関数です。

CONCATENATE("文字列1"," セル参照")

を使うことで複数情報を一括して取得できます。
たとえば、株探の場合、URLの構造は「https://kabutan.jp/stock/?code=(銘柄コード)」となっています。そのため「CONCATENATE("https://kabutan.jp/stock/?code=",A1)」

といったようにすればA1セルに入っている銘柄コードを参照したURLを作ることができます。これとIMPORTXMLを併用すればA列に銘柄コードを入れておき、B列に株探のサイトから株価情報を引っ張ってくるという使い方ができます。

chatGPTを使ってGoogleスプレッドシートを活用した情報取得も可能

GoogleスプレッドシートとGoogleファイナンスやスクレイピングを併用すれば色々なことができそうですよね。

そして、こんなことしてみたいけど、それってGoogleスプレッドシートで実装できるかな?と思ったときは、話題のChatGPTに聞いてみましょう。

スクレイピングするための必要なIMPORTXMLの書き方など教えてくれますよ(笑)

日本株の情報なら楽天RSSの方が情報が多い

なお、Googleスプレッドシート(Googleファイナンス)では日本株の個別情報を直接取得できませんので、前述のスクレイピングで調査することができます。

ただ、楽天証券が提供している楽天RSS(または楽天RSSⅡ)を利用すれば取得可能です。こちらの方がより情報がまとまっていますので使いやすいかもしれません。

dp-invest.hateblo.jp

ただし、Googleスプレッドシートで楽天RSSは動作せずExcelで利用する必要がありますので情報の連携はちょっと面倒だったりします……