<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>株価 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%E6%A0%AA%E4%BE%A1/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Fri, 28 Aug 2026 12:54:43 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>株価 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのGOOGLEFINANCE関数の使い方｜株価・為替を自動取得する</title>
		<link>https://mashukabu.com/spreadsheet-googlefinance-function/</link>
					<comments>https://mashukabu.com/spreadsheet-googlefinance-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 01:12:50 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[GOOGLEFINANCE]]></category>
		<category><![CDATA[Sheets独自]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[株価]]></category>
		<category><![CDATA[為替]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4981</guid>

					<description><![CDATA[GoogleスプレッドシートのGOOGLEFINANCE関数の使い方を初心者向けに解説。株価・為替レートの取得、ポートフォリオ管理、過去データの取得、よくあるエラーと対処法、ExcelのSTOCKHISTORY関数との違いまで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「スプレッドシートで株価や為替レートを手軽に確認できたらいいのに」と思ったことはありませんか。</p>



<p class="wp-block-paragraph">毎回ネットで検索して数字を手入力していると、時間もかかるしミスも起きやすいですよね。</p>



<p class="wp-block-paragraph">そんなときに便利なのが、Googleスプレッドシート専用の <strong>GOOGLEFINANCE関数</strong>です。セルに数式を入れるだけで、最新の株価や為替レートを自動取得できます。</p>



<p class="wp-block-paragraph">この記事では、GOOGLEFINANCE関数の基本構文から、ポートフォリオ管理・為替換算・過去データ取得などの応用例、よくあるエラーの対処法まで実例付きで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">GOOGLEFINANCE関数とは？</a></li><li><a href="#toc2" tabindex="0">GOOGLEFINANCE関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">GOOGLEFINANCE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">現在の株価を取得する</a></li><li><a href="#toc7" tabindex="0">為替レートを取得する</a></li><li><a href="#toc8" tabindex="0">取得できる属性一覧</a></li><li><a href="#toc9" tabindex="0">属性一覧（応用編）— 前日終値・52週高値安値・データ遅延</a></li><li><a href="#toc10" tabindex="0">履歴データ用の属性</a></li></ol></li><li><a href="#toc11" tabindex="0">投資信託（ファンド）専用の属性を使う</a></li><li><a href="#toc12" tabindex="0">株価指数・海外の主要取引所の銘柄を取得する</a><ol><li><a href="#toc13" tabindex="0">主要な株価指数を取得する</a></li><li><a href="#toc14" tabindex="0">日本・米国以外の海外取引所の銘柄を取得する</a></li></ol></li><li><a href="#toc15" tabindex="0">GOOGLEFINANCE関数の実践的な使い方・応用例</a><ol><li><a href="#toc16" tabindex="0">ポートフォリオ管理シートを作る</a></li><li><a href="#toc17" tabindex="0">為替換算表を作る</a></li><li><a href="#toc18" tabindex="0">過去の株価データを取得する</a></li><li><a href="#toc19" tabindex="0">取得した過去データで移動平均線を計算する</a></li><li><a href="#toc20" tabindex="0">直近30日の株価チャートを作る</a></li><li><a href="#toc21" tabindex="0">騰落率（前日比）を一覧表示する</a></li><li><a href="#toc22" tabindex="0">QUERY関数で騰落率の上位・下位銘柄を抽出する</a></li><li><a href="#toc23" tabindex="0">複数銘柄のミニチャートウォッチリストを作る</a></li><li><a href="#toc24" tabindex="0">複数銘柄の値動きを指数化して比較する</a></li><li><a href="#toc25" tabindex="0">損益計算付きポートフォリオテーブルを作る</a></li></ol></li><li><a href="#toc26" tabindex="0">GOOGLEFINANCEが対応していない市場・資産（公式の注意事項）</a></li><li><a href="#toc27" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc28" tabindex="0">エラーをスマートに処理する</a></li></ol></li><li><a href="#toc29" tabindex="0">Excelとの違い（Excelには存在しない）</a></li><li><a href="#toc30" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc31" tabindex="0">Q1. GOOGLEFINANCE関数はExcelでも使えますか？</a></li><li><a href="#toc32" tabindex="0">Q2. データはどのくらいリアルタイムですか？</a></li><li><a href="#toc33" tabindex="0">Q3. 仮想通貨の価格は取得できますか？</a></li><li><a href="#toc34" tabindex="0">Q4. 投資信託の基準価額（NAV）は取得できますか？</a></li><li><a href="#toc35" tabindex="0">Q5. シートを開かなくても自動更新されますか？</a></li><li><a href="#toc36" tabindex="0">Q6. 複数銘柄をまとめて取得することはできますか？</a></li><li><a href="#toc37" tabindex="0">Q7. データを履歴として残すにはどうすればいいですか？</a></li><li><a href="#toc38" tabindex="0">Q8. ARRAYFORMULA関数と組み合わせて複数銘柄を一括取得できますか？</a></li><li><a href="#toc39" tabindex="0">Q9. IMPORTRANGE先のスプレッドシートでもGOOGLEFINANCEは動きますか？</a></li><li><a href="#toc40" tabindex="0">Q10. 配当利回りは取得できますか？</a></li><li><a href="#toc41" tabindex="0">Q11. 投資信託の分配金利回りは取得できますか？</a></li><li><a href="#toc42" tabindex="0">Q12. 海外の指数や先物はすべて取得できますか？</a></li></ol></li><li><a href="#toc43" tabindex="0">まとめ</a><ol><li><a href="#toc44" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">GOOGLEFINANCE関数とは？</span></h2>



<p class="wp-block-paragraph">GOOGLEFINANCE関数（読み方: ぐーぐる ふぁいなんす）は、<strong>Google Financeのデータを使って株価や為替レートなどの金融情報を取得する関数</strong>です。</p>



<p class="wp-block-paragraph">Googleスプレッドシート独自の関数なので、Excelでは使えません。</p>



<p class="wp-block-paragraph">GOOGLEFINANCE関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>リアルタイム（最大20分遅延）の株価を取得する</li><li>通貨ペアの為替レートを取得する</li><li>過去の株価データ（履歴）を期間指定で取得する</li><li>時価総額・PER・EPS・ベータ値などの指標を確認する</li><li>投資信託のNAV（基準価額）を取得する</li></ul>



<p class="wp-block-paragraph">ポートフォリオ管理シートや為替換算表を、コピー＆ペーストなしで自動更新できるのが最大のメリットです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>GOOGLEFINANCE関数はGoogleスプレッドシート専用です。データはGoogle Financeから提供されており、最大20分の遅延があります。リアルタイム取引には向きませんが、日常的な確認用途には十分です。</p></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>CAUTION</strong></p><p>この記事で紹介する株価データの活用例は情報提供を目的としたものです。投資判断は自己責任で行ってください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">GOOGLEFINANCE関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(ティッカー, [属性], [開始日], [終了日|日数], [間隔])</code></pre>



<p class="wp-block-paragraph">カッコの中にティッカーシンボル（銘柄コード）を指定します。属性以降は省略可能です。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>ティッカー</td><td>必須</td><td>銘柄コードまたは通貨ペア（例: <code>"GOOG"</code>, <code>"TYO:7203"</code>, <code>"USDJPY"</code>）</td></tr><tr><td>属性</td><td>任意</td><td>取得したい情報の種類（省略時は <code>"price"</code>）</td></tr><tr><td>開始日</td><td>任意</td><td>履歴データの開始日（日付またはDATE関数）</td></tr><tr><td>終了日/日数</td><td>任意</td><td>履歴データの終了日または開始日から数えた日数</td></tr><tr><td>間隔</td><td>任意</td><td><code>"DAILY"</code> または <code>"WEEKLY"</code>（省略時は <code>"DAILY"</code>）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ティッカーだけを指定すると、現在の株価（price）が返されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>日本株のティッカーは「TYO:証券コード」の形式です。たとえばトヨタ自動車なら <code>"TYO:7203"</code> と指定します。米国株はそのまま <code>"AAPL"</code> <code>"MSFT"</code> のようにティッカーを使えます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">GOOGLEFINANCE関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc6">現在の株価を取得する</span></h3>



<p class="wp-block-paragraph">まずはシンプルに、現在の株価を取得してみましょう。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;GOOG&quot;)</code></pre>



<p class="wp-block-paragraph">Googleの親会社アルファベット（ティッカー: GOOG）の現在の株価が表示されます。</p>



<p class="wp-block-paragraph">日本株の場合は証券コードの前に <code>TYO:</code> を付けます。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;TYO:7203&quot;)</code></pre>



<p class="wp-block-paragraph">トヨタ自動車（証券コード: 7203）の現在の株価です。</p>



<h3 class="wp-block-heading"><span id="toc7">為替レートを取得する</span></h3>



<p class="wp-block-paragraph">通貨ペアを指定すると、為替レートを取得できます。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;USDJPY&quot;)</code></pre>



<p class="wp-block-paragraph">米ドル/日本円のレートが返されます。通貨コードを2つつなげて指定するのがポイントです。</p>



<p class="wp-block-paragraph">ほかにもよく使う通貨ペアを挙げておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>取得できるレート</th></tr></thead><tbody><tr><td><code>=GOOGLEFINANCE("USDJPY")</code></td><td>米ドル → 日本円</td></tr><tr><td><code>=GOOGLEFINANCE("EURJPY")</code></td><td>ユーロ → 日本円</td></tr><tr><td><code>=GOOGLEFINANCE("GBPJPY")</code></td><td>英ポンド → 日本円</td></tr><tr><td><code>=GOOGLEFINANCE("AUDJPY")</code></td><td>豪ドル → 日本円</td></tr><tr><td><code>=GOOGLEFINANCE("EURUSD")</code></td><td>ユーロ → 米ドル</td></tr><tr><td><code>=GOOGLEFINANCE("CURRENCY:USDJPY")</code></td><td>米ドル → 日本円（明示指定）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>通貨コードの順番に注意してください。<code>"USDJPY"</code> は「1ドルが何円か」、<code>"JPYUSD"</code> は「1円が何ドルか」を返します。逆向きを指定すると意図しない値になります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc8">取得できる属性一覧</span></h3>



<p class="wp-block-paragraph">第2引数の「属性」を変えると、株価以外の情報も取得できます。よく使う属性をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>属性</th><th>説明</th><th>数式例</th></tr></thead><tbody><tr><td><code>"price"</code></td><td>現在の株価（デフォルト）</td><td><code>=GOOGLEFINANCE("GOOG","price")</code></td></tr><tr><td><code>"priceopen"</code></td><td>当日の始値</td><td><code>=GOOGLEFINANCE("GOOG","priceopen")</code></td></tr><tr><td><code>"high"</code></td><td>当日の高値</td><td><code>=GOOGLEFINANCE("GOOG","high")</code></td></tr><tr><td><code>"low"</code></td><td>当日の安値</td><td><code>=GOOGLEFINANCE("GOOG","low")</code></td></tr><tr><td><code>"volume"</code></td><td>当日の出来高</td><td><code>=GOOGLEFINANCE("GOOG","volume")</code></td></tr><tr><td><code>"marketcap"</code></td><td>時価総額</td><td><code>=GOOGLEFINANCE("GOOG","marketcap")</code></td></tr><tr><td><code>"pe"</code></td><td>株価収益率（PER）</td><td><code>=GOOGLEFINANCE("GOOG","pe")</code></td></tr><tr><td><code>"eps"</code></td><td>1株あたり利益（EPS）</td><td><code>=GOOGLEFINANCE("GOOG","eps")</code></td></tr><tr><td><code>"shares"</code></td><td>発行済株式数</td><td><code>=GOOGLEFINANCE("GOOG","shares")</code></td></tr><tr><td><code>"change"</code></td><td>前日比の変動額</td><td><code>=GOOGLEFINANCE("GOOG","change")</code></td></tr><tr><td><code>"changepct"</code></td><td>前日比の変動率（%）</td><td><code>=GOOGLEFINANCE("GOOG","changepct")</code></td></tr><tr><td><code>"beta"</code></td><td>ベータ値（市場との連動度）</td><td><code>=GOOGLEFINANCE("GOOG","beta")</code></td></tr><tr><td><code>"currency"</code></td><td>取引通貨</td><td><code>=GOOGLEFINANCE("GOOG","currency")</code></td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>属性は大文字・小文字どちらでも指定できます。<code>"price"</code> と <code>"PRICE"</code> は同じ結果です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">属性一覧（応用編）— 前日終値・52週高値安値・データ遅延</span></h3>



<p class="wp-block-paragraph">第2引数の属性には、ここまで紹介した以外にも便利なものがあります。前日終値や52週の高値安値、データの遅延時間まで数式で確認できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>属性</th><th>説明</th><th>数式例</th></tr></thead><tbody><tr><td><code>"closeyest"</code></td><td>前日終値</td><td><code>=GOOGLEFINANCE("GOOG","closeyest")</code></td></tr><tr><td><code>"high52"</code></td><td>52週高値</td><td><code>=GOOGLEFINANCE("GOOG","high52")</code></td></tr><tr><td><code>"low52"</code></td><td>52週安値</td><td><code>=GOOGLEFINANCE("GOOG","low52")</code></td></tr><tr><td><code>"volumeavg"</code></td><td>平均出来高</td><td><code>=GOOGLEFINANCE("GOOG","volumeavg")</code></td></tr><tr><td><code>"tradetime"</code></td><td>直近取引時刻</td><td><code>=GOOGLEFINANCE("GOOG","tradetime")</code></td></tr><tr><td><code>"datadelay"</code></td><td>データの遅延時間（分）</td><td><code>=GOOGLEFINANCE("GOOG","datadelay")</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">なかでも注目したいのが <code>"datadelay"</code> という属性。GOOGLEFINANCE関数は「最大20分遅延」としばしば案内されますが、実際の遅延分数は銘柄によって異なります。</p>



<p class="wp-block-paragraph">自分が扱っているティッカーの遅延時間を、この属性なら数値で確認できるでしょう。日次レポートの信頼性を具体的な数字で示したいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc10">履歴データ用の属性</span></h3>



<p class="wp-block-paragraph">過去データを取得するときには、専用の属性を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>属性</th><th>説明</th></tr></thead><tbody><tr><td><code>"open"</code></td><td>期間内の始値</td></tr><tr><td><code>"close"</code></td><td>期間内の終値</td></tr><tr><td><code>"high"</code></td><td>期間内の高値</td></tr><tr><td><code>"low"</code></td><td>期間内の安値</td></tr><tr><td><code>"volume"</code></td><td>期間内の出来高</td></tr><tr><td><code>"all"</code></td><td>上記すべて（5列で展開）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">履歴データは複数行・複数列に展開されるため、十分な空きスペースを確保してから入力するのがコツです。</p>



<h2 class="wp-block-heading"><span id="toc11">投資信託（ファンド）専用の属性を使う</span></h2>



<p class="wp-block-paragraph">GOOGLEFINANCE関数には、株式向けの <code>price</code> や <code>pe</code> とは別の属性群があります。投資信託（ミューチュアルファンド）専用の属性で、基準価額の報告日やリターン実績、信託報酬まで確認できます。</p>



<p class="wp-block-paragraph">主な属性を一覧にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>属性</th><th>説明</th></tr></thead><tbody><tr><td><code>"date"</code></td><td>基準価額（NAV）が報告された日付</td></tr><tr><td><code>"returnytd"</code></td><td>年初来リターン</td></tr><tr><td><code>"netassets"</code></td><td>純資産総額</td></tr><tr><td><code>"yieldpct"</code></td><td>分配金利回り（直近12か月の分配金と基準価額の値上がり分の合計を、前月の基準価額で割った利回り）</td></tr><tr><td><code>"returnday"</code></td><td>直近1日のトータルリターン</td></tr><tr><td><code>"return1"</code></td><td>直近1週間のトータルリターン</td></tr><tr><td><code>"return4"</code></td><td>直近4週間のトータルリターン</td></tr><tr><td><code>"return13"</code></td><td>直近13週間のトータルリターン</td></tr><tr><td><code>"return52"</code></td><td>直近52週間（1年）のトータルリターン</td></tr><tr><td><code>"return156"</code></td><td>直近156週間（3年）のトータルリターン</td></tr><tr><td><code>"return260"</code></td><td>直近260週間（5年）のトータルリターン</td></tr><tr><td><code>"incomedividend"</code></td><td>直近の分配金額</td></tr><tr><td><code>"incomedividenddate"</code></td><td>直近分配金の基準日</td></tr><tr><td><code>"capitalgain"</code></td><td>直近のキャピタルゲイン分配額</td></tr><tr><td><code>"morningstarrating"</code></td><td>モーニングスターのレーティング</td></tr><tr><td><code>"expenseratio"</code></td><td>信託報酬（経費率）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ファンドの分配金利回りを確認したいときは、次のように書きます。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;VFIAX&quot;,&quot;yieldpct&quot;)</code></pre>



<p class="wp-block-paragraph">年初来のリターンを合わせて見たい場合は、属性名を変えるだけで対応できるでしょう。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;VFIAX&quot;,&quot;returnytd&quot;)</code></pre>



<p class="wp-block-paragraph">株式の配当利回りに相当する属性は用意されていません。一方で投資信託には <code>"yieldpct"</code> という専用の属性があり、ファンドの運用レポートづくりに役立ちます。</p>



<h2 class="wp-block-heading"><span id="toc12">株価指数・海外の主要取引所の銘柄を取得する</span></h2>



<p class="wp-block-paragraph">個別銘柄だけでなく、株価指数や海外の取引所に上場する銘柄もGOOGLEFINANCE関数で取得できます。</p>



<h3 class="wp-block-heading"><span id="toc13">主要な株価指数を取得する</span></h3>



<p class="wp-block-paragraph">日経平均やNYダウなどの指数も、個別銘柄と同じ「取引所コード:銘柄コード」という書き方。</p>



