カテゴリー

Googleスプレッドシートで株や投資信託などの資産管理を自動化してみた【コピペでOK】

Googleスプレッドシートので株や投資信託などの資産管理を自動化してみた【コピペでOK】
Googleスプレッドシートで株やクリプトなどの資産管理を自動化してみた【コピペでOK】

みなさんは株やクリプト、投資信託ポートフォリオや評価損益の管理をどうされていますでしょうか?本記事ではGoogle Spread Sheetを用いて資産運用の管理を自動化させる方法についてご紹介します。

本記事の最後には無料でスプレッドシートのテンプレートも公開しておりますのでぜひご活用くださいませ。

実際のスプレッドシートの画面(記事の最下部にてダウンロード可能)
実際のスプレッドシートの画面(記事の最下部にてダウンロード可能)

何ができるの? 米国株のポートフォリオ及び評価損益の管理【Google Finance関数】
日本株ポートフォリオ及び評価損益の管理【GAS】
クリプトのポートフォリオ及び評価損益の管理【GAS】
投資信託ポートフォリオ及び評価損益の管理【Google Finance関数とスクレイピング
運用額や純資産の推移図の作成を自動化できます【GAS】

米国株のポートフォリオ及び評価損益の管理

まず米国の個別株やETFなどのポートフォリオや評価損益がリアルタイムでわかるようにする方法をご説明いたします。

やり方は至ってシンプルでスプレッドシートの下記の関数を用います。

=googlefinance(ティッカーシンボル)

ティッカーシンボルとは欧米などで金融商品取引所に上場する銘柄を識別するために付けられるコードのことで、アルファベット1文字から4文字程度で表示されます。例えばTESLAはTSLAで、AppleはAAPLです。

Google Finance関数を用いれば米国株の株価は自動更新されますので手間なしで評価損益を把握することができます。但し最大20分の遅れがあるようなので注意は必要です。

公式ドキュメントはこちらより。

support.google.com

またETFについて詳しく知りたい方は下記の記事をご覧くださいませ。

lifeisafarce.hatenablog.com

日本株ポートフォリオ及び評価損益の管理【コピペでOK】

次に日本株や日本のETFなどのポートフォリオ及び評価損益の管理を自動化させる方法についてご説明します。

日本株に関しては、前項のGoogle Finance関数の対象外のためGoogle Apps Script(GAS)を用いて外部のサイトからデータを抽出する必要があります。

具体的なやり方としては、まず下記コードをGAS(Google Apps Script)にコピペします。 ※GASに関しては、スプレッドシートを開いた時のトップ画面の上部の『拡張機能』ところから開けます。

  1. // 日本株を自動で取得するためのGAS
  2. function STOCKPRICEJP(code){
  3.   let url = "https://www.google.com/finance/quote/" + code + ":TYO";
  4.   let html = UrlFetchApp.fetch(url).getContentText();
  5.   let stockPrice = Parser.data(html)
  6.     .from("<div class=\"YMlKec fxKbKc\">")
  7.     .to("</div>")
  8.     .build();
  9.   return stockPrice;
  10. }

次に、下記の関数をスプレッドシートのセルに入力して日本株の価格を取得します。

=VALUE(SUBSTITUTE(SUBSTITUTE((STOCKPRICEJP(ティッカーシンボル)), "¥", ""), ",", ""))

ティッカーシンボル日本株の場合、通常4ケタの数字で表示されます。例えばトヨタは7203で、『NEXT FUNDS 日経225連動型上場投信』は1321です。

以上で、日本株の株価をリアルタイムで取得することができますので、日本株の管理も自動化されました。

クリプトのポートフォリオ及び評価損益の管理

次に、ビットコイン(BTC)やイーサリアム(ETH)などのクリプトの株価を自動で取得するための方法を説明します。クリプトの種類によってやり方が2つに分かれます。

BTCとETHの2銘柄のみはGoogle Finance関数で抽出できます。

BTCとETHの2銘柄に関してのみGoogle Finance関数の対象内になりますので簡単に価格を取得できます。日本円換算の場合はBTCJPYと、米ドル換算の場合はBTCUSDと()内に入力します。

=googlefinance(BTCJPY) 

ビットコインイーサリアムに関して詳しく知りたい方は下記の記事をご覧くださいませ。

lifeisafarce.hatenablog.com

lifeisafarce.hatenablog.com

BTCとETH 以外の銘柄は、CoinMarketCapの無料APIを取得してGASを用いれば可能

BTCやETH以外のクリプトを保有されている方々は日本では稀かと存じますので、恐縮ですが本記事では割愛させて頂きます。

簡単に説明しますと、CoinMarketCapが提供している無料APIを取得して、そのAPIを取得するためのGASをかいて、オリジナルの関数を定義すれば可能です。

詳しくはこちらの記事をご覧くださいませ。

seihoukei.com

投資信託ポートフォリオ及び評価損益の管理【コピペでOK】

投資信託ポートフォリオ及び評価損益の管理にはGoogle Finance関数とスクレイピングを用いますが、本記事ではコピペでOKです。

簡単に流れをご紹介します。

