STOCKHISTORY関数の使い方|Excelで株価の履歴データを取得する

スポンサーリンク

「Excelで株価の推移を確認したいけど、毎回手でデータをコピーするのが面倒」と感じていませんか。銘柄が増えるほど更新作業は大変になります。

Excelには、特定の金融商品の株価履歴をそのまま取得できるSTOCKHISTORY関数があります。数式を一つ入れるだけで、始値・終値・高値・安値・出来高が自動で並ぶようになります。

この記事では、STOCKHISTORY関数の基本的な使い方から実務での活用例まで解説します。

STOCKHISTORY関数とは?

STOCKHISTORY関数(読み方: ストックヒストリー)は、指定した金融商品の価格履歴データを取得する関数です。日付・始値・終値・高値・安値・出来高といった株価データを、指定した期間で一括取得できます。

対応バージョンはMicrosoft 365のみです。Excel 2021以前のバージョンでは使用できません。

取得できるデータは外部のデータプロバイダーから供給されており、リアルタイム価格ではなく遅延データです。遅延時間は市場ごとに異なります。

重要な制限: 現時点で日本株(東京証券取引所)には対応していません。主に米国株やその他の主要海外市場が対象です。

ほかの関数もあわせて確認したい場合はExcel関数一覧(アルファベット順)を参考にしてください。

STOCKHISTORY関数の書き方

基本構文

=STOCKHISTORY(stock, start_date, [end_date], [interval], [headers], [property1], [property2], ...)

[]で囲まれた引数は省略できます。必須なのはstockstart_dateの2つだけです。

引数の説明

引数必須内容
stock必須金融商品のティッカーシンボル(例: "MSFT"
start_date必須データ取得の開始日
end_date省略可データ取得の終了日(省略時はstart_dateのみ)
interval省略可取得単位: 0=日次, 1=週次, 2=月次(省略時は0)
headers省略可ヘッダー表示: 0=なし, 1=あり, 2=銘柄識別子+ヘッダー(省略時は1)
property1〜省略可取得するデータ列の種類と順序

propertyの値

取得するデータ
0日付
1終値
2始値
3高値
4安値
5出来高

省略した場合は日付(0)と終値(1)のみが返されます。

基本的な使い方

直近1ヶ月の終値を取得する

=STOCKHISTORY("MSFT", TODAY()-30, TODAY())

マイクロソフト(MSFT)の直近30日間の日付と終値が表示されます。TODAY関数を使うことで、開くたびに自動で最新データに更新されます。

指定した期間の株価を取得する

=STOCKHISTORY("AAPL", DATE(2025,1,1), DATE(2025,12,31), 0, 1)

Apple(AAPL)の2025年1月1日〜12月31日の日次データをヘッダー付きで取得します。DATE関数を使うと日付指定が読みやすくなります。

銘柄が出力されない場合

ティッカーシンボルだけでは認識されないケースがあります。そのときは市場識別子を付けて指定しましょう。

=STOCKHISTORY("XNAS:MSFT", start_date, end_date)

XNASはNASDAQの市場識別子です。市場識別子の一覧はMicrosoft公式サポートページで確認できます。

実践的な使い方・応用例

過去21日間の全株価データを取得する

=STOCKHISTORY("XNAS:AMZN", TODAY()-21, TODAY(), 0, 2, 0, 2, 1, 3, 4, 5)

Amazon(AMZN)の過去21日間について、日付・始値・終値・高値・安値・出来高をすべて取得する例です。headers2を指定すると、銘柄識別子もヘッダー行に含まれます。

月次データでポートフォリオを管理する

複数銘柄の月次終値を並べてポートフォリオ管理表を作れます。

=STOCKHISTORY("MSFT", DATE(2024,1,1), DATE(2024,12,31), 2, 1, 0, 1)

interval2を指定すると月次データになります。月ごとの終値が1列で出力されるので、別の銘柄を隣の列に並べれば比較表が作れます。

株価チャートの自動更新

STOCKHISTORY関数で取得したデータを選択してグラフを作成すると、関数が更新されるたびにグラフも自動で追従します。月足チャートならinterval:2、週足ならinterval:1を指定してください。

関連する日付関数についてはExcel関数一覧(機能別)のカレンダー・日付カテゴリも参考にしてください。

よくある注意点とエラー対処

#VALUE! エラー

ティッカーシンボルのスペルミス、またはサポートされていない市場の銘柄を指定した場合に発生します。まずはスペルを確認し、"XNAS:MSFT"のように市場識別子を付けてみてください。

データが取得できない日がある

取引所が休場の日(休日・祝日)はデータが存在しません。interval:0(日次)で取得すると、取引日のみが返されます。連続した日付に揃えたい場合は、別途カレンダー表を作ってXLOOKUPやINDEX/MATCHと組み合わせる方法が有効です。

データ更新の遅延

STOCKHISTORY関数が返すデータはリアルタイムではありません。リアルタイムの取引判断には使用せず、データ集計・分析用途として活用してください。

エラーの種類と対処法はExcelのエラーの種類と対処法にもまとめています。

STOCKHISTORY関数の制限事項

  • Microsoft 365専用: Excel 2021以前では使用不可
  • 日本株非対応: 東京証券取引所の銘柄は取得できない
  • 遅延データ: リアルタイム価格ではなく、一定時間遅延したデータが返される
  • オフライン不可: インターネット接続が必要

これらの制限を理解した上で、業務や自己学習での分析に活用してください。

まとめ

STOCKHISTORY関数は、ティッカーシンボルと日付を指定するだけで株価の履歴データをExcel上に展開できる便利な関数です。

構文は=STOCKHISTORY(stock, start_date, [end_date], [interval], [headers], [property])で、必須引数は銘柄と開始日の2つのみです。月次・週次・日次の切り替えも引数ひとつで対応できます。

日本株には対応していない点と、Microsoft 365専用である点を押さえておけば、米国株の分析やポートフォリオ管理で大いに役立ちます。TODAY関数DATE関数と組み合わせて、自動更新する株価一覧表を作ってみてください。

タイトルとURLをコピーしました