<figure class="wp-block-table"><table><thead><tr><th>指数</th><th>数式</th></tr></thead><tbody><tr><td>日経平均株価</td><td><code>=GOOGLEFINANCE("INDEXNIKKEI:NI225")</code></td></tr><tr><td>TOPIX（東証株価指数）</td><td><code>=GOOGLEFINANCE("INDEXTOPIX:TOPIX")</code></td></tr><tr><td>NYダウ（ダウ工業株30種平均）</td><td><code>=GOOGLEFINANCE("INDEXDJX:.DJI")</code></td></tr><tr><td>S&#038;P500</td><td><code>=GOOGLEFINANCE("INDEXSP:.INX")</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">市場全体の値動きを把握したいときに便利な指定方法です。個別銘柄の評価額と指数を並べて表示すれば、自分のポートフォリオが市場平均を上回っているかどうかも比較しやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc14">日本・米国以外の海外取引所の銘柄を取得する</span></h3>



<p class="wp-block-paragraph">ロンドンや香港など、他の主要取引所に上場する銘柄も取得できます。取引所コードを変えるだけで指定可能です。</p>



<figure class="wp-block-table"><table><thead><tr><th>取引所</th><th>数式例</th><th>銘柄</th></tr></thead><tbody><tr><td>ロンドン証券取引所</td><td><code>=GOOGLEFINANCE("LON:VOD")</code></td><td>ボーダフォン</td></tr><tr><td>香港証券取引所</td><td><code>=GOOGLEFINANCE("HKG:0005")</code></td><td>HSBC</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">海外分散投資をしている場合は、こうした取引所コードを覚えておくと管理シートの幅が広がるでしょう。</p>



<h2 class="wp-block-heading"><span id="toc15">GOOGLEFINANCE関数の実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc16">ポートフォリオ管理シートを作る</span></h3>



<p class="wp-block-paragraph">保有銘柄の一覧と評価額を自動計算するシートを作ってみましょう。</p>



<p class="wp-block-paragraph">A列にティッカー、B列に保有株数を入力し、C列で現在株価を取得、D列で評価額を計算します。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A（ティッカー）</th><th>B（保有株数）</th><th>C（現在株価）</th><th>D（評価額）</th></tr></thead><tbody><tr><td>1</td><td>ティッカー</td><td>保有株数</td><td>現在株価</td><td>評価額</td></tr><tr><td>2</td><td>GOOG</td><td>10</td><td>=GOOGLEFINANCE(A2)</td><td>=B2*C2</td></tr><tr><td>3</td><td>AAPL</td><td>20</td><td>=GOOGLEFINANCE(A3)</td><td>=B3*C3</td></tr><tr><td>4</td><td>TYO:7203</td><td>100</td><td>=GOOGLEFINANCE(A4)</td><td>=B4*C4</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">C2 に <code>=GOOGLEFINANCE(A2)</code> と入力すれば、A列のティッカーに応じた株価が自動で取得されます。D2 の <code>=B2*C2</code> で保有株数と掛け算すれば評価額の完成です。</p>



<p class="wp-block-paragraph">銘柄を増やしても数式をコピーするだけなので管理が楽ですよ。</p>



<p class="wp-block-paragraph">円建ての評価額にしたい場合は、為替レートを掛けます。</p>



<pre class="wp-block-code"><code>=B2*C2*GOOGLEFINANCE(&quot;USDJPY&quot;)</code></pre>



<p class="wp-block-paragraph">これで米ドル建ての銘柄も日本円換算で並べられます。</p>



<h3 class="wp-block-heading"><span id="toc17">為替換算表を作る</span></h3>



<p class="wp-block-paragraph">海外取引の金額を日本円に換算する表も簡単に作れます。</p>



<pre class="wp-block-code"><code>=B2*GOOGLEFINANCE(&quot;USDJPY&quot;)</code></pre>



<p class="wp-block-paragraph">B2 にドル建ての金額が入っていれば、現在の為替レートで日本円に換算した結果が返されます。</p>



<p class="wp-block-paragraph">複数通貨を扱う場合は、通貨コードをセルに入れておいて動的に切り替えると便利です。</p>



<pre class="wp-block-code"><code>=B2*GOOGLEFINANCE(A2&amp;&quot;JPY&quot;)</code></pre>



<p class="wp-block-paragraph">A2 に <code>USD</code> や <code>EUR</code> などの通貨コードを入れておけば、通貨に応じたレートで自動換算されます。3文字の通貨コードと「JPY」を文字列結合（<code>&</code>）するのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc18">過去の株価データを取得する</span></h3>



<p class="wp-block-paragraph">GOOGLEFINANCE関数は過去の株価データも取得できます。開始日と終了日を指定すると、複数行にわたってデータが展開されます。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;GOOG&quot;,&quot;close&quot;,DATE(2025,1,1),DATE(2025,12,31),&quot;DAILY&quot;)</code></pre>



<p class="wp-block-paragraph">2025年1月1日から12月31日までの終値が日次で返されます。</p>



<p class="wp-block-paragraph">結果は「日付」と「Close（終値）」の2列が自動的に展開されるので、空いたセル範囲に数式を入れてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>履歴データは複数セルに展開されます。展開先にデータがあるとエラーになるので、十分な空きスペースを確保しておきましょう。</p></blockquote>



<p class="wp-block-paragraph">間隔を <code>"WEEKLY"</code> に変えると、週次データに切り替わります。長期の傾向を確認したいときに便利です。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;GOOG&quot;,&quot;close&quot;,DATE(2025,1,1),DATE(2025,12,31),&quot;WEEKLY&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc19">取得した過去データで移動平均線を計算する</span></h3>



<p class="wp-block-paragraph">過去の終値データが取得できたら、<a href="https://mashukabu.com/spreadsheet-average-function/">AVERAGE関数</a>と組み合わせて移動平均線も計算できます。</p>



<p class="wp-block-paragraph">まずは終値の履歴を取得しましょう。この数式をB1セルに入力すると想定します。日付（B列）とClose（C列）の2列が展開されます。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;GOOG&quot;,&quot;close&quot;,DATE(2025,1,1),DATE(2025,12,31),&quot;DAILY&quot;)</code></pre>



<p class="wp-block-paragraph">展開された終値の直近5日分（C2:C6）をAVERAGE関数でまとめると、5日移動平均が求められます。</p>



<pre class="wp-block-code"><code>=AVERAGE(C2:C6)</code></pre>



<p class="wp-block-paragraph">25日移動平均にしたい場合は、範囲をC2:C26のように広げるだけです。セルを下にコピーすれば、日々の移動平均が一列に並びます。</p>



<p class="wp-block-paragraph">短期線と長期線を並べてグラフ化すると、トレンドの転換点も視覚的につかみやすくなるでしょう。</p>



<h3 class="wp-block-heading"><span id="toc20">直近30日の株価チャートを作る</span></h3>



<p class="wp-block-paragraph">履歴データとスパークラインを組み合わせれば、ミニチャートも作れます。</p>



<pre class="wp-block-code"><code>=SPARKLINE(GOOGLEFINANCE(&quot;GOOG&quot;,&quot;price&quot;,TODAY()-30,TODAY()))</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-sparkline-function/">SPARKLINE関数</a>の中で GOOGLEFINANCE を直接使うと、セル内に直近30日の株価推移を折れ線グラフで表示できます。ダッシュボードや日次レポートに最適です。</p>



<h3 class="wp-block-heading"><span id="toc21">騰落率（前日比）を一覧表示する</span></h3>