投資信託の価格取得を自動化させる方法

    • 日本経済新聞の公式ページに記載のある投資信託の価格を参照
    • ②IMPORTXML関数とSUBSTITUTE関数を組みあせて価格を自動取得

    次に具体的にご説明します。 まずは以下の関数をコピーしてGoogle Spread Sheetの任意のセルにペーストしてください。※以下の関数では具体例としてeMAXIS Slim 全世界株式(オール・カントリー)(0331418A)の価格を自動取得しております。

    =SUBSTITUTE(IMPORTXML("https://www.nikkei.com/nkd/fund/?fcode=0331418A","/html/body/div[2]/div/div[7]/div/div/div/div[1]/div/div[3]/div[2]/dl[1]/dd"),"円","")

    その後、日本経済新聞の公式ページにアクセスして頂き自動取得した投資信託のコードを取得します。下記画像では具体例としてeMAXIS Slim 米国株式(S&P500)のコード『03311187』(※左上の部分)を取得しております。

    日本経済新聞の公式ページで投資信託のコードを取得

    その後に先ほどの=SUBSTITUTEとIMPORTXMLの関数の〜部分を取得したい投資信託のコードに置換します。

    =SUBSTITUTE(IMPORTXML("https://www.nikkei.com/nkd/fund/?fcode=〜","/html/body/div[2]/div/div[7]/div/div/div/div[1]/div/div[3]/div[2]/dl[1]/dd"),"円","")

    上記の関数を下記に置換。

    =SUBSTITUTE(IMPORTXML("https://www.nikkei.com/nkd/fund/?fcode=03311187","/html/body/div[2]/div/div[7]/div/div/div/div[1]/div/div[3]/div[2]/dl[1]/dd"),"円","")

    以上で任意の投資信託の価格をスプレッドシートで自動化することができます。ただし注意点としてIMPORTXMLの更新は1時間に1回更新される仕様になっています。

    GASで運用額や純資産の推移図の作成を自動化させる方法【コピペでOK】

    GASで運用額や純資産の推移図の作成を自動化させる方法【コピペでOK】
    GASで運用額や純資産の推移図の作成を自動化させる方法【コピペでOK】

    次に、株やクリプトなどの運用額の合計の推移図の作成を自動化させる方法を説明します。GASのコードをコピペするだけデイリーで自分の資産額を出力し上図のようなグラフを作ってくれます。

    やり方としては、まずSUM関数で株やクリプトの合計額を算出します。

    その後、下記のコードをGASでコピペします。但し下記コード内のM1と記載のある部分を運用額の合計が入力されているセルに変更してください。

    1. const setDataLastRow = () => {
    2.   //シートを指定
    3.   const sheet = SpreadsheetApp.getActiveSheet();
    4.   //最終行を取得
    5.   const lastRow = sheet.getLastRow();
    6.   //今日の日付
    7.   const today = new Date();
    8.   //入力する内容
    9.   const contents = sheet.getRange("M1").getValue()
    10.   //スプレッドシートに入力するデータ
    11.   const inputData = [today, contents];
    12.   //入力する行
    13.   const inputCell = sheet.getRange(lastRow + 1, 1, 1, inputData.length);
    14.   //データの入力
    15.   inputCell.setValues([inputData]);
    16. };

    次に、GASのトリガー(左の時計マーク)を押して、トリガーを追加します。

    GASのトリガー
    GASのトリガー

     その後、実行する関数を先ほどのGASで作成した関数に設定します。これでGASで書かれたコードが毎日一定の時間なると自動でデプロイされるようになります。

    トリガーの設定
    トリガーの設定

    そうすると下記のように毎日の運用額のログを出力してくれるのでこれをグラフ化すればOKです。※グラフの選択範囲はもちろんA列とB列の全体にしてください。(毎日行が増えるため) 

    運用額のログ
    運用額のログ

    無料でテンプレートを公開します。

    上記の関数やGASのコードを全て含んだ私のスプレッドシートのテンプレートを公開します。料金は結構ですので、私のブログ内の任意の広告をクリックだけして頂けますと嬉しいです。

    docs.google.com

    ダウンロードののち、コピーしてご使用くださいませ。

    まとめ

    以上、本記事をまとめますと下記になります。

    結論 米国株のポートフォリオ及び評価損益の管理はGoogle Finance関数でいける
    日本株ポートフォリオ及び評価損益の管理はGASでいける
    クリプトのポートフォリオ及び評価損益の管理でGASでいける
    運用額や純資産の推移図の作成もGASで自動化できる

    最後までお読みいただき誠にありがとうございました。本記事が投資を勉強する上で、参考になりましたら望外の喜びでございます。ブックマークへの追加やTwitterやネットでの拡散も大歓迎です。

    引き続き何卒宜しくお願い致します。

    最後に広告をポチッと押して頂けますと助かります

    僕が使用している取引所 ビットコインを買うならコインチェックで

    イーサリアムを買うならGMOコインで

    インデックス投資ならマネックス証券

    あわせて読みたい記事一覧

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com

    lifeisafarce.hatenablog.com