投資をやっていると、情報をまとめて見られたいいのに、と思うことがよくあります。例えば、株価の一覧とかとかですね。実は、Googleスプレッドシートを使うと、そんなことが簡単にできるようになります。
ヤフーから株価を読み込む
まずは最も応用しがいのある株価の取得から。これには、ImportXMLという、Googleスプレッドシート独自の関数を使います。
=ImportXML(CONCATENATE("http://stocks.finance.yahoo.co.jp/stocks/detail/?code=",株式コードセル),"//td[@class='stoksPrice']")
ここの「株式コードセル」に6077などの株価コードを参照してあげると、ヤフーファイナンスを参照して、株価を表示してくれます。
このImportXMLというのは、他サイトをクロールする関数です。いわゆるクロール関数です。該当のヤフーファイナンスのURLを開いて、そこから特定の値を取得して表示するというのがやっていることです。うしろの "//td[@class='stoksPrice']" というのは、どの値を取得するかを指定しています。いわゆるXPath指定です。
先のヤフーファイナンスのURLを開いて、HTMLコードを見ると、上記の画像のようなソースが出てきます。このtdのうち、class名称が stoksPrice の値、つまり1,276 を取得して表示するというわけです。
非常に便利なこの関数ですが、大量に取得するとけっこう時間がかかります。また、エラーになってしまうこともあります。そしてシートを開くたびに再取得するので、常に最新の状態になっているというメリットもありますが、タイミングによってエラーが頻出してしまうというデメリットもあります。
必要に応じて手動で関数を実行できれば、エラーを避けることができるのですが、どの方法は見つかりませんでした。ご存知の方がいればコメント欄で教えて下さい。
追記:ヤフーの仕様変更に伴い、上記のヤフーファイナンスからの株価取得が使えなくなっています。ならば、ということで、カブ探からの株価取得を試みてみました。
=substitute(substitute(ImportXML("http://kabutan.jp/stock/?code="&【株式コード】,"//*[@id='stockinfo_i1']/div[2]/span[2]"),",",""),"円","")+0
こちらで、カブ探から株価が取得できます。ただし、こちらも重いので、複数のセルにいれると、いくつかはタイムアウトしてしまいます。
株式取得日から権利確定日までの日数を計算する
続いての関数は、優待クロス関係です。
まず貸株料の計算です。貸株料は、ポジションを取った受渡日から、ポジションを解消した受渡日までの日数でかかります。土日祝日も含めます。取った日も計算に入れますし、解消した日も入れます。つまり最短でも2日分はかかるということになります。
計算がややこしいのは、約定日から2営業日後が受け渡し日だということです。そのため、営業日を計算するWorkday関数を使います。
=WORKDAY(開始日、日数、[祝日])
開始日には約定日を入れて、日数は2。祝日には下記のリストから範囲を設定しておきます。
次に、クロス組成時受け渡し日から、解消時受け渡し日(末日)までの日数を計算します。こちらは土日祝日も計算に入れるので、
=DAYS(終了日,開始日)
関数を使います。10月銘柄なら10月31日が終了日、開始日はWORKDAY( TODAY(),2,[祝日] )となるでしょうか。
これを使うと、受渡日から解消受渡日までの日数が分かるので、貸株料を計算することができます。
ヤフーの優待情報へリンクする
続いては、優待情報です。下記をセルに入れることで、ヤフーの優待情報ページへのリンクを作ることができます。
="https://info.finance.yahoo.co.jp/stockholder/detail/?code="&株式コードセル
追記:こちらもヤフーの仕様変更で動作しません。
="https://finance.yahoo.co.jp/quote/"&【株式コード】&"/incentive"
こちらで、新しいヤフーファイナンスから優待情報を取得できます。
ドル円レートを表示する
為替も重要な情報ですね。
=GoogleFinance("currency:USDJPY", "average")
と入れることで、ドル円為替を表示できます。
ここでは、為替を入れましたが、代わり米国企業のティッカーを入れると株価などを出すこともできます。例えばGoogle=GOOGなら、
=GoogleFinance("GOOG", "price")
になります。