<p class="wp-block-paragraph">属性 <code>"changepct"</code> を使うと、前日比の変動率を取得できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>銘柄</th><th>現在値</th><th>前日比(%)</th></tr></thead><tbody><tr><td>GOOG</td><td>=GOOGLEFINANCE(&#8220;GOOG&#8221;,&#8221;price&#8221;)</td><td>=GOOGLEFINANCE(&#8220;GOOG&#8221;,&#8221;changepct&#8221;)</td></tr><tr><td>AAPL</td><td>=GOOGLEFINANCE(&#8220;AAPL&#8221;,&#8221;price&#8221;)</td><td>=GOOGLEFINANCE(&#8220;AAPL&#8221;,&#8221;changepct&#8221;)</td></tr><tr><td>TYO:7203</td><td>=GOOGLEFINANCE(&#8220;TYO:7203&#8243;,&#8221;price&#8221;)</td><td>=GOOGLEFINANCE(&#8220;TYO:7203&#8243;,&#8221;changepct&#8221;)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>と組み合わせれば、エラーが出る銘柄も表が崩れずに表示できます。</p>



<pre class="wp-block-code"><code>=IFERROR(GOOGLEFINANCE(A2,&quot;changepct&quot;),&quot;取得不可&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc22">QUERY関数で騰落率の上位・下位銘柄を抽出する</span></h3>



<p class="wp-block-paragraph">銘柄数が増えてくると、<a href="https://mashukabu.com/spreadsheet-query-function/">QUERY関数</a>で騰落率の上位・下位だけを抽出すると見やすくなります。</p>



<p class="wp-block-paragraph">A列に銘柄、B列に前日比（%）を並べた表を用意しておきましょう。次の数式で、下落率が大きい順に上位5件を抽出できます。</p>



<pre class="wp-block-code"><code>=QUERY(A2:B,&quot;select A,B order by B asc limit 5&quot;)</code></pre>



<p class="wp-block-paragraph">上昇率トップ5を見たい場合は、<code>asc</code> を <code>desc</code> に変えるだけです。</p>



<p class="wp-block-paragraph">騰落率をQUERY関数で並べ替えれば、値動きの大きい銘柄をすぐに見つけられるでしょう。</p>



<h3 class="wp-block-heading"><span id="toc23">複数銘柄のミニチャートウォッチリストを作る</span></h3>



<p class="wp-block-paragraph">各行にミニチャートを並べた「ウォッチリスト」を作ると、複数銘柄の値動きをひと目で把握できます。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-sparkline-function/">SPARKLINE関数</a>の中で、過去データを取得するGOOGLEFINANCEを呼び出すのがポイントです。</p>



<p class="wp-block-paragraph">A列に銘柄名、B列に現在値、C列に前日比、D列に30日チャートを並べた表を作ってみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A（ティッカー）</th><th>B（現在値）</th><th>C（前日比%）</th><th>D（30日チャート）</th></tr></thead><tbody><tr><td>1</td><td>ティッカー</td><td>現在値</td><td>前日比%</td><td>30日チャート</td></tr><tr><td>2</td><td>AAPL</td><td>=GOOGLEFINANCE(A2,&#8221;price&#8221;)</td><td>=GOOGLEFINANCE(A2,&#8221;changepct&#8221;)</td><td>(下記の数式)</td></tr><tr><td>3</td><td>MSFT</td><td>=GOOGLEFINANCE(A3,&#8221;price&#8221;)</td><td>=GOOGLEFINANCE(A3,&#8221;changepct&#8221;)</td><td>(下記の数式)</td></tr><tr><td>4</td><td>GOOG</td><td>=GOOGLEFINANCE(A4,&#8221;price&#8221;)</td><td>=GOOGLEFINANCE(A4,&#8221;changepct&#8221;)</td><td>(下記の数式)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">D列のチャートには、次の数式を入れます。</p>



<pre class="wp-block-code"><code>=SPARKLINE(GOOGLEFINANCE(A2,&quot;price&quot;,TODAY()-30,TODAY()),{&quot;charttype&quot;,&quot;line&quot;;&quot;color&quot;,&quot;#1a73e8&quot;;&quot;linewidth&quot;,1.5})</code></pre>



<p class="wp-block-paragraph"><code>TODAY()-30</code> から <code>TODAY()</code> までの直近30日分の株価を取得し、セル内に折れ線グラフとして描画します。第2引数のオプションでは線の種類・色・太さを指定しています。</p>



<p class="wp-block-paragraph">D2 に入力したらD3・D4へ下にコピーするだけで、各行に対応した銘柄のミニチャートが並びます。</p>



<p class="wp-block-paragraph">オプションを変えると見た目も調整できます。たとえば棒グラフにしたいときは <code>"charttype","column"</code> に変更します。</p>



<pre class="wp-block-code"><code>=SPARKLINE(GOOGLEFINANCE(A2,&quot;price&quot;,TODAY()-30,TODAY()),{&quot;charttype&quot;,&quot;column&quot;;&quot;color&quot;,&quot;#34a853&quot;})</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ミニチャートには終値（price/close）を使うのがコツです。<code>"high"</code> や <code>"all"</code> などを指定すると複数列の二次元配列が返り、SPARKLINEがうまく描画できません。1列のデータに絞りましょう。</p></blockquote>



<p class="wp-block-paragraph">前日比のプラス・マイナスで色を変えたい場合は、<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>でラップしつつ条件付き書式を併用すると、上昇銘柄と下落銘柄が直感的に見分けられるウォッチリストになります。</p>



<h3 class="wp-block-heading"><span id="toc24">複数銘柄の値動きを指数化して比較する</span></h3>



<p class="wp-block-paragraph">複数銘柄の値動きを1つのグラフで比べたいときは、開始時点を100とする「指数化」が便利です。株価そのものは銘柄ごとに単位が違うため、そのままでは比較しにくいのが難点でしょう。</p>



<p class="wp-block-paragraph">各銘柄の株価を取得したら、開始日の株価を基準に指数を計算します。GOOGLEFINANCE関数に開始日・終了日を指定すると「日付」と「価格」の2列が展開されるため、価格列だけを取り出すにはINDEX関数を組み合わせます。まずB1セルに、次の数式を入れて開始日からの株価を並べておきましょう。</p>



<pre class="wp-block-code"><code>=INDEX(GOOGLEFINANCE(A2,&quot;price&quot;,TODAY()-90,TODAY()),0,2)</code></pre>



<p class="wp-block-paragraph">INDEX関数の第2引数を0にすると全行、第3引数の2で2列目（価格列）だけを取り出せます。</p>



<p class="wp-block-paragraph">取得した株価列の隣（C列）に、次の数式を入れます。</p>



<pre class="wp-block-code"><code>=B2/B$2*100</code></pre>



<p class="wp-block-paragraph">B2が開始日の株価であれば、以降のセルはすべて開始時点を100とした指数になります。</p>



<p class="wp-block-paragraph">指数化した列を複数銘柄分並べて折れ線グラフにすれば、値幅の違う銘柄同士でもパフォーマンスの優劣をひと目で比べられるでしょう。</p>



<h3 class="wp-block-heading"><span id="toc25">損益計算付きポートフォリオテーブルを作る</span></h3>



<p class="wp-block-paragraph">評価額だけでなく、取得単価からの損益まで自動計算する本格的なポートフォリオテーブルも作れます。</p>



<p class="wp-block-paragraph">A列からG列までを次のように構成します。B列の取得単価・C列の保有株数は手入力、D列以降は数式で自動計算します。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A（ティッカー）</th><th>B（取得単価）</th><th>C（保有株数）</th><th>D（現在株価）</th><th>E（取得額）</th><th>F（評価額）</th><th>G（損益額）</th></tr></thead><tbody><tr><td>1</td><td>ティッカー</td><td>取得単価</td><td>保有株数</td><td>現在株価</td><td>取得額</td><td>評価額</td><td>損益額</td></tr><tr><td>2</td><td>AAPL</td><td>150</td><td>20</td><td>=IFERROR(GOOGLEFINANCE(A2,&#8221;price&#8221;),&#8221;&#8221;)</td><td>=B2*C2</td><td>=D2*C2</td><td>=F2-E2</td></tr><tr><td>3</td><td>MSFT</td><td>300</td><td>10</td><td>=IFERROR(GOOGLEFINANCE(A3,&#8221;price&#8221;),&#8221;&#8221;)</td><td>=B3*C3</td><td>=D3*C3</td><td>=F3-E3</td></tr><tr><td>4</td><td>GOOG</td><td>130</td><td>15</td><td>=IFERROR(GOOGLEFINANCE(A4,&#8221;price&#8221;),&#8221;&#8221;)</td><td>=B4*C4</td><td>=D4*C4</td><td>=F4-E4</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">各列の意味と数式を整理しておきます。</p>



<ul class="wp-block-list"><li>D列（現在株価）: <code>=IFERROR(GOOGLEFINANCE(A2,"price"),"")</code> で現在値を取得</li><li>E列（取得額）: <code>=B2*C2</code> で取得単価 × 保有株数</li><li>F列（評価額）: <code>=D2*C2</code> で現在株価 × 保有株数</li><li>G列（損益額）: <code>=F2-E2</code> で評価額 − 取得額</li></ul>



<p class="wp-block-paragraph">さらに損益率（パーセント）を見たい場合は、H列を追加します。</p>



<pre class="wp-block-code"><code>=G2/E2</code></pre>



<p class="wp-block-paragraph">損益額を取得額で割れば、何パーセントの含み益・含み損かが一目でわかります。セルの表示形式を「パーセント」にしておくと見やすくなります。</p>



<p class="wp-block-paragraph">D列でGOOGLEFINANCEを<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>でラップしているのには理由があります。市場が閉まっている時間帯や、一時的にデータが取得できないときに <code>#N/A</code> が出ても、評価額や損益の計算が崩れないようにするためです。</p>



<p class="wp-block-paragraph">米国株を日本円換算で管理したい場合は、評価額の数式に為替レートを掛けます。</p>



<pre class="wp-block-code"><code>=D2*C2*GOOGLEFINANCE(&quot;CURRENCY:USDJPY&quot;)</code></pre>



<p class="wp-block-paragraph">これでドル建ての株価を円建ての評価額に変換でき、円ベースで損益を把握できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>取得単価が外貨建ての場合は、取得額（E列）にも同じ為替の考え方を適用しないと損益がずれます。円換算で管理するなら、取得時のレートを別途記録しておくと正確です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc26">GOOGLEFINANCEが対応していない市場・資産（公式の注意事項）</span></h2>



<p class="wp-block-paragraph">海外の指数や先物を調べていると、思うようにデータが取れないことがあります。Google公式のヘルプには、GOOGLEFINANCE関数の対応範囲について次のような注意事項が明記されています。</p>



<ul class="wp-block-list"><li>提供データは英語のみで、ほとんどの国際取引所には対応していません</li><li>すべての先物に対応しているわけではないとされています</li><li>旧来の Reuters Instrument Codes（証券コードの旧形式）は廃止済みで、<code>"取引所コード:銘柄コード"</code> の形式が必要です</li><li>履歴データは Google Sheets API や Google Apps Script からは取得できません（スプレッドシートの数式内でのみ利用可能です）</li></ul>



<p class="wp-block-paragraph">海外指数や先物のティッカーを試して <code>#N/A</code> が続くようなら、対応していない銘柄・市場である可能性を疑ってみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>CAUTION</strong></p><p>Google公式ヘルプには、GOOGLEFINANCE関数が金融の専門家向けではないと明記されています。投資判断の参考程度にとどめ、重要な意思決定には証券会社等の一次情報も確認してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc27">よくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">GOOGLEFINANCE関数で「値が取れない」ケースをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#N/A</code> エラーが出る</td><td>ティッカーが間違っている</td><td>Google Financeで正しいティッカーを確認する。日本株は <code>TYO:</code> を付ける</td></tr><tr><td><code>#N/A</code> エラーが出る</td><td>属性名のスペルミス</td><td><code>"price"</code> <code>"high"</code> <code>"low"</code> など正しい属性名を確認する</td></tr><tr><td><code>#REF!</code> エラーが出る</td><td>履歴データの展開先にデータがある</td><td>展開先のセルを空にしておく</td></tr><tr><td><code>#ERROR!</code> が出る</td><td>引数のカンマや引用符の不足</td><td>数式バーで構文を見直す</td></tr><tr><td>値が更新されない</td><td>スプレッドシートのキャッシュ</td><td>セルを再編集するか、シートを再読み込みする</td></tr><tr><td>古い株価が表示される</td><td>Google Financeのデータ遅延（最大20分）</td><td>リアルタイムではなく遅延データであることを理解する</td></tr><tr><td>日本株の値が取れない</td><td>証券コードだけを指定している</td><td><code>"TYO:7203"</code> のように取引所コードを付ける</td></tr><tr><td>為替が取得できない</td><td>通貨コードが逆または間違い</td><td><code>"USDJPY"</code> のように正しい通貨コードの組み合わせにする</td></tr><tr><td>仮想通貨が取れない</td><td>一部銘柄は対応していない</td><td>対応外の場合は別APIを検討する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ティッカーが正しいか確認するには、<a href="https://www.google.com/finance/">Google Finance</a>でキーワード検索してみてください。検索結果に表示されるティッカーをそのまま使えます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc28">エラーをスマートに処理する</span></h3>



<p class="wp-block-paragraph">複数銘柄を扱うとき、1つでもエラーが出ると表全体が崩れてしまいます。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>でラップしておくと安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(GOOGLEFINANCE(A2,&quot;price&quot;),&quot;-&quot;)</code></pre>



<p class="wp-block-paragraph">エラーの場合はハイフン（-）が表示されるので、表のレイアウトを保てます。</p>



<h2 class="wp-block-heading"><span id="toc29">Excelとの違い（Excelには存在しない）</span></h2>



<p class="wp-block-paragraph">GOOGLEFINANCE関数はGoogleスプレッドシート専用の関数です。Excelには同じ関数がありません。</p>



<p class="wp-block-paragraph">Excelで株価を取得したい場合は、STOCKHISTORY関数やデータ型（株式データ型）を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>GOOGLEFINANCE関数（Sheets）</th><th>STOCKHISTORY関数（Excel）</th></tr></thead><tbody><tr><td>対応環境</td><td>Googleスプレッドシートのみ</td><td>Microsoft 365 / Excel 2024</td></tr><tr><td>データソース</td><td>Google Finance</td><td>Microsoft提携の金融データプロバイダー</td></tr><tr><td>リアルタイム性</td><td>最大20分遅延</td><td>遅延あり（プロバイダーによる）</td></tr><tr><td>為替レート</td><td>対応（通貨ペア指定）</td><td>非対応（株価のみ）</td></tr><tr><td>過去データ</td><td>対応（日次・週次）</td><td>対応（日次・週次・月次）</td></tr><tr><td>指標（PER等）</td><td>対応（属性で指定）</td><td>非対応</td></tr><tr><td>料金</td><td>無料（Googleアカウントのみ）</td><td>Microsoft 365サブスクリプション必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">為替レートの取得や指標の確認まで無料でできるのは、GOOGLEFINANCE関数ならではの強みです。</p>



<p class="wp-block-paragraph">Excelでの株価データ取得については<a href="https://mashukabu.com/excel-function-howto-use-stockhistory/">ExcelのSTOCKHISTORY関数の記事</a>で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc30">よくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc31">Q1. GOOGLEFINANCE関数はExcelでも使えますか？</span></h3>



<p class="wp-block-paragraph">いいえ、Googleスプレッドシート専用です。Excelには同じ関数がないので、ExcelではSTOCKHISTORY関数や株式データ型を使ってください。</p>



<h3 class="wp-block-heading"><span id="toc32">Q2. データはどのくらいリアルタイムですか？</span></h3>



<p class="wp-block-paragraph">Google Financeの公式仕様では「最大20分遅延」とされています。日中の値動きを正確に追いたい用途には不向きですが、終値ベースのポートフォリオ管理や日次レポートなら十分実用的です。</p>



<h3 class="wp-block-heading"><span id="toc33">Q3. 仮想通貨の価格は取得できますか？</span></h3>



<p class="wp-block-paragraph"><code>"BTCUSD"</code> のように一部の主要ペアは取得できる場合がありますが、対応状況は変動します。安定して取得したい場合は、CoinGecko などの専用APIをImportJSONで呼び出す方法を検討してください。</p>



<h3 class="wp-block-heading"><span id="toc34">Q4. 投資信託の基準価額（NAV）は取得できますか？</span></h3>



<p class="wp-block-paragraph">米国の投資信託（ティッカーが付いているもの）は取得できます。日本の公募投信は対応外なので、運用会社のCSVを<a href="https://mashukabu.com/spreadsheet-importdata-function/">IMPORTDATA関数</a>で取り込む方法が現実的です。</p>



<h3 class="wp-block-heading"><span id="toc35">Q5. シートを開かなくても自動更新されますか？</span></h3>



<p class="wp-block-paragraph">GOOGLEFINANCE関数はシートを開いたとき・編集したときに更新されます。シートを閉じている間は更新されません。バックグラウンドで定期更新したい場合は、Google Apps Script（GAS）でトリガーを組む必要があります。</p>



<h3 class="wp-block-heading"><span id="toc36">Q6. 複数銘柄をまとめて取得することはできますか？</span></h3>



<p class="wp-block-paragraph">ティッカーをセル参照（A列など）にして、各行で <code>=GOOGLEFINANCE(A2)</code> のようにコピーするのが基本です。配列でまとめて取得したい場合は、<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせる方法もあります。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IFERROR(GOOGLEFINANCE(A2:A10),&quot;&quot;))</code></pre>



<h3 class="wp-block-heading"><span id="toc37">Q7. データを履歴として残すにはどうすればいいですか？</span></h3>



<p class="wp-block-paragraph">GOOGLEFINANCE関数は常に最新値を返すため、過去のスナップショットは残りません。履歴を残したい場合は、Google Apps Scriptで定期的に値を別シートにコピー保存するスクリプトを書くのが定番です。</p>



<h3 class="wp-block-heading"><span id="toc38">Q8. ARRAYFORMULA関数と組み合わせて複数銘柄を一括取得できますか？</span></h3>



<p class="wp-block-paragraph">基本的には推奨できません。GOOGLEFINANCEのような外部データ取得関数は、<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>に範囲をそのまま渡しても各行へ展開されないことが多く、最初の1行だけ値が返るケースが目立ちます。</p>



<p class="wp-block-paragraph">確実に動かすなら、各行に <code>=GOOGLEFINANCE(A2)</code> のような個別の数式を入れて下にコピーするのが安全です。どうしても1セルでまとめたい場合は、現在株価のような単一値（履歴データではないもの）に限り、次のように <code>IFERROR</code> でラップして試すとよいでしょう。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IFERROR(GOOGLEFINANCE(A2:A10),&quot;&quot;))</code></pre>



<p class="wp-block-paragraph">ただし環境やデータの種類によって挙動が変わるため、過去データの取得には使わず、結果を必ず目視で確認してください。</p>



<h3 class="wp-block-heading"><span id="toc39">Q9. IMPORTRANGE先のスプレッドシートでもGOOGLEFINANCEは動きますか？</span></h3>



<p class="wp-block-paragraph">GOOGLEFINANCEの数式そのものをIMPORTRANGEで他シートに渡すことはできません。IMPORTRANGEはあくまで「計算結果の値」を取り込む関数だからです。</p>



<p class="wp-block-paragraph">そのため、GOOGLEFINANCEの数式は元になるスプレッドシートに直接書き、IMPORTRANGEではその結果（株価や評価額）を参照するのが正しい使い方です。</p>



<pre class="wp-block-code"><code>=IMPORTRANGE(&quot;元シートのURL&quot;,&quot;株価!A1:D10&quot;)</code></pre>



<p class="wp-block-paragraph">なお、取り込んだ値は元シートが開かれて更新されたタイミングで反映されます。参照側だけを開いても、元シート側のGOOGLEFINANCEが更新されていなければ古い値が表示される点に注意してください。</p>



<h3 class="wp-block-heading"><span id="toc40">Q10. 配当利回りは取得できますか？</span></h3>



<p class="wp-block-paragraph">GOOGLEFINANCE関数の公式な属性一覧を確認すると、配当利回りを直接返す属性は含まれていません。取得できるのは時価総額やPER、EPSといった株価指標が中心で、配当関連の数値は対象外と考えておいたほうが安全でしょう。</p>



<p class="wp-block-paragraph">どうしても配当利回りをシート上にまとめたい場合は、証券会社のサイトで確認した数値を手入力するか、<a href="https://mashukabu.com/spreadsheet-importhtml-function/">IMPORTHTML関数</a>で該当ページの表を取り込む方法を検討してみてください。</p>



<h3 class="wp-block-heading"><span id="toc41">Q11. 投資信託の分配金利回りは取得できますか？</span></h3>



<p class="wp-block-paragraph">株式の配当利回りに相当する属性はありませんが、投資信託には <code>"yieldpct"</code> という専用の属性が用意されています。直近12か月の分配金と基準価額の値上がり分の合計を、前月の基準価額で割った利回りで、次のように書けば取得できます。</p>



<pre class="wp-block-code"><code>=GOOGLEFINANCE(&quot;VFIAX&quot;,&quot;yieldpct&quot;)</code></pre>



<p class="wp-block-paragraph">ファンドごとの利回り比較表を作りたいときに活用してみてください。</p>



<h3 class="wp-block-heading"><span id="toc42">Q12. 海外の指数や先物はすべて取得できますか？</span></h3>



<p class="wp-block-paragraph">いいえ、すべてに対応しているわけではありません。公式ヘルプには「ほとんどの国際取引所」が対応外、また「すべての先物に対応しているわけではない」と明記されています。</p>



<p class="wp-block-paragraph">海外の指数や先物のティッカーを試して <code>#N/A</code> が続く場合は、対応していない銘柄・市場である可能性を疑ってみましょう。対応状況は銘柄ごとに異なるため、重要な運用判断の前には証券会社の情報で裏付けを取ることをおすすめします。</p>



<h2 class="wp-block-heading"><span id="toc43">まとめ</span></h2>



<p class="wp-block-paragraph">GOOGLEFINANCE関数は、スプレッドシート上で株価や為替レートを自動取得できるSheets独自の関数です。</p>



<p class="wp-block-paragraph">ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=GOOGLEFINANCE(ティッカー, [属性], [開始日], [終了日|日数], [間隔])</code></li><li>ティッカーだけ指定すると現在の株価を返す</li><li>日本株は <code>"TYO:証券コード"</code> の形式で指定する</li><li>通貨ペア（例: <code>"USDJPY"</code>）を指定すると為替レートを取得できる</li><li>属性を変えれば高値・安値・PER・時価総額・ベータ値など多彩な情報を取得可能</li><li>開始日・終了日を指定すると過去の株価データも取得できる</li><li>データは最大20分遅延。リアルタイム取引には不向き</li><li>Excelには存在しないSheets独自の関数。代替は<a href="https://mashukabu.com/excel-function-howto-use-stockhistory/">STOCKHISTORY関数</a></li><li>エラー対策は<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>と組み合わせるのが定番</li></ul>



<p class="wp-block-paragraph">まずは <code>=GOOGLEFINANCE("USDJPY")</code> で今のドル円レートを確認するところから試してみてください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc44">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-stockhistory/">ExcelのSTOCKHISTORY関数の使い方｜株価データを取得する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-dollar/">ExcelのDOLLAR関数の使い方｜数値を通貨形式の文字列に変換する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方｜エラーをスマートに処理</a></li><li><a href="https://mashukabu.com/spreadsheet-sparkline-function/">スプレッドシートのSPARKLINE関数の使い方｜セル内ミニチャート</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方｜配列でまとめて計算</a></li><li><a href="https://mashukabu.com/spreadsheet-importdata-function/">スプレッドシートのIMPORTDATA関数の使い方｜CSVを取り込む</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-googlefinance-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのRTD関数の使い方｜RTDサーバーからリアルタイムデータを取得する</title>
		<link>https://mashukabu.com/excel-function-howto-use-rtd/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-rtd/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 04 Jan 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DDE]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[RTD]]></category>
		<category><![CDATA[リアルタイム]]></category>
		<category><![CDATA[株価]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3241</guid>

					<description><![CDATA[ExcelのRTD関数でRTDサーバーからリアルタイムデータを取得する方法を解説。構文・RTDサーバー接続・株価/為替データ取得・DDEとの比較・#N/Aエラー対処・更新頻度の設定まで完全網羅。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「Excelで株価や為替を秒単位で更新したい」「製造ラインのセンサー値をシートに流し込みたい」――こうした業務要件にピンポイントで応えるのが <strong>RTD関数</strong> です。</p>



<p class="wp-block-paragraph">RTD（RealTimeData）は、外部のRTDサーバーと通信してデータを継続的に取り込む仕組みです。証券会社のトレーディングツール、PLCや SCADA などの現場制御システム、Bloomberg のような金融データサービスで広く使われています。</p>



<p class="wp-block-paragraph">ただし「サーバーが必要」「Windows版限定」「ProgID とトピックの理解が必要」と、初見ではハードルが高い関数でもあります。</p>



<p class="wp-block-paragraph">この記事では、RTD関数の仕組み・書式・基本コード・DDE関数との比較・実務での活用例・エラー対処までを順番に解説します。読み終えるころには、自社環境で RTD を導入するための判断材料がそろうはずです。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのRTD関数とは？RTDサーバーとリアルタイムデータ取得の仕組み</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">RTDサーバーとは何か</a></li><li><a href="#toc4" tabindex="0">どんな業務シーンで使うのか</a></li><li><a href="#toc5" tabindex="0">対応バージョンと前提条件</a></li></ol></li><li><a href="#toc6" tabindex="0">RTD関数の書式と引数の渡し方</a><ol><li><a href="#toc7" tabindex="0">基本構文</a></li><li><a href="#toc8" tabindex="0">引数一覧</a></li><li><a href="#toc9" tabindex="0">ProgID とは何か</a></li><li><a href="#toc10" tabindex="0">トピックの設計思想</a></li><li><a href="#toc11" tabindex="0">引数を渡すときの注意</a></li></ol></li><li><a href="#toc12" tabindex="0">RTD関数の使い方①｜基本的なRTDサーバー接続例</a><ol><li><a href="#toc13" tabindex="0">例1：ローカルのRTDサーバーから1つの値を取得する</a></li><li><a href="#toc14" tabindex="0">例2：リモートサーバーからデータを取得する</a></li><li><a href="#toc15" tabindex="0">例3：セル参照で動的にデータを切り替える</a></li><li><a href="#toc16" tabindex="0">例4：複数項目を横並びで表示する</a></li><li><a href="#toc17" tabindex="0">更新頻度の調整</a></li></ol></li><li><a href="#toc18" tabindex="0">RTD関数の使い方②｜DDE関数との比較と移行</a><ol><li><a href="#toc19" tabindex="0">DDEとRTDの違い</a></li><li><a href="#toc20" tabindex="0">DDEからRTDへの移行イメージ</a></li><li><a href="#toc21" tabindex="0">移行時のチェックリスト</a></li></ol></li><li><a href="#toc22" tabindex="0">RTD関数の応用｜株価・為替・センサーデータのリアルタイム取得</a><ol><li><a href="#toc23" tabindex="0">活用例1：株価・為替のダッシュボード</a></li><li><a href="#toc24" tabindex="0">活用例2：製造現場のセンサーモニタリング</a></li><li><a href="#toc25" tabindex="0">活用例3：自作RTDサーバーとの連携</a></li><li><a href="#toc26" tabindex="0">活用例4：VBAと組み合わせたアラート発火</a></li></ol></li><li><a href="#toc27" tabindex="0">RTD関数でよくあるエラーと対処法（N/A・接続失敗・更新されない）</a><ol><li><a href="#toc28" tabindex="0">#N/A エラー：サーバーに接続できない</a></li><li><a href="#toc29" tabindex="0">#VALUE! エラー：トピックが解釈できない</a></li><li><a href="#toc30" tabindex="0">#REF! エラー：接続が途中で切れた</a></li><li><a href="#toc31" tabindex="0">データが更新されない</a></li><li><a href="#toc32" tabindex="0">セキュリティ警告でブロックされる</a></li><li><a href="#toc33" tabindex="0">トラブル切り分けの基本フロー</a></li></ol></li><li><a href="#toc34" tabindex="0">ExcelのRTD関数 よくある質問（FAQ）</a><ol><li><a href="#toc35" tabindex="0">Q1. RTD関数は Microsoft 365 でなくても使えますか？</a></li><li><a href="#toc36" tabindex="0">Q2. RTDサーバーは自分で作れますか？</a></li><li><a href="#toc37" tabindex="0">Q3. RTD関数とPower Queryはどちらを使うべきですか？</a></li><li><a href="#toc38" tabindex="0">Q4. RTD関数で取得した値を別のセルで計算に使えますか？</a></li><li><a href="#toc39" tabindex="0">Q5. RTD関数の更新でCPU使用率が高くなりすぎます。どう抑えればよいですか？</a></li><li><a href="#toc40" tabindex="0">Q6. ExcelファイルにRTD関数を残したまま閉じても問題ないですか？</a></li></ol></li><li><a href="#toc41" tabindex="0">まとめ</a><ol><li><a href="#toc42" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのRTD関数とは？RTDサーバーとリアルタイムデータ取得の仕組み</span></h2>



<h3 class="wp-block-heading"><span id="toc2">読み方と語源</span></h3>



<p class="wp-block-paragraph">RTD関数は「アール ティー ディー かんすう」と読みます。RTDは <strong>RealTimeData（リアルタイムデータ）</strong> の略です。外部プログラムから継続的にデータを受け取り、Excelのセル上に最新値を表示するための関数です。</p>



<p class="wp-block-paragraph">通常の関数が「呼び出されたタイミングで一度だけ計算する」のに対し、RTD関数は <strong>サーバー側からのプッシュ通知</strong> を待ち受けます。データが更新されるたびにセルを自動再計算する点が最大の特徴です。</p>



<h3 class="wp-block-heading"><span id="toc3">RTDサーバーとは何か</span></h3>



<p class="wp-block-paragraph">RTDサーバーは、Microsoft の <strong>COM（Component Object Model）</strong> という仕組みで作られた外部プログラムです。<code>IRTDServer</code> というインターフェースを実装することで、Excelからの接続要求に応答できるようになります。</p>



<p class="wp-block-paragraph">ExcelはCOMを通じてサーバーに「このトピックのデータがほしい」と伝えます。サーバーは値が変わるたびにExcelに通知を返します。この双方向通信のおかげで、Excelは画面を再読み込みすることなく最新値を保持できます。</p>



<h3 class="wp-block-heading"><span id="toc4">どんな業務シーンで使うのか</span></h3>



<p class="wp-block-paragraph">RTD関数が特に活躍するのは、以下のような「秒〜分単位でデータが変わる業務」です。</p>



<ul class="wp-block-list"><li>株価・為替・指数・先物・暗号資産のリアルタイム取得</li><li>製造ラインの温度・圧力・回転数などのセンサー値モニタリング</li><li>物流倉庫のタグ読み取り数や処理レーンの稼働状況</li><li>コールセンターの着信待ち件数・応対中件数の表示</li><li>スポーツのライブスコアや競技進行状況のダッシュボード</li></ul>



<p class="wp-block-paragraph">要するに「外部の何かが動き続けていて、その状態を一覧で見たい」シーンに向いています。</p>



<h3 class="wp-block-heading"><span id="toc5">対応バージョンと前提条件</span></h3>



<p class="wp-block-paragraph">RTD関数は <strong>Excel 2002 以降</strong> で利用できますが、いくつかの前提条件があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>条件</th><th>内容</th></tr></thead><tbody><tr><td>OS</td><td>Windows 版 Excel のみ対応（Mac版は COM を持たないため非対応）</td></tr><tr><td>RTDサーバー</td><td>別途インストールまたは自作が必要</td></tr><tr><td>信頼設定</td><td>マクロセキュリティで COM サーバーの実行が許可されている必要あり</td></tr><tr><td>更新間隔</td><td>デフォルト2秒。<code>Application.RTD.ThrottleInterval</code> で変更可能</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">RTD関数だけを書いてもデータは取れません。<strong>「Excel + RTDサーバー」のセット</strong> で初めて機能する点を、最初に押さえておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc6">RTD関数の書式と引数の渡し方</span></h2>



<h3 class="wp-block-heading"><span id="toc7">基本構文</span></h3>



<p class="wp-block-paragraph">RTD関数の構文はとてもシンプルです。ただし、第3引数以降の「トピック」がやや独特です。</p>



<pre class="wp-block-code"><code>=RTD(ProgID, Server, Topic1, [Topic2], ...)</code></pre>



<h3 class="wp-block-heading"><span id="toc8">引数一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>内容</th></tr></thead><tbody><tr><td>ProgID</td><td>必須</td><td>RTDサーバーの <strong>ProgID</strong>（COMサーバーの識別子）を文字列で指定。例：<code>"MyCompany.StockRTD"</code></td></tr><tr><td>Server</td><td>必須</td><td>RTDサーバーが動作するコンピューター名。ローカルなら <code>""</code>（空文字）または省略可</td></tr><tr><td>Topic1</td><td>必須</td><td>取得するデータを特定する第1キー。証券コードや銘柄シンボルなど</td></tr><tr><td>Topic2〜</td><td>任意</td><td>取得するデータをさらに絞り込むための第2〜第28キー。「銘柄＋項目」のように複数キーで1データを特定する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc9">ProgID とは何か</span></h3>



<p class="wp-block-paragraph">ProgID（Programmatic Identifier）は、COMサーバーごとに割り振られた <strong>一意の識別文字列</strong> です。形式は <code>Vendor.Component</code> または <code>Vendor.Component.Version</code> が一般的です。</p>



<p class="wp-block-paragraph">ProgID は通常、サーバー提供元のマニュアルや、Windowsレジストリの <code>HKEY_CLASSES_ROOT</code> 配下で確認できます。証券会社のRTDサーバーであれば、セットアップガイドに必ず記載されています。</p>



<h3 class="wp-block-heading"><span id="toc10">トピックの設計思想</span></h3>



<p class="wp-block-paragraph">トピックは「サーバー側で公開されているデータを特定するためのキー」です。1つのトピックで足りないケースも多く、たとえば株価サーバーなら「証券コード」と「項目名」の2つで1つの値を特定します。</p>



<pre class="wp-block-code"><code>=RTD(&quot;MyCompany.StockRTD&quot;, , &quot;7203&quot;, &quot;price&quot;)    → トヨタの現在値
=RTD(&quot;MyCompany.StockRTD&quot;, , &quot;7203&quot;, &quot;volume&quot;)   → トヨタの出来高
=RTD(&quot;MyCompany.StockRTD&quot;, , &quot;7203&quot;, &quot;bid&quot;)      → トヨタの買気配</code></pre>



<p class="wp-block-paragraph">トピックの組み合わせは <strong>サーバー側の仕様で決まっています</strong>。必ずサーバー提供元のドキュメントを確認してください。</p>



<h3 class="wp-block-heading"><span id="toc11">引数を渡すときの注意</span></h3>



<p class="wp-block-paragraph">引数の文字列は <strong>二重引用符で囲む</strong> 必要があります。セル参照を使う場合は引用符は不要です。</p>



<pre class="wp-block-code"><code>=RTD(A1, &quot;&quot;, B1, C1)</code></pre>



<p class="wp-block-paragraph">セル参照にしておくと、参照先の値を変えるだけで取得対象を切り替えられます。保守性が大幅に上がるため、実務では推奨の書き方です。</p>



<h2 class="wp-block-heading"><span id="toc12">RTD関数の使い方①｜基本的なRTDサーバー接続例</span></h2>



<p class="wp-block-paragraph">ここからは、実際にどのような数式を書いてRTDサーバーに接続するかを具体例で見ていきます。</p>



<h3 class="wp-block-heading"><span id="toc13">例1：ローカルのRTDサーバーから1つの値を取得する</span></h3>



<p class="wp-block-paragraph">もっともシンプルなパターンです。ローカルPCでサーバーが稼働している場合、<code>Server</code> 引数は空にします。</p>



<pre class="wp-block-code"><code>=RTD(&quot;MyCompany.StockRTD&quot;, , &quot;7203&quot;, &quot;price&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>値</th><th>意味</th></tr></thead><tbody><tr><td>ProgID</td><td>&#8220;MyCompany.StockRTD&#8221;</td><td>サーバーの識別子</td></tr><tr><td>Server</td><td>（省略）</td><td>ローカル実行</td></tr><tr><td>Topic1</td><td>&#8220;7203&#8221;</td><td>証券コード</td></tr><tr><td>Topic2</td><td>&#8220;price&#8221;</td><td>取得項目（現在値）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">サーバーが稼働していれば、セルに現在値が表示されます。データ更新のたびに自動で書き換わります。</p>



<h3 class="wp-block-heading"><span id="toc14">例2：リモートサーバーからデータを取得する</span></h3>



<p class="wp-block-paragraph">社内のデータ配信サーバーから値を引きたい場合は、<code>Server</code> 引数にコンピューター名を入れます。</p>



<pre class="wp-block-code"><code>=RTD(&quot;MyCompany.StockRTD&quot;, &quot;DATA-SERVER01&quot;, &quot;USDJPY&quot;, &quot;ask&quot;)</code></pre>



<p class="wp-block-paragraph">ホスト名解決ができる前提で、<code>DATA-SERVER01</code> というマシンのRTDサーバーに接続します。社内ネットワークのDNS設定やDCOM設定が必要なケースが多いので、情報システム部門と連携して進めましょう。</p>



<h3 class="wp-block-heading"><span id="toc15">例3：セル参照で動的にデータを切り替える</span></h3>



<p class="wp-block-paragraph">実務では、銘柄や項目名を <strong>入力セル</strong> に持たせる構成が便利です。</p>



<pre class="wp-block-code"><code>=RTD($A$1, $A$2, B3, C3)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>入力例</th><th>意味</th></tr></thead><tbody><tr><td>A1</td><td>&#8220;MyCompany.StockRTD&#8221;</td><td>ProgID</td></tr><tr><td>A2</td><td>&#8220;&#8221;</td><td>サーバー（空＝ローカル）</td></tr><tr><td>B3</td><td>&#8220;7203&#8221;</td><td>証券コード</td></tr><tr><td>C3</td><td>&#8220;price&#8221;</td><td>項目名</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このパターンなら、B列とC列を増やすだけで「銘柄一覧×複数項目」のリアルタイム表が完成します。</p>



<h3 class="wp-block-heading"><span id="toc16">例4：複数項目を横並びで表示する</span></h3>



<p class="wp-block-paragraph">トピック2を「項目名」にして、列方向に複数項目を並べる構成もよく使われます。</p>



<pre class="wp-block-code"><code>A列: 銘柄コード
B列: =RTD(&quot;MyCompany.StockRTD&quot;, , $A2, &quot;price&quot;)
C列: =RTD(&quot;MyCompany.StockRTD&quot;, , $A2, &quot;volume&quot;)
D列: =RTD(&quot;MyCompany.StockRTD&quot;, , $A2, &quot;change&quot;)</code></pre>



<p class="wp-block-paragraph">下方向にコピーするだけで、銘柄ごとの価格・出来高・前日比が一覧化されます。Excelの条件付き書式と組み合わせれば、値動きの大きな銘柄をハイライトする簡易ボードも作れます。</p>



<h3 class="wp-block-heading"><span id="toc17">更新頻度の調整</span></h3>



<p class="wp-block-paragraph">RTDの更新間隔はデフォルトで <strong>2秒</strong> に設定されています。頻繁な更新は画面のチラつきやCPU負荷を招くため、用途に応じて間隔を変更しましょう。</p>



<pre class="wp-block-code"><code>Application.RTD.ThrottleInterval = 2000  ' 2秒（デフォルト）
Application.RTD.ThrottleInterval = 5000  ' 5秒に変更
Application.RTD.ThrottleInterval = 0     ' サーバーからの通知を即時反映</code></pre>



<p class="wp-block-paragraph">このコードはVBAのイミディエイトウィンドウや起動マクロから実行できます。<code>0</code> を指定するとサーバー通知が来るたびに即座に再計算されます。CPU負荷とのトレードオフを意識して値を決めてください。</p>



<h2 class="wp-block-heading"><span id="toc18">RTD関数の使い方②｜DDE関数との比較と移行</span></h2>



<p class="wp-block-paragraph">リアルタイムデータ取得には、RTD登場以前から <strong>DDE（Dynamic Data Exchange）</strong> という仕組みも使われていました。古い証券アプリやレガシー業務システムには、いまも DDE 連携が残っています。</p>



<h3 class="wp-block-heading"><span id="toc19">DDEとRTDの違い</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>DDE</th><th>RTD</th></tr></thead><tbody><tr><td>通信方式</td><td>プロセス間通信（旧式）</td><td>COM ベースのプッシュ通知</td></tr><tr><td>安定性</td><td>アプリ停止や再起動でリンク切れしやすい</td><td>リンク切れに強く、自動再接続が容易</td></tr><tr><td>通知タイミング</td><td>クライアントからのポーリング中心</td><td>サーバー側からのプッシュ</td></tr><tr><td>パフォーマンス</td><td>大量データに弱い</td><td>大量データの差分更新が得意</td></tr><tr><td>Excelからの記述</td><td>リンク貼り付け（`=サーバー</td><td>トピック!項目`）</td><td>RTD関数</td></tr><tr><td>Microsoftの位置付け</td><td>レガシー扱い・推奨されない</td><td>リアルタイム連携の標準</td></tr><tr><td>サポート状況</td><td>Excel 2016 以降は既定で無効</td><td>現行バージョンで標準サポート</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セキュリティ上の理由から、Excel 2016 以降は <strong>DDE が初期状態で無効化</strong> されています。DDE を有効にすると外部からの攻撃面が広がるため、MicrosoftはRTDへの移行を推奨しています。</p>



<h3 class="wp-block-heading"><span id="toc20">DDEからRTDへの移行イメージ</span></h3>



<p class="wp-block-paragraph">たとえば、古い DDE 形式のリンクが以下のように書かれていたとします。</p>



<pre class="wp-block-code"><code>=StockApp|Quote!7203</code></pre>



<p class="wp-block-paragraph">これと同等の情報をRTDで取得するなら、サーバー提供元が用意したRTDサーバーを介して次のような数式に置き換えます。</p>



<pre class="wp-block-code"><code>=RTD(&quot;StockApp.QuoteRTD&quot;, , &quot;7203&quot;, &quot;price&quot;)</code></pre>



<p class="wp-block-paragraph">DDE の <code>アプリ名|トピック!項目</code> 構造が、RTD の <code>ProgID + Topic1 + Topic2</code> に対応するイメージです。サーバー側のリプレースが必要なので個人で完結できる作業ではありません。ただし提供元がRTDサーバーを用意していれば、Excelファイル側の数式書き換えは比較的シンプルです。</p>



<h3 class="wp-block-heading"><span id="toc21">移行時のチェックリスト</span></h3>



<ul class="wp-block-list"><li>提供元が RTDサーバー版を提供しているか確認する</li><li>ProgID とトピック仕様のドキュメントを入手する</li><li>既存ファイルの DDE リンクを棚卸しする（<code>数式</code> → <code>名前の管理</code> などから検索）</li><li>試験用シートで小規模に RTD 化し、表示と更新を確認する</li><li>本番ファイルを段階的に置き換える</li></ul>



<p class="wp-block-paragraph">DDE のままでは将来のExcelアップデートで動かなくなるリスクがあります。レガシーリンクを抱えている現場は早めの移行計画を立てましょう。</p>



<h2 class="wp-block-heading"><span id="toc22">RTD関数の応用｜株価・為替・センサーデータのリアルタイム取得</span></h2>



<p class="wp-block-paragraph">ここでは、業界別の代表的な活用パターンを紹介します。RTDサーバーを「自分で書く」場合の参考にもなります。</p>



<h3 class="wp-block-heading"><span id="toc23">活用例1：株価・為替のダッシュボード</span></h3>



<p class="wp-block-paragraph">国内ネット証券のなかには、自社ツール経由でRTDサーバーを提供しているサービスがあります。FX業者の一部や、Bloomberg・LSEG（旧Refinitiv）などのプロ向け配信もRTDに対応しています。</p>



<p class="wp-block-paragraph">代表的なシート構成は以下のようなものです。</p>



<figure class="wp-block-table"><table><thead><tr><th>列</th><th>内容</th><th>数式例</th></tr></thead><tbody><tr><td>A</td><td>銘柄コード（7203, 6758 など）</td><td>手入力</td></tr><tr><td>B</td><td>現在値</td><td><code>=RTD(ProgID, , A2, "price")</code></td></tr><tr><td>C</td><td>前日比</td><td><code>=RTD(ProgID, , A2, "change")</code></td></tr><tr><td>D</td><td>出来高</td><td><code>=RTD(ProgID, , A2, "volume")</code></td></tr><tr><td>E</td><td>アラート</td><td><code>=IF(ABS(C2)>=100, "★急変", "")</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">条件付き書式で「前日比がプラスなら緑、マイナスなら赤」と色分けすれば、視覚的にもわかりやすい簡易トレードボードになります。</p>



<h3 class="wp-block-heading"><span id="toc24">活用例2：製造現場のセンサーモニタリング</span></h3>



<p class="wp-block-paragraph">PLC（プログラマブルロジックコントローラ）や SCADA は、OPCサーバー経由で値を公開していることが多く、OPC-RTDブリッジを介すことでExcelから直接読み取れます。</p>



<pre class="wp-block-code"><code>A2: 設備ID（&quot;LINE-01-MOTOR&quot;）
B2: =RTD(&quot;OpcRtd.Server&quot;, , A2, &quot;Temperature&quot;)
C2: =RTD(&quot;OpcRtd.Server&quot;, , A2, &quot;Pressure&quot;)
D2: =RTD(&quot;OpcRtd.Server&quot;, , A2, &quot;RPM&quot;)</code></pre>



<p class="wp-block-paragraph">温度や圧力が閾値を超えたら背景色を赤に変えるだけで、現場の朝礼で見せられるリアルタイム監視シートが完成します。</p>



<h3 class="wp-block-heading"><span id="toc25">活用例3：自作RTDサーバーとの連携</span></h3>



<p class="wp-block-paragraph">社内システムやIoTデバイスからのデータをExcelに流したい場合、RTDサーバーを自作する選択肢もあります。Microsoftの公式ドキュメントには <code>IRTDServer</code> インターフェースの実装サンプルが用意されています。C# / VB.NET / VBA など複数の言語で記述できます。</p>



<p class="wp-block-paragraph">自作RTDサーバーから値を受け取る側のExcel数式は、市販製品と同じ書式です。</p>



<pre class="wp-block-code"><code>=RTD(&quot;MyOrg.SensorRTD&quot;, , &quot;SENSOR-001&quot;, &quot;value&quot;)
=RTD(&quot;MyOrg.SensorRTD&quot;, , &quot;SENSOR-001&quot;, &quot;status&quot;)</code></pre>



<p class="wp-block-paragraph">サーバー側で1秒ごとに <code>UpdateNotify</code> を呼ぶ実装にしておけば、Excel側でほぼ遅延なく値が更新されます。</p>



<h3 class="wp-block-heading"><span id="toc26">活用例4：VBAと組み合わせたアラート発火</span></h3>



<p class="wp-block-paragraph">RTDで取得した値をトリガーに、VBAで通知やログ保存を自動化することもできます。値が閾値を超えたタイミングでOutlookメールを送る、別シートにタイムスタンプ付きで履歴を残すといった処理が定番です。</p>



<pre class="wp-block-code"><code>Private Sub Worksheet_Calculate()
    Dim rng As Range
    Set rng = Me.Range(&quot;B2&quot;)
    If rng.Value &gt; 100 Then
        Application.EnableEvents = False
        Me.Range(&quot;D2&quot;).Value = &quot;★閾値超過 &quot; &amp; Now
        Application.EnableEvents = True
    End If
End Sub</code></pre>



<p class="wp-block-paragraph"><code>Worksheet_Calculate</code> イベントは、RTDによる再計算でも発火します。<code>EnableEvents = False</code> で囲んでイベントの無限ループを防ぐ点だけ注意してください。VBAのイベント設計をしっかり押さえたい場合は、<a href="https://mashukabu.com/excel-vba-automation-guide/">ExcelVBAの自動化ガイド</a> もあわせて参照してください。</p>



<h2 class="wp-block-heading"><span id="toc27">RTD関数でよくあるエラーと対処法（N/A・接続失敗・更新されない）</span></h2>



<p class="wp-block-paragraph">RTD関数のトラブルは「サーバー側」「Excel設定」「数式」「ネットワーク」のどこかに原因があります。症状別に切り分けていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc28">#N/A エラー：サーバーに接続できない</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処</th></tr></thead><tbody><tr><td>RTDサーバーが起動していない</td><td>サーバープログラムを起動。サービス化されている場合は <code>services.msc</code> で稼働状況を確認</td></tr><tr><td>ProgID が間違っている</td><td>レジストリ <code>HKEY_CLASSES_ROOT</code> で正確な ProgID を確認。typo がないかチェック</td></tr><tr><td>COM コンポーネントが未登録</td><td><code>regsvr32</code> で DLL を再登録。インストーラ付属のセットアップを再実行</td></tr><tr><td>32bit / 64bit の不一致</td><td>Excelのビット数とサーバーのビット数を揃える（混在不可）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc29">#VALUE! エラー：トピックが解釈できない</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処</th></tr></thead><tbody><tr><td>トピック名が辞書にない</td><td>サーバーのドキュメントで正しい名称を確認</td></tr><tr><td>引数の数や型が仕様外</td><td>引数を文字列として渡す。空セルを <code>""</code> に置き換える</td></tr><tr><td>データ型の変換に失敗</td><td>サーバー側の戻り値型を確認。<code>VALUE</code> 関数で明示的に数値化</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc30">#REF! エラー：接続が途中で切れた</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処</th></tr></thead><tbody><tr><td>サーバー側のクラッシュ</td><td>プロセスを再起動。イベントログでエラー詳細を確認</td></tr><tr><td>ネットワーク切断</td><td>ping や <code>Test-NetConnection</code> で経路を確認</td></tr><tr><td>DCOM 権限不足</td><td><code>dcomcnfg</code> でアクセス権・起動権を確認・付与</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc31">データが更新されない</span></h3>



<p class="wp-block-paragraph">エラー値は出ていないのに値が動かない、というケースもよくあります。原因と対処は以下のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処</th></tr></thead><tbody><tr><td>計算モードが手動</td><td><code>数式</code> → <code>計算方法の設定</code> を「自動」に変更</td></tr><tr><td><code>ThrottleInterval</code> が長すぎ</td><td><code>Application.RTD.ThrottleInterval = 2000</code> で2秒に戻す</td></tr><tr><td>マクロセキュリティで COM がブロック</td><td><code>トラストセンター</code> → <code>マクロの設定</code> を確認</td></tr><tr><td>サーバーが Heartbeat を返していない</td><td>サーバー側ログで通知送信状況を確認</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc32">セキュリティ警告でブロックされる</span></h3>



<p class="wp-block-paragraph">「セキュリティに関する警告：COMサーバーをアクティブ化しようとしました」と表示される場合は、信頼できる発行元のサーバーであることを確認したうえで許可してください。出所不明なRTDサーバーは絶対に有効化しないことが鉄則です。</p>



<h3 class="wp-block-heading"><span id="toc33">トラブル切り分けの基本フロー</span></h3>



<ol class="wp-block-list"><li><strong>サーバー単体で動くか確認</strong>：付属のテストツールがあれば先にそちらで疎通を取る</li><li><strong>別の簡単なトピックで試す</strong>：複雑な数式の前に「サーバー側のサンプルトピック」で接続だけ確認</li><li><strong>同じPCでローカル接続を試す</strong>：リモート問題かExcel側問題かの切り分けに有効</li><li><strong>イベントログ・サーバーログを見る</strong>：Windowsの「アプリケーション」ログにエラーが出ていることが多い</li></ol>



<h2 class="wp-block-heading"><span id="toc34">ExcelのRTD関数 よくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc35">Q1. RTD関数は Microsoft 365 でなくても使えますか？</span></h3>



<p class="wp-block-paragraph">はい、使えます。RTD関数は <strong>Excel 2002 以降の全Windows版</strong> に標準搭載されています。Microsoft 365 サブスクリプションは必須ではありません。ただし <strong>Mac版Excelでは利用不可</strong> です。MacにはWindowsと同じCOM基盤が存在しないためです。Macで類似のことをしたい場合は、Power QueryでのAPI定期取得や、Office Scriptsでの代替を検討してください。</p>



<h3 class="wp-block-heading"><span id="toc36">Q2. RTDサーバーは自分で作れますか？</span></h3>



<p class="wp-block-paragraph">はい、作れます。Microsoftの公式ドキュメントに <code>IRTDServer</code> インターフェース仕様が公開されており、C# / VB.NET / Delphi などで実装できます。ただしCOM登録・DCOM設定・ビット数管理など、Excel関数を「書く」よりも前段で覚えることが多めです。自社でIoTデータをExcelに流したいといった要件であれば、社内の開発リソースと相談しながら段階的に進めるのが現実的です。</p>



<h3 class="wp-block-heading"><span id="toc37">Q3. RTD関数とPower Queryはどちらを使うべきですか？</span></h3>



<p class="wp-block-paragraph">更新の <strong>粒度</strong> で使い分けます。秒〜数秒単位で値が変わるデータ（株価・為替・センサー）はRTD関数が向きます。数分〜数時間に1回の更新で十分なデータ（Web上のCSV、社内DBのスナップショット）はPower Queryのほうが扱いやすく、可視化や変換の自由度も高くなります。ファイルを開いたときの自動更新でよければPower Query、開きっぱなしで流し見したいならRTD、と覚えておくと選びやすいです。</p>



<h3 class="wp-block-heading"><span id="toc38">Q4. RTD関数で取得した値を別のセルで計算に使えますか？</span></h3>



<p class="wp-block-paragraph">使えます。RTDが返す値は通常のセル値と同じように扱えます。四則演算・IF判定・条件付き書式・グラフのデータソースなど、Excelのあらゆる機能と組み合わせられます。値が更新されるたびに参照先の数式も再計算されるので、リアルタイム集計のダッシュボードが組みやすいのがRTDの強みです。</p>



<h3 class="wp-block-heading"><span id="toc39">Q5. RTD関数の更新でCPU使用率が高くなりすぎます。どう抑えればよいですか？</span></h3>



<p class="wp-block-paragraph">主に3つの方法で抑えられます。まず <code>Application.RTD.ThrottleInterval</code> を 2000〜5000 程度に引き上げ、更新間隔を広げます。次に、不要なトピックの購読を減らします。表示しなくなった列のRTD関数は削除するか、別シートに退避させてください。さらに、サーバー側にThrottling機能がある場合は、サーバー側で配信頻度を間引く設定を行うのも有効です。</p>



<h3 class="wp-block-heading"><span id="toc40">Q6. ExcelファイルにRTD関数を残したまま閉じても問題ないですか？</span></h3>



<p class="wp-block-paragraph">問題はありません。ただし次回ファイルを開いたときに、RTDサーバーが稼働しているマシンと再接続できる状態である必要があります。サーバーが停止している環境でファイルを開くと、セルに <code>#N/A</code> が並ぶことになります。配布用のファイルでRTD関数を含める場合は、サーバーがない閲覧者向けに <strong>値貼り付けのスナップショットシート</strong> を別途用意しておくと親切です。</p>



<h2 class="wp-block-heading"><span id="toc41">まとめ</span></h2>



<p class="wp-block-paragraph">RTD関数のポイントを整理します。</p>



<ul class="wp-block-list"><li>RTD関数は、外部の <strong>RTDサーバー</strong> と COM 通信し、リアルタイム値をExcelセルに表示する関数</li><li>構文は <code>=RTD(ProgID, Server, Topic1, [Topic2], ...)</code> のシンプル3要素＋追加トピック</li><li>ProgID とトピックの仕様は <strong>サーバー提供元のドキュメント</strong> が一次情報。まずはそこを読む</li><li>DDE は既定で無効化されており、MicrosoftはRTDへの移行を推奨している</li><li>株価・為替・センサー・物流・コールセンターなど、秒単位で変わるデータの表示に最適</li><li>エラーの切り分けは「サーバー → COM登録 → 数式 → ネットワーク → セキュリティ設定」の順</li><li>Macでは使えない。MacならPower QueryやOffice Scriptsでの代替を検討する</li></ul>



<p class="wp-block-paragraph">RTD関数はやや専門性が高いものの、対応するRTDサーバーさえあれば、Excelを <strong>リアルタイムダッシュボード</strong> として活用できる強力な機能です。最初の一歩は、自社で使っている業務システムやデータプロバイダーが「RTD対応」を謳っているかを確認することです。対応していれば、本記事の数式テンプレートをコピペするだけで、すぐに値が流れ込んでくるはずです。</p>



<h3 class="wp-block-heading"><span id="toc42">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-vba-automation-guide/">ExcelVBAの自動化ガイド</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-now/">ExcelのNOW関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-rtd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのSTOCKHISTORY関数の使い方｜株価の履歴データを自動取得する</title>
		<link>https://mashukabu.com/excel-function-howto-use-stockhistory/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-stockhistory/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 15 Jun 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[STOCKHISTORY]]></category>
		<category><![CDATA[株価]]></category>
		<category><![CDATA[金融データ]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2219</guid>

					<description><![CDATA[ExcelのSTOCKHISTORY関数で株価履歴データを自動取得する方法を解説。始値・終値・高値・安値・出来高の取得、期間指定、ポートフォリオ管理への活用、よくあるエラー対処まで完全網羅。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「Excelで株価の推移を毎回コピペするのが面倒」「ポートフォリオの月次データを自動更新したい」と感じていませんか。<code>STOCKHISTORY関数</code>なら、数式ひとつで株価履歴をExcelに展開できます。</p>



<p class="wp-block-paragraph">この記事では、Excelの<code>STOCKHISTORY関数</code>の使い方を解説します。書式・基本例・OHLCV取得・期間指定・チャート連携・エラー対処まで、コピペで動く数式つきで紹介します。Microsoft 365を使っていれば、今日から株価データの取得を自動化できます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">STOCKHISTORY関数とは？読み方と何ができるか</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">何ができるのか</a></li><li><a href="#toc4" tabindex="0">対応バージョンと制限事項</a></li></ol></li><li><a href="#toc5" tabindex="0">STOCKHISTORY関数の書式と引数</a><ol><li><a href="#toc6" tabindex="0">基本構文</a></li><li><a href="#toc7" tabindex="0">引数一覧</a></li><li><a href="#toc8" tabindex="0">第1引数 stock（銘柄指定）</a></li><li><a href="#toc9" tabindex="0">第2引数 start_date と第3引数 end_date</a></li><li><a href="#toc10" tabindex="0">第4引数 interval（取得間隔）</a></li><li><a href="#toc11" tabindex="0">第5引数 headers（ヘッダー表示）</a></li><li><a href="#toc12" tabindex="0">第6引数以降 property（取得するデータの種類と順序）</a></li></ol></li><li><a href="#toc13" tabindex="0">STOCKHISTORY関数の基本的な使い方（株価終値を取得する）</a><ol><li><a href="#toc14" tabindex="0">例1: 直近1ヶ月の終値を取得する</a></li><li><a href="#toc15" tabindex="0">例2: 期間を明示して取得する</a></li><li><a href="#toc16" tabindex="0">例3: 単一日の株価を取得する</a></li><li><a href="#toc17" tabindex="0">例4: 銘柄が認識されない場合は市場識別子を付ける</a></li></ol></li><li><a href="#toc18" tabindex="0">STOCKHISTORY関数の使い方｜OHLCV（始値・高値・安値・終値・出来高）を取得する</a><ol><li><a href="#toc19" tabindex="0">例5: OHLCV すべてを取得する</a></li><li><a href="#toc20" tabindex="0">例6: ローソク足チャートのための4本値を取得する</a></li><li><a href="#toc21" tabindex="0">例7: 終値と出来高だけ取得する（出来高分析用）</a></li><li><a href="#toc22" tabindex="0">propertyの並び順は自由に変えられる</a></li></ol></li><li><a href="#toc23" tabindex="0">STOCKHISTORY関数の使い方｜期間・頻度を指定してデータを取得する</a><ol><li><a href="#toc24" tabindex="0">例8: 月次データで長期トレンドを取得する</a></li><li><a href="#toc25" tabindex="0">例9: 週次データでスイングトレード分析</a></li><li><a href="#toc26" tabindex="0">例10: 動的な期間指定（年度・四半期）</a></li><li><a href="#toc27" tabindex="0">期間とinterval の組み合わせ早見表</a></li></ol></li><li><a href="#toc28" tabindex="0">STOCKHISTORY関数でETF・指数・為替レートを取得する</a><ol><li><a href="#toc29" tabindex="0">ETFを取得する（SPY・QQQ・VOOなど）</a></li><li><a href="#toc30" tabindex="0">指数を取得する（S&#038;P 500・ダウ・NASDAQ総合）</a></li><li><a href="#toc31" tabindex="0">為替レートを取得する（USD/JPY・EUR/USD）</a></li><li><a href="#toc32" tabindex="0">ETF・指数・為替の取得書式まとめ</a></li></ol></li><li><a href="#toc33" tabindex="0">STOCKHISTORY関数の活用例｜チャートや分析への応用</a><ol><li><a href="#toc34" tabindex="0">活用例1: 自動更新される株価チャート</a></li><li><a href="#toc35" tabindex="0">活用例2: 複数銘柄の比較表（ポートフォリオ管理）</a></li><li><a href="#toc36" tabindex="0">活用例3: パフォーマンスダッシュボード</a></li><li><a href="#toc37" tabindex="0">活用例4: 月次リターン推移表</a></li><li><a href="#toc38" tabindex="0">活用例5: 50日・200日移動平均線の自動計算</a></li></ol></li><li><a href="#toc39" tabindex="0">STOCKHISTORY関数でよくあるエラーと対処法（#N/A・#VALUE!・データが返らないなど）</a><ol><li><a href="#toc40" tabindex="0">#VALUE! エラー：銘柄が認識されない</a></li><li><a href="#toc41" tabindex="0">#NAME? エラー：非対応バージョン</a></li><li><a href="#toc42" tabindex="0">データが空欄になる日がある</a></li><li><a href="#toc43" tabindex="0">#BUSY! や データ取得中の表示</a></li><li><a href="#toc44" tabindex="0">結果が古い・更新されない</a></li><li><a href="#toc45" tabindex="0">データ取得の遅延</a></li></ol></li><li><a href="#toc46" tabindex="0">STOCKHISTORY関数で株式分割・配当の扱いに注意する</a><ol><li><a href="#toc47" tabindex="0">株式分割があった日付に断層が出る</a></li><li><a href="#toc48" tabindex="0">対処法1: ETF・指数で代用する</a></li><li><a href="#toc49" tabindex="0">対処法2: 別途調整係数を掛ける</a></li><li><a href="#toc50" tabindex="0">対処法3: 配当再投資込みのトータルリターンには別ツールを使う</a></li></ol></li><li><a href="#toc51" tabindex="0">STOCKHISTORY関数を含むファイルを共有するときの注意点</a><ol><li><a href="#toc52" tabindex="0">Microsoft 365を持っていない人が開くと#NAME?になる</a></li><li><a href="#toc53" tabindex="0">値貼り付けで配布するのが定番運用</a></li><li><a href="#toc54" tabindex="0">共有用と分析用でシートを分ける</a></li></ol></li><li><a href="#toc55" tabindex="0">STOCKHISTORY関数のよくある質問（FAQ）</a><ol><li><a href="#toc56" tabindex="0">Q1. 日本株（東証銘柄）の株価は取得できますか？</a></li><li><a href="#toc57" tabindex="0">Q2. リアルタイムの株価を取得できますか？</a></li><li><a href="#toc58" tabindex="0">Q3. 仮想通貨や為替レートも取得できますか？</a></li><li><a href="#toc59" tabindex="0">Q4. Excel 2021でSTOCKHISTORY関数を使うことはできますか？</a></li><li><a href="#toc60" tabindex="0">Q5. グラフを自動更新するにはどうすればいいですか？</a></li><li><a href="#toc61" tabindex="0">Q6. 結果が複数行・複数列にスピルしないのですが？</a></li><li><a href="#toc62" tabindex="0">Q7. 過去どこまでさかのぼってデータを取得できますか？</a></li><li><a href="#toc63" tabindex="0">Q8. 複数銘柄を1つの数式で取得できますか？</a></li></ol></li><li><a href="#toc64" tabindex="0">STOCKHISTORY関数で複数銘柄をまとめて取得する（REDUCE+LAMBDA+VSTACK）</a><ol><li><a href="#toc65" tabindex="0">複数銘柄を縦に積み上げる数式</a></li><li><a href="#toc66" tabindex="0">使うときの注意点</a></li></ol></li><li><a href="#toc67" tabindex="0">STOCKHISTORY・GOOGLEFINANCE・Power Query の使い分け</a><ol><li><a href="#toc68" tabindex="0">3つの手段を比較する</a></li><li><a href="#toc69" tabindex="0">結局どれを選べばいいのか</a></li></ol></li><li><a href="#toc70" tabindex="0">応用テクニック｜SEQUENCEで動的ヘッダーを自動生成する</a><ol><li><a href="#toc71" tabindex="0">12ヶ月分の月名ヘッダーを一発で作る</a></li></ol></li><li><a href="#toc72" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">STOCKHISTORY関数とは？読み方と何ができるか</span></h2>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>は、指定した金融商品の価格履歴データをExcelに取得する関数です。日付・始値・終値・高値・安値・出来高といったデータを、指定した期間でまとめて取り出せます。</p>



<h3 class="wp-block-heading"><span id="toc2">読み方と語源</span></h3>



<p class="wp-block-paragraph">読み方は「ストックヒストリー」です。<code>STOCK</code>（株式）と<code>HISTORY</code>（履歴）を組み合わせた名前で、「株式の履歴」を取得するための関数です。略称ではなく英単語をそのまま並べた素直な命名なので、覚えやすい関数のひとつです。</p>



<h3 class="wp-block-heading"><span id="toc3">何ができるのか</span></h3>



<p class="wp-block-paragraph">ひとことで言うと「外部の株価データベースに数式から問い合わせて、結果を表形式で返す関数」です。具体的には次のような操作を一発で実現できます。</p>



<ul class="wp-block-list"><li>米国株の終値を直近1ヶ月分、自動でスピル表示する</li><li>Apple・Microsoft・Amazonなど複数銘柄の月次データを比較する</li><li>始値・高値・安値・終値・出来高（OHLCV）を1つの数式で取得する</li><li>グラフと組み合わせて、自動更新される株価チャートを作る</li></ul>



<p class="wp-block-paragraph">毎回ヤフーファイナンスやSBI証券にアクセスして手でコピペする必要がなくなります。</p>



<h3 class="wp-block-heading"><span id="toc4">対応バージョンと制限事項</span></h3>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>を使うには、いくつかの前提条件があります。導入してから「動かない」とならないよう、事前に確認しておきましょう。</p>



<ul class="wp-block-list"><li><strong>Microsoft 365専用</strong>: Excel 2019・2021・2024（永続ライセンス版）では使えません</li><li><strong>インターネット接続が必須</strong>: データを外部から取りに行くため、オフラインでは動作しません</li><li><strong>日本株（東京証券取引所）は非対応</strong>: 対象は主に米国株や主要海外市場です</li><li><strong>遅延データ</strong>: リアルタイム価格ではなく、一定時間遅れたデータが返されます</li></ul>



<p class="wp-block-paragraph">日本株を取得したい方は、Googleスプレッドシートの<a href="https://mashukabu.com/spreadsheet-googlefinance-function/">GOOGLEFINANCE関数</a>を検討するのも一つの手です。日本株の終値や為替レートも取得できます。</p>



<p class="wp-block-paragraph">ほかの関数とあわせて学習したい場合は、<a href="https://mashukabu.com/excel-function-alphabetical-order/">Excel関数一覧（アルファベット順）</a>も参考にしてください。</p>



<h2 class="wp-block-heading"><span id="toc5">STOCKHISTORY関数の書式と引数</span></h2>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>は引数が多めに見えますが、必須なのは2つだけです。落ち着いて1つずつ整理していきましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">基本構文</span></h3>



<pre class="wp-block-code"><code>=STOCKHISTORY(stock, start_date, [end_date], [interval], [headers], [property1], [property2], ...)</code></pre>



<p class="wp-block-paragraph">角括弧<code>[]</code>で囲まれた引数は省略可能です。最小構成は<code>=STOCKHISTORY(銘柄, 開始日)</code>の2引数だけで動きます。</p>



<h3 class="wp-block-heading"><span id="toc7">引数一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>内容</th><th>既定値</th></tr></thead><tbody><tr><td>stock</td><td>必須</td><td>金融商品のティッカーシンボル（例: <code>"MSFT"</code>）または市場識別子付き（例: <code>"XNAS:MSFT"</code>）</td><td>—</td></tr><tr><td>start_date</td><td>必須</td><td>データ取得の開始日</td><td>—</td></tr><tr><td>end_date</td><td>省略可</td><td>データ取得の終了日</td><td>start_dateと同じ</td></tr><tr><td>interval</td><td>省略可</td><td>取得単位（0=日次 / 1=週次 / 2=月次）</td><td>0</td></tr><tr><td>headers</td><td>省略可</td><td>ヘッダー表示（0=なし / 1=あり / 2=銘柄識別子＋ヘッダー）</td><td>1</td></tr><tr><td>property1〜</td><td>省略可</td><td>取得するデータ列の種類と並び順</td><td>0,1（日付・終値）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc8">第1引数 stock（銘柄指定）</span></h3>



<p class="wp-block-paragraph">ティッカーシンボルをダブルクォートで囲んで指定します。Microsoftなら<code>"MSFT"</code>、Appleなら<code>"AAPL"</code>です。シンボルが認識されない場合は<code>"XNAS:MSFT"</code>のように市場識別子を付けて明示しましょう。<code>XNAS</code>はNASDAQ、<code>XNYS</code>はNYSEを意味します。</p>



<p class="wp-block-paragraph">セル参照も使えるので、ティッカーを別セルにまとめて管理し、銘柄を入れ替えるだけで集計表が切り替わるような作りも可能です。</p>



<h3 class="wp-block-heading"><span id="toc9">第2引数 start_date と第3引数 end_date</span></h3>



<p class="wp-block-paragraph">取得期間の開始日・終了日を指定します。日付の指定方法は3パターンあります。</p>



<ul class="wp-block-list"><li>直接入力: <code>"2025-01-01"</code> または <code>"2025/1/1"</code></li><li>セル参照: <code>A1</code>（A1セルに日付が入っている場合）</li><li>関数組み合わせ: <code>TODAY()-30</code>（今日から30日前）や<code>DATE(2025,1,1)</code>など</li></ul>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>と組み合わせると、ファイルを開くたびに最新データに自動更新される作りにできます。</p>



<h3 class="wp-block-heading"><span id="toc10">第4引数 interval（取得間隔）</span></h3>



<p class="wp-block-paragraph">データの間隔を数値で指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>意味</th><th>想定用途</th></tr></thead><tbody><tr><td>0</td><td>日次</td><td>短期トレード分析・週次レビュー</td></tr><tr><td>1</td><td>週次</td><td>中期チャート・週足分析</td></tr><tr><td>2</td><td>月次</td><td>長期トレンド・ポートフォリオ管理</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">省略時は<code>0</code>（日次）です。月次データなら数十年分でも数十行に収まるので、長期データを扱うときは積極的に<code>2</code>を使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">第5引数 headers（ヘッダー表示）</span></h3>



<p class="wp-block-paragraph">結果表にヘッダー行を入れるかどうかを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>結果</th></tr></thead><tbody><tr><td>0</td><td>ヘッダーなし。データのみ</td></tr><tr><td>1（既定値）</td><td>「日付」「終値」などのヘッダー付き</td></tr><tr><td>2</td><td>ヘッダーに加え、銘柄識別子も表示</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">複数銘柄を1シートに並べる場合は<code>2</code>を使うと、どの列がどの銘柄か視覚的にわかりやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc12">第6引数以降 property（取得するデータの種類と順序）</span></h3>



<p class="wp-block-paragraph">取得したい列を数値で指定します。複数指定可能で、指定した順番で列が並びます。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>取得データ</th></tr></thead><tbody><tr><td>0</td><td>日付</td></tr><tr><td>1</td><td>終値</td></tr><tr><td>2</td><td>始値</td></tr><tr><td>3</td><td>高値</td></tr><tr><td>4</td><td>安値</td></tr><tr><td>5</td><td>出来高</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">省略すると<code>0,1</code>（日付・終値）が返ります。例えば<code>0,2,3,4,1,5</code>と並べると「日付・始値・高値・安値・終値・出来高」のOHLCV順で出力されます。</p>



<h2 class="wp-block-heading"><span id="toc13">STOCKHISTORY関数の基本的な使い方（株価終値を取得する）</span></h2>



<p class="wp-block-paragraph">引数の解説だけでは動きがイメージしにくいので、ここからは具体例で見ていきましょう。まずは「終値だけ」を取得するシンプルなパターンです。</p>



<h3 class="wp-block-heading"><span id="toc14">例1: 直近1ヶ月の終値を取得する</span></h3>



<p class="wp-block-paragraph">Microsoft（MSFT）の直近30日間の終値を取得する数式です。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, TODAY()-30, TODAY())</code></pre>



<p class="wp-block-paragraph">セルに入力すると、結果が下方向にスピルして「日付」「終値」の2列が自動展開されます。<code>TODAY()</code>を使っているので、ファイルを開いた日を起点に「常に直近30日」のデータが表示されます。毎朝の株価チェックを定型化したい人にぴったりの書き方です。</p>



<h3 class="wp-block-heading"><span id="toc15">例2: 期間を明示して取得する</span></h3>



<p class="wp-block-paragraph">日付をハードコードする書き方も覚えておきましょう。決算期や特定イベント前後の動きを切り出すときに使います。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;AAPL&quot;, DATE(2025,1,1), DATE(2025,3,31), 0, 1)</code></pre>



<p class="wp-block-paragraph">Apple（AAPL）の2025年第1四半期（1〜3月）の日次データを取得します。<code>interval=0</code>（日次）、<code>headers=1</code>（ヘッダーあり）と明示しているため、出力結果が読みやすく整います。</p>



<h3 class="wp-block-heading"><span id="toc16">例3: 単一日の株価を取得する</span></h3>



<p class="wp-block-paragraph"><code>end_date</code>を省略すると、<code>start_date</code>と同じ日のデータが返ります。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, DATE(2025,3,3))</code></pre>



<p class="wp-block-paragraph">「特定日の終値だけ知りたい」という単発の用途で使います。月末日の株価をまとめて拾ってきて、月次レポートに貼り付ける用途にも向いています。</p>



<h3 class="wp-block-heading"><span id="toc17">例4: 銘柄が認識されない場合は市場識別子を付ける</span></h3>



<p class="wp-block-paragraph">ティッカーシンボルだけでは曖昧で認識されないケースがあります。そんなときは市場識別子を付けて指定し直しましょう。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;XNAS:MSFT&quot;, TODAY()-30, TODAY())</code></pre>



<p class="wp-block-paragraph"><code>XNAS</code>はNASDAQの市場識別子です。NYSE上場銘柄なら<code>XNYS:</code>、ロンドン証券取引所なら<code>XLON:</code>を付けます。同じシンボルが複数の取引所に存在する場合に有効です。</p>



<figure class="wp-block-table"><table><thead><tr><th>市場識別子</th><th>取引所</th></tr></thead><tbody><tr><td>XNAS</td><td>NASDAQ</td></tr><tr><td>XNYS</td><td>ニューヨーク証券取引所（NYSE）</td></tr><tr><td>XLON</td><td>ロンドン証券取引所</td></tr><tr><td>XHKG</td><td>香港証券取引所</td></tr><tr><td>XSWX</td><td>スイス証券取引所</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">市場識別子の完全な一覧はMicrosoft公式サポートページで確認できます。</p>



<h2 class="wp-block-heading"><span id="toc18">STOCKHISTORY関数の使い方｜OHLCV（始値・高値・安値・終値・出来高）を取得する</span></h2>



<p class="wp-block-paragraph">「終値だけじゃ物足りない、ローソク足を描くのに必要な情報がほしい」というニーズに応えるのが、第6引数以降の<code>property</code>指定です。</p>



<h3 class="wp-block-heading"><span id="toc19">例5: OHLCV すべてを取得する</span></h3>



<p class="wp-block-paragraph">Amazon（AMZN）の過去21日間のOHLCVをすべて取得する例です。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;XNAS:AMZN&quot;, TODAY()-21, TODAY(), 0, 2, 0, 2, 3, 4, 1, 5)</code></pre>



<p class="wp-block-paragraph">引数を分解すると次の意味になります。</p>



<ul class="wp-block-list"><li><code>"XNAS:AMZN"</code>: NASDAQ上場のAmazon</li><li><code>TODAY()-21, TODAY()</code>: 直近21日間</li><li><code>0</code>: 日次データ</li><li><code>2</code>: ヘッダーに銘柄識別子を追加表示</li><li><code>0, 2, 3, 4, 1, 5</code>: 日付・始値・高値・安値・終値・出来高の順</li></ul>



<p class="wp-block-paragraph">結果は6列のテーブルとしてスピル展開され、上端には「AMZN」と各列名が表示されます。</p>



<h3 class="wp-block-heading"><span id="toc20">例6: ローソク足チャートのための4本値を取得する</span></h3>



<p class="wp-block-paragraph">ローソク足チャートには「始値・高値・安値・終値」の4本値があれば足ります。出来高は省いて4列だけ取得しましょう。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, DATE(2025,1,1), DATE(2025,3,31), 0, 1, 0, 2, 3, 4, 1)</code></pre>



<p class="wp-block-paragraph">Microsoftの2025年Q1の日次4本値が取得できます。この結果範囲を選択して「挿入 → 株価チャート → 始値-高値-安値-終値」を選べば、すぐにローソク足が描画できます。</p>



<h3 class="wp-block-heading"><span id="toc21">例7: 終値と出来高だけ取得する（出来高分析用）</span></h3>



<p class="wp-block-paragraph">出来高を加味した分析をしたい場合は、終値と出来高の2列だけに絞るとシートがすっきりします。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, TODAY()-90, TODAY(), 0, 1, 0, 1, 5)</code></pre>



<p class="wp-block-paragraph">過去90日の「日付・終値・出来高」が3列で返ります。出来高急増日をフィルタやIF関数で抽出すれば、ニュース材料が出た日を割り出すきっかけになります。</p>



<h3 class="wp-block-heading"><span id="toc22">propertyの並び順は自由に変えられる</span></h3>



<p class="wp-block-paragraph"><code>property</code>引数は指定した順番がそのまま列の並び順になります。例えば「出来高を一番左に置いて目立たせたい」という場合は次のように書きます。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, TODAY()-30, TODAY(), 0, 1, 5, 0, 1)</code></pre>



<p class="wp-block-paragraph">「出来高・日付・終値」の順で出力されます。レポート用のフォーマットに合わせて、列の並びを柔軟にコントロールできます。</p>



<h2 class="wp-block-heading"><span id="toc23">STOCKHISTORY関数の使い方｜期間・頻度を指定してデータを取得する</span></h2>



<p class="wp-block-paragraph">期間と頻度の組み合わせを変えれば、用途に応じた粒度のデータを取り出せます。ここでは代表的な3パターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc24">例8: 月次データで長期トレンドを取得する</span></h3>



<p class="wp-block-paragraph">長期トレンドの観察には月次データが向いています。<code>interval=2</code>を指定しましょう。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, DATE(2015,1,1), DATE(2025,12,31), 2, 1, 0, 1)</code></pre>



<p class="wp-block-paragraph">Microsoftの過去11年分の月末終値が取得できます。日次で取ると2,500行ほどになりますが、月次なら130行程度に収まります。長期チャートを軽快に動かしたいときに有効です。</p>



<h3 class="wp-block-heading"><span id="toc25">例9: 週次データでスイングトレード分析</span></h3>



<p class="wp-block-paragraph">週単位の値動きを追いたいときは<code>interval=1</code>を指定します。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;AAPL&quot;, TODAY()-365, TODAY(), 1, 1, 0, 2, 3, 4, 1)</code></pre>



<p class="wp-block-paragraph">Appleの過去1年分の週次4本値が取得できます。週足ベースのテクニカル分析に活用できる粒度です。</p>



<h3 class="wp-block-heading"><span id="toc26">例10: 動的な期間指定（年度・四半期）</span></h3>



<p class="wp-block-paragraph">年度や四半期ごとの集計を自動化したい場合は、<code>DATE</code>関数と組み合わせて期間を計算式で組み立てましょう。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, DATE(YEAR(TODAY()),1,1), TODAY(), 0, 1)</code></pre>



<p class="wp-block-paragraph">「今年の年初から今日まで」の日次終値が、年が変わるたびに自動的に再計算されます。Year-To-Date（YTD）リターンの算出に便利な書き方です。</p>



<p class="wp-block-paragraph">四半期ごとに区切りたい場合は、開始月をMOD関数や条件分岐で組み立てます。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, DATE(YEAR(TODAY()), INT((MONTH(TODAY())-1)/3)*3+1, 1), TODAY(), 0, 1)</code></pre>



<p class="wp-block-paragraph">少し複雑ですが、現在の四半期の初日から今日までのデータが取れます。月初リセットの集計に組み込むと便利です。</p>



<h3 class="wp-block-heading"><span id="toc27">期間とinterval の組み合わせ早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>シーン</th><th>期間</th><th>interval</th></tr></thead><tbody><tr><td>直近の値動きチェック</td><td>7〜30日</td><td>0（日次）</td></tr><tr><td>四半期レビュー</td><td>90日</td><td>0（日次）</td></tr><tr><td>年次レポート</td><td>1年</td><td>1（週次）</td></tr><tr><td>長期トレンド分析</td><td>5〜10年</td><td>2（月次）</td></tr><tr><td>イベント前後の動き</td><td>該当日±数日</td><td>0（日次）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">データの粒度と期間を合わせると、シートが軽く保てます。</p>



<h2 class="wp-block-heading"><span id="toc28">STOCKHISTORY関数でETF・指数・為替レートを取得する</span></h2>



<p class="wp-block-paragraph">個別株だけでなく、ETF（上場投資信託）や指数、為替レートも<code>STOCKHISTORY関数</code>の取得対象です。書式は基本的に個別株と同じで、第1引数のティッカーや市場識別子を切り替えるだけで動きます。</p>



<h3 class="wp-block-heading"><span id="toc29">ETFを取得する（SPY・QQQ・VOOなど）</span></h3>



<p class="wp-block-paragraph">主要な米国ETFは個別株と同じくティッカーシンボルだけで取得できます。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;SPY&quot;, TODAY()-90, TODAY(), 0, 1, 0, 1)</code></pre>



<p class="wp-block-paragraph">S&#038;P 500連動の代表的ETFである<code>SPY</code>（SPDR S&#038;P 500 ETF）の過去90日分の終値が取れます。<code>QQQ</code>（インベスコQQQ）・<code>VOO</code>（バンガードS&#038;P 500 ETF）・<code>VTI</code>（バンガード・トータル・ストック・マーケットETF）も同じ書式で取得できます。</p>



<p class="wp-block-paragraph">うまく認識されない場合は、市場識別子<code>ARCX:</code>（NYSE Arca）を付けて指定し直しましょう。SPYやVOOなど主要な米国ETFはNYSE Arca上場です。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;ARCX:SPY&quot;, TODAY()-90, TODAY(), 0, 1, 0, 1)</code></pre>



<h3 class="wp-block-heading"><span id="toc30">指数を取得する（S&#038;P 500・ダウ・NASDAQ総合）</span></h3>



<p class="wp-block-paragraph">指数の取得はETFよりやや癖があります。個別株と同じように直接指数名を入れても認識されないことが多いので、市場識別子を付けるか、<code>^</code>プレフィックスを使った書き方を試します。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;^GSPC&quot;, TODAY()-180, TODAY(), 0, 1, 0, 1)</code></pre>



<p class="wp-block-paragraph"><code>^GSPC</code>はS&#038;P 500、<code>^DJI</code>はNYダウ、<code>^IXIC</code>はNASDAQ総合指数を表します。環境によっては<code>^</code>プレフィックスが認識されず<code>#VALUE!</code>になるケースがあるので、その場合はSPYなどETFで代用する方が安定します。指数連動ETFはほぼ完全に指数と同じ動きをするので、実務ではETFを使う方が確実です。</p>



<h3 class="wp-block-heading"><span id="toc31">為替レートを取得する（USD/JPY・EUR/USD）</span></h3>



<p class="wp-block-paragraph">為替レートは<code>"USD/JPY"</code>のようにスラッシュ区切りで指定します。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;USD/JPY&quot;, TODAY()-30, TODAY(), 0, 1, 0, 1)</code></pre>



<p class="wp-block-paragraph">ドル円の直近30日分のレートが取れます。<code>EUR/USD</code>・<code>GBP/JPY</code>・<code>AUD/JPY</code>なども同じ書式です。</p>



<p class="wp-block-paragraph">ただし為替レートは仕様変更や市場識別子の追加で取得できなくなることもあるため、レートのチェックを継続的に行うシートでは取得失敗を想定して<code>IFERROR</code>で囲んでおくと安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(STOCKHISTORY(&quot;USD/JPY&quot;, TODAY()-30, TODAY(), 0, 1, 0, 1), &quot;取得失敗&quot;)</code></pre>



<p class="wp-block-paragraph">為替レートをより安定的に取得したい場合は、Googleスプレッドシートの<a href="https://mashukabu.com/spreadsheet-googlefinance-function/">GOOGLEFINANCE関数</a>を併用するのも有効な選択肢です。</p>



<h3 class="wp-block-heading"><span id="toc32">ETF・指数・為替の取得書式まとめ</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>対象</th><th>書式例</th><th>補足</th></tr></thead><tbody><tr><td>米国ETF</td><td><code>"SPY"</code> / <code>"QQQ"</code> / <code>"VOO"</code></td><td>個別株と同じ</td></tr><tr><td>米国ETF（識別子付き）</td><td><code>"ARCX:SPY"</code></td><td>認識されない場合の保険</td></tr><tr><td>S&#038;P 500</td><td><code>"^GSPC"</code></td><td>環境依存・不安定なときはSPYで代用</td></tr><tr><td>NYダウ</td><td><code>"^DJI"</code></td><td>同上・DIAで代用可能</td></tr><tr><td>NASDAQ総合</td><td><code>"^IXIC"</code></td><td>同上・QQQで代用可能</td></tr><tr><td>ドル円</td><td><code>"USD/JPY"</code></td><td>スラッシュ区切り</td></tr><tr><td>ユーロドル</td><td><code>"EUR/USD"</code></td><td>同上</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったらまずはETFで取得し、必要に応じて指数や為替に切り替えるのが失敗しないルートです。</p>



<h2 class="wp-block-heading"><span id="toc33">STOCKHISTORY関数の活用例｜チャートや分析への応用</span></h2>



<p class="wp-block-paragraph">数式単体で使うだけでなく、グラフや他の関数と組み合わせることで真価を発揮します。実務でよく使う応用パターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc34">活用例1: 自動更新される株価チャート</span></h3>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>の出力範囲をそのままグラフ化すると、関数が更新されるたびにグラフも追従します。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, TODAY()-180, TODAY(), 0, 1, 0, 2, 3, 4, 1)</code></pre>



<p class="wp-block-paragraph">この結果範囲を選択し、「挿入 → 株価チャート → 始値-高値-安値-終値」を選びます。これで「直近半年のローソク足が常に最新」というダッシュボードの完成です。ファイルを開くたびに自動で更新されるので、定期レポート作成の手間がなくなります。</p>



<h3 class="wp-block-heading"><span id="toc35">活用例2: 複数銘柄の比較表（ポートフォリオ管理）</span></h3>



<p class="wp-block-paragraph">複数銘柄の終値を横並びに配置すれば、ポートフォリオ全体を一望できる表が作れます。</p>



<p class="wp-block-paragraph">A列を日付、B列以降を各銘柄の終値にする想定で考えます。まずA列に日付の枠を作っておき、各銘柄ごとに<code>STOCKHISTORY</code>を実行します。その結果を<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>で日付一致させる構成が王道です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(A2, STOCKHISTORY(&quot;MSFT&quot;, DATE(2025,1,1), TODAY(), 0, 0, 0, 1), STOCKHISTORY(&quot;MSFT&quot;, DATE(2025,1,1), TODAY(), 0, 0, 0, 1), &quot;&quot;, 0, 1)</code></pre>



<p class="wp-block-paragraph">少し冗長なので、別シートに<code>STOCKHISTORY</code>の結果を一度展開してから、本表側でXLOOKUPする2段構えにすると管理しやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc36">活用例3: パフォーマンスダッシュボード</span></h3>



<p class="wp-block-paragraph">買付日と買付価格を入力するだけで、現在の損益が自動計算されるパフォーマンス表を作れます。</p>



<figure class="wp-block-table"><table><thead><tr><th>銘柄</th><th>買付日</th><th>買付価格</th><th>現在値</th><th>損益率</th></tr></thead><tbody><tr><td>MSFT</td><td>2025/1/15</td><td>420.00</td><td>=数式</td><td>=数式</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「現在値」のセルには次のような数式を入れます。</p>



<pre class="wp-block-code"><code>=INDEX(STOCKHISTORY(A2, TODAY()-7, TODAY(), 0, 0, 1), COUNTA(STOCKHISTORY(A2, TODAY()-7, TODAY(), 0, 0, 1)))</code></pre>



<p class="wp-block-paragraph"><code>STOCKHISTORY</code>で直近1週間の終値を取得し、<code>INDEX</code>と<code>COUNTA</code>の組み合わせで最終行（=最新値）を抽出しています。直近7日にしているのは、休日のせいで「昨日」のデータがない場合のフェイルセーフです。</p>



<p class="wp-block-paragraph">損益率は素直に<code>(現在値 / 買付価格) - 1</code>で計算できます。書式で%表示にしておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc37">活用例4: 月次リターン推移表</span></h3>



<p class="wp-block-paragraph">月次のリターン（前月比）を求めて、シーズナリティ（月別の傾向）を観察したいケースです。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, DATE(2023,1,1), DATE(2025,12,31), 2, 1, 0, 1)</code></pre>



<p class="wp-block-paragraph">月次終値を取得した後、隣の列で「今月の終値 ÷ 前月の終値 &#8211; 1」を計算すれば、月次リターンの推移が見えます。条件付き書式のカラースケールをかけると、年単位のヒートマップが一瞬で完成します。</p>



<h3 class="wp-block-heading"><span id="toc38">活用例5: 50日・200日移動平均線の自動計算</span></h3>



<p class="wp-block-paragraph">テクニカル分析の定番、50日・200日移動平均線も<code>STOCKHISTORY</code>で土台データを揃えれば作れます。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, TODAY()-250, TODAY(), 0, 1, 0, 1)</code></pre>



<p class="wp-block-paragraph">過去250日（約1年）の終値を取得します。隣の列で<code>AVERAGE(B2:B51)</code>のように直近50日平均を計算すれば50日移動平均が求まります。<code>AVERAGE(B2:B201)</code>なら200日移動平均です。これをグラフに重ねれば、ゴールデンクロス・デッドクロスの判定が自動でできるようになります。</p>



<p class="wp-block-paragraph">日付関数を組み合わせた応用は<a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数一覧（機能別）</a>のカレンダー・日付カテゴリも参考になります。</p>



<h2 class="wp-block-heading"><span id="toc39">STOCKHISTORY関数でよくあるエラーと対処法（#N/A・#VALUE!・データが返らないなど）</span></h2>



<p class="wp-block-paragraph">便利な関数ですが、外部データに依存するぶん独特のエラーに遭遇しやすいのも事実です。代表的なつまずきと対処法をまとめます。</p>



<h3 class="wp-block-heading"><span id="toc40">#VALUE! エラー：銘柄が認識されない</span></h3>



<p class="wp-block-paragraph">最も多いのが<code>#VALUE!</code>エラーです。原因はだいたい次の3つに集約されます。</p>



<ol class="wp-block-list"><li><strong>ティッカーシンボルのスペルミス</strong>: <code>"MSFT"</code>を<code>"MSTF"</code>と書いてしまう典型例です</li><li><strong>対応していない市場の銘柄</strong>: 日本株（東証銘柄）を指定すると<code>#VALUE!</code>が返ります</li><li><strong>市場識別子の付け忘れ</strong>: 同名シンボルが複数市場に存在し、判別できないケース</li></ol>



<p class="wp-block-paragraph">まずはスペルを再確認し、それでも解決しなければ市場識別子を付けて指定し直しましょう。<code>"MSFT"</code>の代わりに<code>"XNAS:MSFT"</code>と書くと確実に認識されるケースが多いです。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;MSFT&quot;, TODAY()-30, TODAY())
=STOCKHISTORY(&quot;XNAS:MSFT&quot;, TODAY()-30, TODAY())</code></pre>



<p class="wp-block-paragraph">下の書き方の方が確実に認識されるケースが多いです。</p>



<h3 class="wp-block-heading"><span id="toc41">#NAME? エラー：非対応バージョン</span></h3>



<p class="wp-block-paragraph"><code>#NAME?</code>エラーが出る場合、お使いのExcelが<code>STOCKHISTORY関数</code>に対応していない可能性が高いです。確認ポイントは次の通りです。</p>



<ul class="wp-block-list"><li>Microsoft 365（サブスクリプション版）を使っているか</li><li>Excel 2019・2021・2024（永続ライセンス版）ではないか</li><li>Excelのバージョンが最新に更新されているか</li></ul>



<p class="wp-block-paragraph">「ファイル → アカウント → Excelのバージョン情報」から確認できます。永続ライセンス版を使っている場合、<code>STOCKHISTORY関数</code>は利用できないため、Microsoft 365への移行が必要です。</p>



<h3 class="wp-block-heading"><span id="toc42">データが空欄になる日がある</span></h3>



<p class="wp-block-paragraph">日次データを取得したのに、特定の日付が抜けていることがあります。これはエラーではなく仕様です。</p>



<ul class="wp-block-list"><li>取引所が休場の日（土日・祝日）はデータが存在しない</li><li>連続した日付に揃えたいなら、別途カレンダー表とXLOOKUPで突合する</li></ul>



<pre class="wp-block-code"><code>=IFERROR(XLOOKUP(A2, STOCKHISTORY(&quot;MSFT&quot;, DATE(2025,1,1), TODAY(), 0, 0, 0, 1), STOCKHISTORY(&quot;MSFT&quot;, DATE(2025,1,1), TODAY(), 0, 0, 0, 1)), &quot;休場&quot;)</code></pre>



<p class="wp-block-paragraph">休場日には「休場」と表示する書き方です。レポートで「日付の連続性」が必要な場合に役立ちます。</p>



<h3 class="wp-block-heading"><span id="toc43">#BUSY! や データ取得中の表示</span></h3>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>はオンラインでデータを取得するため、通信状況や混雑によって一時的に取得中の状態になることがあります。少し待っても結果が表示されない場合は、次の対処を試してみてください。</p>



<ol class="wp-block-list"><li>インターネット接続を確認する</li><li>F9キーを押して再計算する</li><li>Excelを再起動する</li><li>「データ → すべて更新」を実行する</li></ol>



<h3 class="wp-block-heading"><span id="toc44">結果が古い・更新されない</span></h3>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>の結果は自動再計算で更新されますが、ブックの設定によっては反映されないことがあります。</p>



<ul class="wp-block-list"><li>「数式 → 計算方法の設定 → 自動」になっているか確認</li><li>F9（再計算）またはCtrl+Alt+F9（強制再計算）を試す</li><li>データタブの「接続のプロパティ」で更新間隔を見直す</li></ul>



<p class="wp-block-paragraph">エラーの種類と対処法の総まとめは<a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧と対処法</a>も参考にしてください。</p>



<h3 class="wp-block-heading"><span id="toc45">データ取得の遅延</span></h3>



<p class="wp-block-paragraph">返ってくる株価はリアルタイムではなく、市場ごとに15〜20分程度の遅延があります。デイトレード判断には使わず、データ集計・分析・レポート作成用と割り切って使うのがコツです。</p>



<h2 class="wp-block-heading"><span id="toc46">STOCKHISTORY関数で株式分割・配当の扱いに注意する</span></h2>



<p class="wp-block-paragraph">長期データを取得するときに見落としやすいのが、<strong>株式分割と配当の調整</strong>です。<code>STOCKHISTORY関数</code>が返す価格は調整済みではないので、過去の特定イベントをまたぐと「いきなり株価が半分になっている日」が現れます。</p>



<h3 class="wp-block-heading"><span id="toc47">株式分割があった日付に断層が出る</span></h3>



<p class="wp-block-paragraph">たとえばApple（AAPL）は2020年8月に1株を4株に分割しました。<code>STOCKHISTORY</code>で2020年7月〜9月のデータを取得すると、分割前と分割後で株価が4分の1に飛びます。</p>



<pre class="wp-block-code"><code>=STOCKHISTORY(&quot;AAPL&quot;, DATE(2020,7,1), DATE(2020,9,30), 0, 1, 0, 1)</code></pre>



<p class="wp-block-paragraph">このまま長期チャートを描くと「8月31日に大暴落した銘柄」のように見えてしまいます。実際にはトータルリターンは滑らかに繋がっているので、分割を加味した調整値で扱う必要があります。</p>



<h3 class="wp-block-heading"><span id="toc48">対処法1: ETF・指数で代用する</span></h3>



<p class="wp-block-paragraph">個別株の長期分析が目的なら、その銘柄が属する業種ETFや指数で代用するのが手軽です。S&#038;P 500への組み入れ前後でなければ、<code>SPY</code>との連動性で大まかな傾向は掴めます。</p>



<h3 class="wp-block-heading"><span id="toc49">対処法2: 別途調整係数を掛ける</span></h3>



<p class="wp-block-paragraph">分割が起きた日を境に、分割比率の逆数を掛けて手動で調整値を計算します。AAPLの2020年8月の4分割なら、それ以前のデータをすべて4で割れば連続したデータになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>終値（実数）</th><th>分割係数</th><th>調整後終値</th></tr></thead><tbody><tr><td>2020/8/28</td><td>499.23</td><td>÷4</td><td>124.81</td></tr><tr><td>2020/8/31</td><td>129.04</td><td>×1</td><td>129.04</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ただし分割が複数回あった銘柄は計算が複雑になるので、長期チャート目的ならYahoo Financeなどの調整済みデータをCSVで取り込む方が現実的です。</p>



<h3 class="wp-block-heading"><span id="toc50">対処法3: 配当再投資込みのトータルリターンには別ツールを使う</span></h3>



<p class="wp-block-paragraph"><code>STOCKHISTORY</code>は配当再投資（Total Return）を加味した価格は返しません。配当込みのパフォーマンスを正確に評価したい場合は、Morningstarや証券会社の分析ツールに任せるのが無難です。<code>STOCKHISTORY</code>はあくまで「数式で取れる範囲の価格時系列」と割り切って使うと、データの解釈で迷いません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong><br>短期〜中期（1年未満）の値動きを追う用途では、株式分割を踏まないかぎり調整は不要です。長期（数年〜十数年）の比較分析を行うときだけ、調整値を意識すれば十分です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc51">STOCKHISTORY関数を含むファイルを共有するときの注意点</span></h2>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>は外部データに依存する関数なので、ファイルを他人と共有するときに思わぬトラブルが起きやすいです。配布前に押さえておきたいポイントを整理します。</p>



<h3 class="wp-block-heading"><span id="toc52">Microsoft 365を持っていない人が開くと#NAME?になる</span></h3>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>はMicrosoft 365専用です。永続ライセンス版（Excel 2019・2021・2024）や、無料のExcel Onlineの一部プラン、Googleスプレッドシートで開いた場合、関数が認識されず<code>#NAME?</code>エラーになります。</p>



<p class="wp-block-paragraph">社内の一部にしかMicrosoft 365が行き渡っていない環境では、共有ファイルが「特定の人だけ数値が見えない」状態になりがちです。</p>



<h3 class="wp-block-heading"><span id="toc53">値貼り付けで配布するのが定番運用</span></h3>



<p class="wp-block-paragraph">共有する相手の環境が分からないときや、データを固定して配布したいときは、<code>STOCKHISTORY</code>の出力範囲を選択して<strong>値貼り付け</strong>しましょう。</p>



<ol class="wp-block-list"><li><code>STOCKHISTORY</code>の出力範囲全体を選択</li><li>Ctrl+Cでコピー</li><li>同じ範囲を選択した状態で右クリック → 「値の貼り付け」</li><li>数式が消え、表示されていた数値だけが残る</li></ol>



<p class="wp-block-paragraph">この状態で保存すれば、Microsoft 365を持っていない人が開いても通常の数値表として閲覧できます。月次レポートや決算資料に組み込むときは、最終的に値貼り付けで仕上げるのが安全です。</p>



<h3 class="wp-block-heading"><span id="toc54">共有用と分析用でシートを分ける</span></h3>



<p class="wp-block-paragraph">毎月最新データを取得して使うシートと、配布用に値固定したシートは分けておくと運用が楽になります。</p>



<ul class="wp-block-list"><li><strong>データ取得シート</strong>: <code>STOCKHISTORY</code>が並び、ファイルを開くたびに最新化</li><li><strong>配布用シート</strong>: データ取得シートから値貼り付けしたスナップショット</li></ul>



<p class="wp-block-paragraph"><code>STOCKHISTORY</code>の再計算が遅いと感じるときも、この分け方が効きます。配布用シートには関数が残らないので、開いたときの待ち時間がなくなります。</p>



<p class="wp-block-paragraph">数式の保護や運用のコツは<a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧と対処法</a>もあわせて読むと、共有時のトラブルシュートが早くなります。</p>



<h2 class="wp-block-heading"><span id="toc55">STOCKHISTORY関数のよくある質問（FAQ）</span></h2>



<p class="wp-block-paragraph">実際に使い始めた人からよく聞かれる質問をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc56">Q1. 日本株（東証銘柄）の株価は取得できますか？</span></h3>



<p class="wp-block-paragraph">A. <strong>現時点では取得できません</strong>。<code>STOCKHISTORY関数</code>は東京証券取引所には対応していません。日本株の株価をスプレッドシートで管理したい場合は、Googleスプレッドシートの<a href="https://mashukabu.com/spreadsheet-googlefinance-function/">GOOGLEFINANCE関数</a>を検討してください。日本株のティッカー（例: <code>"TYO:7203"</code>でトヨタ自動車）にも対応しています。</p>



<h3 class="wp-block-heading"><span id="toc57">Q2. リアルタイムの株価を取得できますか？</span></h3>



<p class="wp-block-paragraph">A. <strong>リアルタイムではありません</strong>。市場ごとに15〜20分程度の遅延があります。データ集計や月次レポートには十分使えますが、デイトレードの判断材料には向きません。リアルタイム性が必要な場合は、証券会社のAPIなど別の手段を検討してください。</p>



<h3 class="wp-block-heading"><span id="toc58">Q3. 仮想通貨や為替レートも取得できますか？</span></h3>



<p class="wp-block-paragraph">A. <strong>一部は可能ですが安定しません</strong>。<code>STOCKHISTORY関数</code>は主に株式・ETF・インデックスを対象としています。為替レートや仮想通貨は対応状況が変動的で、取得できない通貨ペアもあります。為替レートを安定して取りたい場合も、GOOGLEFINANCE関数の方が選択肢が広い傾向です。</p>



<h3 class="wp-block-heading"><span id="toc59">Q4. Excel 2021でSTOCKHISTORY関数を使うことはできますか？</span></h3>



<p class="wp-block-paragraph">A. <strong>使えません</strong>。<code>STOCKHISTORY関数</code>はMicrosoft 365（サブスクリプション版）専用です。Excel 2019・2021・2024といった永続ライセンス版には搭載されていません。利用するにはMicrosoft 365への加入が必要です。</p>



<h3 class="wp-block-heading"><span id="toc60">Q5. グラフを自動更新するにはどうすればいいですか？</span></h3>



<p class="wp-block-paragraph">A. <code>STOCKHISTORY関数</code>の出力範囲をそのままグラフ化してください。<code>STOCKHISTORY</code>が再計算されると出力範囲も更新され、グラフも自動的に追従します。<code>TODAY()-30</code>のように動的な期間指定にしておけば、ファイルを開くたびに「常に直近30日」のチャートが見られる状態を作れます。</p>



<h3 class="wp-block-heading"><span id="toc61">Q6. 結果が複数行・複数列にスピルしないのですが？</span></h3>



<p class="wp-block-paragraph">A. <strong>古いExcelの動的配列非対応モードを使っている可能性があります</strong>。<code>STOCKHISTORY関数</code>は動的配列（スピル）機能を前提に設計されています。Microsoft 365なら標準で対応していますが、互換モードでブックを開いていると正しく展開されないことがあります。「ファイル → 名前を付けて保存」で<code>.xlsx</code>形式に変換してから再度試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc62">Q7. 過去どこまでさかのぼってデータを取得できますか？</span></h3>



<p class="wp-block-paragraph">A. <strong>銘柄や市場によって異なります</strong>。米国主要銘柄なら20〜30年前までさかのぼれるケースが多いですが、新規上場銘柄は上場日以降のデータしか存在しません。データが存在しない期間を指定した場合は、その範囲だけ空欄や省略となります。</p>



<h3 class="wp-block-heading"><span id="toc63">Q8. 複数銘柄を1つの数式で取得できますか？</span></h3>



<p class="wp-block-paragraph">A. <strong>できません</strong>。<code>STOCKHISTORY関数</code>は1つの数式で1銘柄しか扱えません。複数銘柄を比較したい場合は、銘柄ごとに別々のセルで<code>STOCKHISTORY</code>を実行し、<code>XLOOKUP</code>や<code>INDEX/MATCH</code>で日付突合する設計にしましょう。</p>



<h2 class="wp-block-heading"><span id="toc64">STOCKHISTORY関数で複数銘柄をまとめて取得する（REDUCE+LAMBDA+VSTACK）</span></h2>



<p class="wp-block-paragraph">FAQでは「<code>STOCKHISTORY関数</code>は1つの数式で1銘柄しか扱えない」と説明しました。これは基本的にはその通りなのですが、<code>STOCKHISTORY</code>単体での話です。Microsoft 365に搭載された<code>REDUCE</code>・<code>LAMBDA</code>・<code>VSTACK</code>を組み合わせると、複数銘柄のデータを1数式で縦結合できます。</p>



<h3 class="wp-block-heading"><span id="toc65">複数銘柄を縦に積み上げる数式</span></h3>



<p class="wp-block-paragraph">3銘柄（MSFT・AAPL・GOOGL）の直近30日分を、1つの数式で縦結合する例です。</p>



<pre class="wp-block-code"><code>=LET(
    tickers, {&quot;MSFT&quot;,&quot;AAPL&quot;,&quot;GOOGL&quot;},
    getData, LAMBDA(ticker, STOCKHISTORY(ticker, TODAY()-30, TODAY(), 0, 0, 1)),
    result, REDUCE(getData(INDEX(tickers,1)), OFFSET(tickers,0,1,1,COLUMNS(tickers)-1),
                   LAMBDA(acc, t, VSTACK(acc, getData(t)))),
    result
)</code></pre>



<p class="wp-block-paragraph">数式の流れを分解すると、次のようになっています。</p>



<ul class="wp-block-list"><li><code>tickers</code>: 取得したい銘柄を配列で定義する</li><li><code>getData</code>: 1銘柄分の<code>STOCKHISTORY</code>を返す関数を<code>LAMBDA</code>で定義する</li><li><code>REDUCE</code>: 1銘柄目を起点に、2銘柄目以降を順番に<code>VSTACK</code>で下方向に積み上げる</li><li><code>result</code>: 全銘柄分のデータが縦に連結された配列を返す</li></ul>



<p class="wp-block-paragraph"><code>STOCKHISTORY</code>の<code>headers</code>を<code>0</code>（ヘッダーなし）にしているのは、銘柄ごとにヘッダー行が混ざらないようにするためです。出力結果は「終値」が縦にずらりと並ぶので、別途<code>property</code>に<code>0,1</code>（日付・終値）を指定して日付列も添えておくと、どの行がいつのデータか追えます。</p>



<h3 class="wp-block-heading"><span id="toc66">使うときの注意点</span></h3>



<p class="wp-block-paragraph">便利な反面、数式が一気に複雑になるのが難点です。実務に組み込む際は次の点に気をつけてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong><br>複数の関数がネストするぶん、エラーが出たときの原因切り分けが難しくなります。<code>#VALUE!</code>が返っても、どの銘柄でつまずいたのか数式だけでは判別できません。</p></blockquote>



<p class="wp-block-paragraph">銘柄数が3〜4個程度なら1数式でも管理できますが、それ以上になる場合は無理に1数式にまとめないほうが安全です。各銘柄を別シートに分けて<code>STOCKHISTORY</code>を実行し、集計シートで<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>を使って突合する構成のほうが、後からのメンテナンスがずっと楽になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong><br>まずは2銘柄で動作を確認してから、銘柄数を増やしていくのがおすすめです。<code>LAMBDA</code>や<code>REDUCE</code>に不慣れな場合は、いきなり全銘柄を入れず、1ステップずつ動きを確かめながら組み立てましょう。</p></blockquote>



<p class="wp-block-paragraph">各関数の詳細は<a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数の使い方</a>・<a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数の使い方</a>・<a href="https://mashukabu.com/excel-function-howto-use-vstack/">VSTACK関数の使い方</a>を参照してください。</p>



<h2 class="wp-block-heading"><span id="toc67">STOCKHISTORY・GOOGLEFINANCE・Power Query の使い分け</span></h2>



<p class="wp-block-paragraph">株価データをスプレッドシートに取り込む手段は<code>STOCKHISTORY関数</code>だけではありません。Googleスプレッドシートの<code>GOOGLEFINANCE関数</code>や、Excelの<code>Power Query</code>もそれぞれ得意分野が異なります。自分の環境と目的に合った手段を選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc68">3つの手段を比較する</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>STOCKHISTORY</th><th>GOOGLEFINANCE</th><th>Power Query</th></tr></thead><tbody><tr><td>対応ツール</td><td>Excel（M365のみ）</td><td>Google スプレッドシートのみ</td><td>Excel・無料版も可</td></tr><tr><td>データ更新</td><td>ファイルを開く時・手動更新</td><td>自動（数分〜リアルタイム）</td><td>手動更新</td></tr><tr><td>日本株</td><td>非対応</td><td>非対応</td><td>Yahoo Finance等から取得可（サイト変更で壊れる可能性あり）</td></tr><tr><td>設定の手軽さ</td><td>関数1つで完結</td><td>関数1つで完結</td><td>設定が必要</td></tr><tr><td>為替・仮想通貨</td><td>一部対応（不安定）</td><td>為替対応</td><td>ソース次第</td></tr><tr><td>障害リスク</td><td>Microsoftサービス依存（2024年8月に約1週間の障害実績あり）</td><td>Googleサービス依存</td><td>Webサイト変更で壊れる</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc69">結局どれを選べばいいのか</span></h3>



<p class="wp-block-paragraph">それぞれに向いている場面があります。迷ったら次の基準で選んでください。</p>



<ul class="wp-block-list"><li><strong>Microsoft 365を使っていて米国株中心なら</strong>: 迷わず<code>STOCKHISTORY関数</code>です。関数1つで完結し、設定も不要なので一番手軽です。</li><li><strong>日本株や為替を扱いたいなら</strong>: Googleスプレッドシートの<a href="https://mashukabu.com/spreadsheet-googlefinance-function/">GOOGLEFINANCE関数</a>が有力です。自動更新される点も大きな魅力です。</li><li><strong>どうしてもExcelで日本株を扱いたい、または永続ライセンス版を使っているなら</strong>: <code>Power Query</code>でWebサイトからデータを取り込む方法があります。設定の手間はかかりますが、無料版Excelでも使えます。</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong><br><code>STOCKHISTORY関数</code>はMicrosoftのサービスに依存しているため、サービス側の障害があると一時的にデータが取得できなくなることがあります。実際に2024年8月には約1週間にわたる障害が発生しました。重要な業務で使う場合は、データを定期的に値貼り付けで保存しておくなど、サービス障害に備えたバックアップ運用も検討しておくと安心です。</p></blockquote>



<p class="wp-block-paragraph">このように、どの手段にも一長一短があります。常に最新の自動更新が必要なら<code>GOOGLEFINANCE</code>、Excelの分析機能と組み合わせたいなら<code>STOCKHISTORY</code>、というように目的から逆算して選ぶのが失敗しないコツです。</p>



<h2 class="wp-block-heading"><span id="toc70">応用テクニック｜SEQUENCEで動的ヘッダーを自動生成する</span></h2>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>で取得したデータを月次レポートにまとめるとき、ヘッダーの月名（Jan・Feb・…）を手入力していませんか。<code>SEQUENCE関数</code>と<code>TEXT関数</code>を組み合わせれば、月次ヘッダーを自動生成できます。年が変わっても作り直す必要がありません。</p>



<h3 class="wp-block-heading"><span id="toc71">12ヶ月分の月名ヘッダーを一発で作る</span></h3>



<p class="wp-block-paragraph">今年の1月から12月までの月名（英語3文字）を横一列に並べる数式です。</p>



<pre class="wp-block-code"><code>=TEXT(DATE(YEAR(TODAY()),SEQUENCE(1,12),1),&quot;mmm&quot;)</code></pre>



<p class="wp-block-paragraph">数式の中身を順番に見ていきましょう。</p>



<ul class="wp-block-list"><li><code>SEQUENCE(1,12)</code>: 1から12までの連番を横方向（1行12列）に生成する</li><li><code>DATE(YEAR(TODAY()), 連番, 1)</code>: 今年の各月1日の日付を12個作る</li><li><code>TEXT(..., "mmm")</code>: それぞれの日付を「Jan」「Feb」のような月名に変換する</li></ul>



<p class="wp-block-paragraph">結果は「Jan / Feb / Mar / … / Dec」が横一列にスピル展開されます。<code>YEAR(TODAY())</code>を使っているので、年が変わると自動的にその年のヘッダーに切り替わります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong><br>日本語の月名にしたい場合は、書式を<code>"m月"</code>に変えると「1月」「2月」…と表示されます。<code>=TEXT(DATE(YEAR(TODAY()),SEQUENCE(1,12),1),"m月")</code>のように書きましょう。</p></blockquote>



<p class="wp-block-paragraph"><code>STOCKHISTORY</code>で取得した月次データの上にこのヘッダーを配置すれば、毎年作り直し不要の月次比較表が完成します。<code>SEQUENCE関数</code>は連番生成の万能ツールなので、行番号の自動採番や日付の連続生成などにも応用が利きます。<a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数の使い方</a>やほかの動的配列関数とあわせて<a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数一覧（機能別）</a>もチェックしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc72">まとめ</span></h2>



<p class="wp-block-paragraph"><code>STOCKHISTORY関数</code>は、Excelで株価データの取得を自動化できる強力な関数です。最後にポイントを整理しておきます。</p>



<ul class="wp-block-list"><li><strong>書式</strong>: <code>=STOCKHISTORY(stock, start_date, [end_date], [interval], [headers], [property...])</code></li><li><strong>必須引数</strong>: 銘柄（stock）と開始日（start_date）の2つだけ</li><li><strong>intervalで頻度切替</strong>: 0=日次 / 1=週次 / 2=月次</li><li><strong>propertyで取得列を選択</strong>: 0=日付 / 1=終値 / 2=始値 / 3=高値 / 4=安値 / 5=出来高</li><li><strong>動的な期間指定</strong>: <code>TODAY()</code>や<code>DATE()</code>との組み合わせで自動更新化が可能</li><li><strong>OHLCV取得</strong>: <code>property</code>を順序指定でローソク足の元データも一発取得</li><li><strong>チャート連携</strong>: 出力範囲をグラフにすれば自動更新ダッシュボードが完成</li><li><strong>制限事項</strong>: Microsoft 365専用・日本株非対応・リアルタイムではない遅延データ</li></ul>



<p class="wp-block-paragraph">毎朝の株価チェックや月次レポート作成を「手作業のコピペ」から解放してくれる関数です。まずは<code>=STOCKHISTORY("MSFT", TODAY()-30, TODAY())</code>から試してみてください。慣れてきたら複数銘柄のポートフォリオ管理表へと育てていきましょう。</p>



<p class="wp-block-paragraph">日付系の関数や検索関数と組み合わせると、さらに表現の幅が広がります。<a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>もあわせてマスターして、自動化された株価管理シートを完成させてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-stockhistory/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
