<?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>Excel関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/category/excel/excel-function/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sun, 10 May 2026 13:09:50 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>Excel関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Excel】ISPMT関数の使い方｜元金均等返済の各期利息を一発で求める</title>
		<link>https://mashukabu.com/excel-function-howto-use-ispmt/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-ispmt/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 10 May 2026 00:30:05 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[ISPMT]]></category>
		<category><![CDATA[元金均等返済]]></category>
		<category><![CDATA[利息計算]]></category>
		<category><![CDATA[財務関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6756</guid>

					<description><![CDATA[ExcelのISPMT関数の使い方を解説。元金均等返済の各期利息を一発で計算できる関数で、IPMTとの違い・引数の注意点（期番号は0始まり）・返済スケジュール表の作り方まで実例つきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>銀行借入の返済スケジュールを自分で作ろうとして「各月の利息っていくら？」と困ったことはありませんか。<br>住宅ローンならIPMT関数で一発ですが、銀行の事業融資は元金均等返済が多く、IPMTでは値が合わないんですよね。</p>



<p>そんなときに活躍するのが、Excelの <strong>ISPMT関数</strong>（イズ・ペイメント）です。<br>ISPMT関数は <strong>元金均等返済</strong> の各期の利息を、たった1つの数式で求めてくれる便利な関数です。</p>



<p>この記事では、ISPMT関数の基本的な使い方から、元金均等返済スケジュール表の作り方まで解説します。<br>IPMT関数との違いや使い分けも整理しますので、「どっちを使えばいいの？」という疑問もスッキリしますよ。</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">ISPMT関数とは？元金均等返済の各期利息を求めるExcel関数</a></li><li><a href="#toc2" tabindex="0">ISPMT関数の構文と引数</a><ol><li><a href="#toc3" tabindex="0">戻り値の符号について</a></li></ol></li><li><a href="#toc4" tabindex="0">ISPMT関数の基本的な使い方</a></li><li><a href="#toc5" tabindex="0">ISPMT関数で元金均等返済スケジュール表を作る</a><ol><li><a href="#toc6" tabindex="0">スピル機能を使った1セル数式版</a></li></ol></li><li><a href="#toc7" tabindex="0">ISPMT関数とIPMT関数の違い</a><ol><li><a href="#toc8" tabindex="0">同じ条件で比較してみる</a></li></ol></li><li><a href="#toc9" tabindex="0">ISPMT関数のよくあるエラーと対処法</a><ol><li><a href="#toc10" tabindex="0">期番号がズレている例</a></li></ol></li><li><a href="#toc11" tabindex="0">ISPMT関数と似た財務関数の使い分け</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ISPMT関数とは？元金均等返済の各期利息を求めるExcel関数</span></h2>



<p>ISPMTとは <strong>Interest paid on Straight-line basis</strong>（元金均等返済の利息）の略です。<br>Excelに古くから搭載されている財務関数のひとつで、元金均等返済の指定した期の利息部分を計算できます。</p>



<p>Excel 2003以降のすべてのバージョンとMicrosoft 365で利用できます。<br>互換性関数ではなく、現役の標準関数です。</p>



<p>元金均等返済とは、毎期の <strong>元金返済額が一定</strong> の返済方式です。<br>毎期、元金が同じ額ずつ減っていくため、利息は徐々に減っていきます。<br>この「毎期減っていく利息」を一発で計算できるのがISPMT関数です。</p>



<p>銀行の事業融資・社債の利払い・割賦取引など、元金均等返済を採用するケースで重宝します。<br>住宅ローンのような元利均等返済には<a href="https://mashukabu.com/excel-function-howto-use-ipmt/">IPMT関数</a>を使うので、混同しないように注意が必要です。</p>



<h2 class="wp-block-heading"><span id="toc2">ISPMT関数の構文と引数</span></h2>



<p>ISPMT関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=ISPMT(利率, 期, 期間, 現在価値)</code></pre>



<p>引数は4つで、すべて必須です。<br><a href="https://mashukabu.com/excel-function-howto-use-ipmt/">IPMT関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-ppmt/">PPMT関数</a>にあった「将来価値」「支払期日」の引数はありません。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>内容</th></tr></thead><tbody><tr><td>利率（rate）</td><td>必須</td><td>1期あたりの利率。年利6%・月次返済なら 6%/12</td></tr><tr><td>期（per）</td><td>必須</td><td>利息を求めたい期。<strong>0から期間-1まで</strong> の整数</td></tr><tr><td>期間（nper）</td><td>必須</td><td>返済の総回数。月次返済で3年なら 36</td></tr><tr><td>現在価値（pv）</td><td>必須</td><td>借入額。借入の場合はプラスで指定</td></tr></tbody></table></figure>



<p>ここで一番の落とし穴が <strong>期（per）が0始まり</strong> という点です。<br>IPMT・PPMT関数は1始まりですが、ISPMT関数だけ0始まりなのでご注意ください。</p>



<p>たとえば36回返済の第1回目の利息を求めたいときは、<code>per=0</code> を指定します。<br>最終回は <code>per=35</code> です。<br>1始まりで指定すると結果が手計算と合わなくなります。</p>



<h3 class="wp-block-heading"><span id="toc3">戻り値の符号について</span></h3>



<p>借入額（pv）をプラスで指定すると、ISPMTの戻り値はマイナスになります。<br>これは「利息を支払う」というキャッシュアウトを表しているためです。</p>



<p>表示上プラスにしたい場合は、<code>=-ISPMT(...)</code> のようにマイナス記号を頭に付けてください。<br>返済スケジュール表ではプラス表示のほうが見やすいので、この書き方をよく使います。</p>



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



<p>実際にISPMT関数を使ってみましょう。<br>ここでは「借入100万円・年利6%・36回返済（月次）」のローンを例に、第1期と第10期の利息を計算します。</p>



<p>入力するセルは次のように設定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>内容</th><th>値</th></tr></thead><tbody><tr><td>B1</td><td>借入額</td><td>1,000,000</td></tr><tr><td>B2</td><td>年利</td><td>6%</td></tr><tr><td>B3</td><td>返済回数</td><td>36</td></tr></tbody></table></figure>



<p>第1期（per=0）の利息を求める数式は次のとおりです。</p>



<pre class="wp-block-code"><code>=-ISPMT(B2/12, 0, B3, B1)</code></pre>



<p>この数式の結果は <strong>5,000円</strong> になります。<br>月利は0.5%（年利6%÷12）で、初月の借入残高は100万円のままです。<br>利息は 1,000,000 × 0.5% = 5,000 という計算ですね。</p>



<p>第10期（per=9）の利息も同じように計算できます。</p>



<pre class="wp-block-code"><code>=-ISPMT(B2/12, 9, B3, B1)</code></pre>



<p>結果は <strong>3,750円</strong> になります。<br>9期分の元金返済（27,778円 × 9 = 250,000円）が進んだ後の残高は75万円なので、利息は 750,000 × 0.5% = 3,750 という計算です。</p>



<p>利息が毎期減っていくのが、元金均等返済の特徴ですね。</p>



<h2 class="wp-block-heading"><span id="toc5">ISPMT関数で元金均等返済スケジュール表を作る</span></h2>



<p>実務で一番使うのが、返済スケジュール表の作成です。<br>借入額・利率・返済回数を入力するだけで、各期の利息・元金・残高が自動計算される表を作りましょう。</p>



<p>入力セルは先ほどと同じです。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>内容</th><th>値</th></tr></thead><tbody><tr><td>B1</td><td>借入額</td><td>1,000,000</td></tr><tr><td>B2</td><td>年利</td><td>6%</td></tr><tr><td>B3</td><td>返済回数</td><td>36</td></tr></tbody></table></figure>



<p>スケジュール表のレイアウトは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>列</th><th>内容</th></tr></thead><tbody><tr><td>A</td><td>期（1〜36）</td></tr><tr><td>B</td><td>期番号（per、0〜35）</td></tr><tr><td>C</td><td>元金返済</td></tr><tr><td>D</td><td>利息</td></tr><tr><td>E</td><td>返済額合計</td></tr><tr><td>F</td><td>残高</td></tr></tbody></table></figure>



<p>A6セルから36行分を作るとして、各列の数式は次のようになります。</p>



<pre class="wp-block-code"><code>A6: =ROW()-5             (1, 2, 3, ... と連番)
B6: =A6-1                (期番号は0始まりに変換)
C6: =$B$1/$B$3           (元金返済額は一定)
D6: =-ISPMT($B$2/12, B6, $B$3, $B$1)
E6: =C6+D6               (合計)
F6: =$B$1-C6*A6          (残高)</code></pre>



<p>A6からF6までを入力したら、A41までドラッグしてオートフィルすれば36期分が完成します。<br>利息（D列）が毎期減り、返済額合計（E列）も少しずつ減っていく様子が確認できますよ。</p>



<h3 class="wp-block-heading"><span id="toc6">スピル機能を使った1セル数式版</span></h3>



<p>Microsoft 365やExcel 2021ならスピル機能が使えるので、より簡潔に書けます。<br>A6セルに次の数式を入れるだけで、36行分が一気に展開されます。</p>



<pre class="wp-block-code"><code>=LET(
  期, SEQUENCE(B3),
  per, 期-1,
  元金, B1/B3,
  利息, -ISPMT(B2/12, per, B3, B1),
  HSTACK(期, per, 元金, 利息, 元金+利息, B1-元金*期)
)</code></pre>



<p>LET関数とSEQUENCE関数を組み合わせることで、表全体を1つの数式で生成できます。<br>返済回数（B3）を変えると表の長さも自動で変わるのが便利です。</p>



<h2 class="wp-block-heading"><span id="toc7">ISPMT関数とIPMT関数の違い</span></h2>



<p>ISPMT関数とIPMT関数は名前も用途も似ていますが、計算する対象がまったく違います。<br>混同しやすいので、ここでしっかり整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>ISPMT関数</th><th>IPMT関数</th></tr></thead><tbody><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>返済額合計</td><td>毎期減っていく</td><td><strong>毎期一定</strong></td></tr><tr><td>期番号の数え方</td><td>0〜nper-1</td><td>1〜nper</td></tr><tr><td>引数の数</td><td>4つ</td><td>6つ（fv、typeあり）</td></tr></tbody></table></figure>



<p>元金均等返済（ISPMT）と元利均等返済（IPMT）の最大の違いは、毎期の返済額が変動するかどうかです。</p>



<p>元金均等は毎期の元金返済が一定なので、初期は返済額が大きく後期は小さくなります。<br>元利均等は返済額そのものが一定なので、家計の管理がしやすいのが特徴です。</p>



<p>実務では、銀行の事業融資は元金均等が多く、住宅ローンは元利均等が一般的です。<br>契約書を確認して、どちらの方式かを把握してから関数を選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc8">同じ条件で比較してみる</span></h3>



<p>借入100万円・年利6%・36回返済の条件で、第1期の利息を比較すると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>ISPMT（元金均等）</td><td><code>=-ISPMT(6%/12, 0, 36, 1000000)</code></td><td>5,000円</td></tr><tr><td>IPMT（元利均等）</td><td><code>=-IPMT(6%/12, 1, 36, 1000000)</code></td><td>5,000円</td></tr></tbody></table></figure>



<p>第1期はどちらも同じ5,000円です。<br>しかし第10期では値が異なってきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>第10期の利息</th></tr></thead><tbody><tr><td>ISPMT（per=9）</td><td>3,750円</td></tr><tr><td>IPMT（per=10）</td><td>3,914円</td></tr></tbody></table></figure>



<p>元金均等のほうが利息の減り方が早いため、後半に行くほど両者の差が大きくなります。<br>総支払利息を比較すると、元金均等返済のほうが少なく済むケースが多いです。</p>



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



<p>ISPMT関数を使っていて出やすいエラーと、その原因・対処法をまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー / 症状</th><th>原因</th><th>対処</th></tr></thead><tbody><tr><td><code>#NUM!</code></td><td>期（per）が0未満または期間以上</td><td>perを 0〜nper-1 の範囲に収める</td></tr><tr><td><code>#VALUE!</code></td><td>引数に文字列が入っている</td><td>全引数を数値で指定する</td></tr><tr><td>結果が手計算と合わない</td><td>期番号を1から数えている</td><td>perを0始まりにして再計算する</td></tr><tr><td>結果が想定よりはるかに大きい</td><td>利率の単位が期間と合っていない</td><td>月次返済なら利率は年利÷12</td></tr><tr><td>結果がプラスで違和感</td><td>pvをマイナスで指定している</td><td>借入はpvをプラス、戻り値は <code>-ISPMT(...)</code></td></tr></tbody></table></figure>



<p>ISPMT関数の最頻出エラーは「期番号の0始まり」を見落とすことです。<br>IPMT関数のクセで <code>per=1</code> を指定すると、第2期の値が返ってきてしまいます。</p>



<p>数式を入力する前に「ISPMTは0から数える」と意識するだけで、ほとんどのトラブルは防げます。</p>



<h3 class="wp-block-heading"><span id="toc10">期番号がズレている例</span></h3>



<p>たとえば、借入100万円・年利6%・36回返済で第1期の利息を求めたいケースを考えます。</p>



<pre class="wp-block-code"><code>誤: =-ISPMT(6%/12, 1, 36, 1000000)  → 結果: 4,861円（実は第2期の値）
正: =-ISPMT(6%/12, 0, 36, 1000000)  → 結果: 5,000円（正しく第1期の値）</code></pre>



<p>最初の1回目だけでも手計算と照合する習慣をつけると、ズレに気づきやすいですよ。</p>



<h2 class="wp-block-heading"><span id="toc11">ISPMT関数と似た財務関数の使い分け</span></h2>



<p>財務関数には返済シミュレーション系の関数が複数あります。<br>場面に応じてどれを使えばよいか、5関数の早見表を作りました。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>計算対象</th><th>返済方式</th><th>期の数え方</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-pmt/">PMT</a></td><td>毎期の返済額（一定）</td><td>元利均等</td><td>—</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-ipmt/">IPMT</a></td><td>各期の利息</td><td>元利均等</td><td>1〜nper</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-ppmt/">PPMT</a></td><td>各期の元金</td><td>元利均等</td><td>1〜nper</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-cumipmt/">CUMIPMT</a></td><td>開始期〜終了期の累計利息</td><td>元利均等</td><td>1〜nper</td></tr><tr><td><strong>ISPMT</strong></td><td><strong>各期の利息</strong></td><td><strong>元金均等</strong></td><td><strong>0〜nper-1</strong></td></tr></tbody></table></figure>



<p><strong>選び方のポイント</strong></p>



<ul class="wp-block-list"><li>契約が <strong>元利均等返済</strong>（住宅ローン等）→ PMT/IPMT/PPMT/CUMIPMTの組み合わせ</li><li>契約が <strong>元金均等返済</strong>（銀行融資・社債等）→ ISPMT + 元金返済額（pv/nper）</li></ul>



<p>元金均等返済では「元金部分」の関数は不要です。<br>元金返済額が pv ÷ nper で常に一定なので、わざわざ関数を使う必要がないからですね。</p>



<p><a href="https://mashukabu.com/spreadsheet-ispmt-function/">Googleスプレッドシート版のISPMT関数</a>も同じ仕様で動きます。<br>スプレッドシートで作業している方はそちらの記事も参考にしてください。</p>



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



<p>ExcelのISPMT関数について、基本的な使い方から実務での応用まで解説しました。</p>



<p>ポイントを振り返ります。</p>



<ul class="wp-block-list"><li>ISPMT関数は <strong>元金均等返済</strong> の各期の利息を求める財務関数</li><li>構文は <code>=ISPMT(利率, 期, 期間, 現在価値)</code> の4引数</li><li>期（per）は <strong>0〜nper-1</strong> の0始まり（IPMTと違うので注意）</li><li>借入額をプラスで指定すると戻り値はマイナスになるため、<code>-ISPMT(...)</code> で受けるのが定番</li><li>IPMTは元利均等返済、ISPMTは元金均等返済と覚えれば混同しない</li><li>銀行融資や社債のスケジュール表に向いている</li></ul>



<p>元金均等返済の利息計算は、慣れてしまえばISPMT関数1つで完結します。<br>返済スケジュール表のテンプレートを作っておけば、どんな条件のローンでも数値を差し替えるだけで使い回せますよ。</p>



<p>関連する財務関数もあわせてチェックして、Excelでの返済シミュレーションを自由に組めるようにしていきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-ispmt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】CUBEKPIMEMBER関数の使い方｜KPI名・KPIプロパティを取得する</title>
		<link>https://mashukabu.com/excel-function-howto-use-cubekpimember/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-cubekpimember/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 10 May 2026 00:29:58 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CUBEKPIMEMBER]]></category>
		<category><![CDATA[CUBE関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[KPI]]></category>
		<category><![CDATA[OLAP]]></category>
		<category><![CDATA[Power Pivot]]></category>
		<category><![CDATA[ダッシュボード]]></category>
		<category><![CDATA[データモデル]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6754</guid>

					<description><![CDATA[ExcelのCUBEKPIMEMBER関数の使い方を、構文・KPIプロパティ（値・目標・状態・傾向）の取り出し方からCUBEVALUE・CUBEMEMBERとの組み合わせ、エラー対処法まで実務目線で解説します。]]></description>
										<content:encoded><![CDATA[
<p>Power Pivotで作ったKPIをExcelに表示したいけれど、ピボットテーブルではレイアウトが固定されて困っていませんか？</p>



<p>実はCUBEKPIMEMBER関数を使えば、KPI名・実績値・目標値・状態・傾向を関数だけで取り出せます。<br>CUBEVALUE関数と組み合わせれば、自分好みのレイアウトでKPIダッシュボードを組むことも可能です。</p>



<p>この記事ではCUBEKPIMEMBER関数の構文と4種類のKPIプロパティを解説します。<br>CUBEVALUEとの組み合わせ方や実務で使えるダッシュボード設計まで丁寧に紹介します。</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">CUBEKPIMEMBER関数とは？</a></li><li><a href="#toc2" tabindex="0">CUBEKPIMEMBER関数の構文と引数</a><ol><li><a href="#toc3" tabindex="0">kpi_propertyの値と意味</a></li></ol></li><li><a href="#toc4" tabindex="0">CUBEKPIMEMBER関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">基本例: KPIの名前を取得する</a></li><li><a href="#toc6" tabindex="0">引数 kpi_property を変えて4つのプロパティを取り出す</a></li></ol></li><li><a href="#toc7" tabindex="0">CUBEKPIMEMBERとCUBEVALUEを組み合わせてKPIを表示する</a><ol><li><a href="#toc8" tabindex="0">値（実績）をCUBEVALUEで取得する</a></li><li><a href="#toc9" tabindex="0">目標値をCUBEVALUEで取得する</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">CUBEKPIMEMBERでKPIダッシュボードを作る</a><ol><li><a href="#toc13" tabindex="0">KPI名・実績・目標・達成率・状態・傾向の6列レイアウト</a></li><li><a href="#toc14" tabindex="0">条件付き書式と組み合わせる</a></li><li><a href="#toc15" tabindex="0">複数KPIを縦に並べる</a></li></ol></li><li><a href="#toc16" tabindex="0">CUBEKPIMEMBER関数でよくあるエラーと対処法</a></li><li><a href="#toc17" tabindex="0">似たCUBE関数との使い分け</a><ol><li><a href="#toc18" tabindex="0">CUBEMEMBERとの違い</a></li><li><a href="#toc19" tabindex="0">CUBEVALUEとの違い</a></li><li><a href="#toc20" tabindex="0">CUBEMEMBERPROPERTYとの違い</a></li><li><a href="#toc21" tabindex="0">CUBE関数シリーズの全体マップ</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>CUBEKPIMEMBER関数は、KPI（重要業績指標）の名前やプロパティをセルに取り出す関数です。<br>OLAPキューブまたはExcelデータモデルに定義されたKPIを参照します。</p>



<p>KPIとは「目標に対してどれくらい達成しているか」を測るための指標です。<br>Power PivotやSQL Server Analysis Services（SSAS）で、あらかじめ定義しておきます。</p>



<p>CUBEKPIMEMBER関数を使うと、その定義済みKPIから次のような情報をセルに取り出せます。</p>



<ul class="wp-block-list"><li>KPIの名前（タイトル）</li><li>KPIの実績値</li><li>KPIの目標値</li><li>KPIの達成状態（良好・中立・悪化）</li><li>KPIの傾向（改善・横ばい・悪化）</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CUBEKPIMEMBER関数を使うには、ブックに「ExcelデータモデルでKPIが定義されている」または「OLAPキューブへの外部接続がある」のいずれかが必要です。何も接続していないブックでは使えません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">CUBEKPIMEMBER関数の構文と引数</span></h2>



<p>CUBEKPIMEMBER関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=CUBEKPIMEMBER(connection, kpi_name, kpi_property, )</code></pre>



<p>各引数の意味は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>内容</th></tr></thead><tbody><tr><td>connection</td><td>必須</td><td>キューブまたはデータモデルへの接続名（文字列）。Excelデータモデルなら <code>"ThisWorkbookDataModel"</code></td></tr><tr><td>kpi_name</td><td>必須</td><td>KPIの名前（文字列）。例: <code>"[Sales].[KPI 1]"</code></td></tr><tr><td>kpi_property</td><td>必須</td><td>取り出すプロパティを表す1〜4の整数</td></tr><tr><td>caption</td><td>省略可</td><td>セルに表示する別名。省略するとKPI名+プロパティ名が表示される</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">kpi_propertyの値と意味</span></h3>



<p>第3引数の <code>kpi_property</code> は1〜4の整数で、何を取り出すかを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>プロパティ名</th><th>取り出す内容</th></tr></thead><tbody><tr><td>1</td><td>KPIValue</td><td>KPIの実績値</td></tr><tr><td>2</td><td>KPIGoal</td><td>KPIの目標値</td></tr><tr><td>3</td><td>KPIStatus</td><td>KPIの状態（達成度）</td></tr><tr><td>4</td><td>KPITrend</td><td>KPIの傾向（前期比など）</td></tr></tbody></table></figure>



<p><code>kpi_property=3</code>（KPIStatus）と <code>kpi_property=4</code>（KPITrend）の戻り値は少し特殊です。<br>通常 <code>-1</code>、<code>0</code>、<code>1</code> の整数を返します。</p>



<figure class="wp-block-table"><table><thead><tr><th>戻り値</th><th>状態</th><th>傾向</th></tr></thead><tbody><tr><td>1</td><td>良好（目標達成）</td><td>改善傾向</td></tr><tr><td>0</td><td>中立（許容範囲内）</td><td>横ばい</td></tr><tr><td>-1</td><td>悪化（目標未達）</td><td>悪化傾向</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>状態と傾向の戻り値は、KPI定義時に設計者が設定したしきい値の式で決まります。基本は -1 / 0 / 1 ですが、カスタム定義によっては別の値を返す場合もあります。</p></blockquote>



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



<p>ここからは「Total Sales KPI」というKPIがExcelデータモデルに定義済みという前提で進めます。<br>基本的な使い方を順番に見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">基本例: KPIの名前を取得する</span></h3>



<p>KPIの名前（タイトル）を取得するには、第3引数を <code>1</code>（KPIValue）にして、別名を第4引数で指定します。</p>



<pre class="wp-block-code"><code>=CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,1,&quot;売上達成KPI&quot;)</code></pre>



<p>セルには第4引数で指定した「売上達成KPI」が表示されます。<br>第4引数を省略した場合は「Total Sales KPI Value」のような自動生成のキャプションが入ります。</p>



<h3 class="wp-block-heading"><span id="toc6">引数 kpi_property を変えて4つのプロパティを取り出す</span></h3>



<p>同じKPIに対して、第3引数を1〜4まで変えると、それぞれ異なるプロパティを取り出せます。</p>



<pre class="wp-block-code"><code>=CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,1,&quot;値&quot;)
=CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,2,&quot;目標&quot;)
=CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,3,&quot;状態&quot;)
=CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,4,&quot;傾向&quot;)</code></pre>



<p>ただし、この時点でセルに表示されるのは第4引数のキャプション文字列だけです。<br>実際の数値（実績値や状態の数値）を取り出すには、次の章で紹介するCUBEVALUE関数と組み合わせる必要があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CUBEKPIMEMBER関数は単独で使うと「メンバーオブジェクト」を返します。セルにはキャプションのテキストが表示されますが、内部的にはCUBEVALUEで数値化するためのIDのようなものを保持しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">CUBEKPIMEMBERとCUBEVALUEを組み合わせてKPIを表示する</span></h2>



<p>CUBEKPIMEMBER関数の本領は、CUBEVALUE関数の引数として渡したときに発揮されます。<br>CUBEVALUEは「メンバーが指す実際の数値」を返す関数です。<br>CUBEKPIMEMBERで指定したプロパティの数値を、これで取り出せます。</p>



<h3 class="wp-block-heading"><span id="toc8">値（実績）をCUBEVALUEで取得する</span></h3>



<p>実績値を数値として取り出す数式は次のとおりです。</p>



<pre class="wp-block-code"><code>=CUBEVALUE(&quot;ThisWorkbookDataModel&quot;,CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,1))</code></pre>



<p>これでセルに「12,345,678」のような実績値の数値が表示されます。</p>



<h3 class="wp-block-heading"><span id="toc9">目標値をCUBEVALUEで取得する</span></h3>



<p>第3引数を <code>2</code>（KPIGoal）に変えれば、目標値を取り出せます。</p>



<pre class="wp-block-code"><code>=CUBEVALUE(&quot;ThisWorkbookDataModel&quot;,CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,2))</code></pre>



<h3 class="wp-block-heading"><span id="toc10">状態を判定アイコンに変換する</span></h3>



<p>状態（kpi_property=3）はそのままでは <code>-1 / 0 / 1</code> の整数です。<br>IF関数やCHOOSE関数で記号に変換すると見やすくなります。</p>



<pre class="wp-block-code"><code>=CUBEVALUE(&quot;ThisWorkbookDataModel&quot;,CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,3))</code></pre>



<p>この戻り値（仮に <code>E2</code> セル）を判定マークに変換するなら次のとおりです。</p>



<pre class="wp-block-code"><code>=CHOOSE(E2+2,&quot;×&quot;,&quot;△&quot;,&quot;○&quot;)</code></pre>



<p><code>-1</code> のときは <code>×</code>、<code>0</code> のときは <code>△</code>、<code>1</code> のときは <code>○</code> が返ります。<br><code>+2</code> を足しているのは、CHOOSE関数のインデックスが1始まりだからです。</p>



<h3 class="wp-block-heading"><span id="toc11">傾向を矢印に変換する</span></h3>



<p>傾向（kpi_property=4）も同じ方法で矢印に変換できます。</p>



<pre class="wp-block-code"><code>=CUBEVALUE(&quot;ThisWorkbookDataModel&quot;,CUBEKPIMEMBER(&quot;ThisWorkbookDataModel&quot;,&quot;[Measures].[Total Sales KPI]&quot;,4))</code></pre>



<p>戻り値（仮に <code>F2</code> セル）を矢印に変換するなら次のとおりです。</p>



<pre class="wp-block-code"><code>=CHOOSE(F2+2,&quot;↓&quot;,&quot;→&quot;,&quot;↑&quot;)</code></pre>



<p><code>-1</code> で下向き矢印、<code>0</code> で横向き矢印、<code>1</code> で上向き矢印が表示されます。</p>



<h2 class="wp-block-heading"><span id="toc12">CUBEKPIMEMBERでKPIダッシュボードを作る</span></h2>



<p>ここまでの組み合わせを使うと、関数だけでKPIダッシュボードを作れます。<br>ピボットテーブルに頼らないので、レイアウトの自由度が高いのが利点です。</p>



<h3 class="wp-block-heading"><span id="toc13">KPI名・実績・目標・達成率・状態・傾向の6列レイアウト</span></h3>



<p>A列〜F列に次のような数式を並べると、KPIダッシュボードの1行ぶんが完成します。</p>



<figure class="wp-block-table"><table><thead><tr><th>列</th><th>ヘッダー</th><th>数式</th></tr></thead><tbody><tr><td>A</td><td>KPI名</td><td><code>=CUBEKPIMEMBER("ThisWorkbookDataModel","[Measures].[Total Sales KPI]",1,"売上KPI")</code></td></tr><tr><td>B</td><td>実績</td><td><code>=CUBEVALUE("ThisWorkbookDataModel",CUBEKPIMEMBER("ThisWorkbookDataModel","[Measures].[Total Sales KPI]",1))</code></td></tr><tr><td>C</td><td>目標</td><td><code>=CUBEVALUE("ThisWorkbookDataModel",CUBEKPIMEMBER("ThisWorkbookDataModel","[Measures].[Total Sales KPI]",2))</code></td></tr><tr><td>D</td><td>達成率</td><td><code>=B2/C2</code></td></tr><tr><td>E</td><td>状態</td><td><code>=CHOOSE(CUBEVALUE("ThisWorkbookDataModel",CUBEKPIMEMBER("ThisWorkbookDataModel","[Measures].[Total Sales KPI]",3))+2,"×","△","○")</code></td></tr><tr><td>F</td><td>傾向</td><td><code>=CHOOSE(CUBEVALUE("ThisWorkbookDataModel",CUBEKPIMEMBER("ThisWorkbookDataModel","[Measures].[Total Sales KPI]",4))+2,"↓","→","↑")</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">条件付き書式と組み合わせる</span></h3>



<p>E列の状態セルに条件付き書式を設定すれば、<code>○</code> を緑、<code>△</code> を黄、<code>×</code> を赤に塗り分けられます。<br>「ホーム」タブ →「条件付き書式」→「セルの強調表示ルール」→「指定の値に等しい」で設定します。</p>



<h3 class="wp-block-heading"><span id="toc15">複数KPIを縦に並べる</span></h3>



<p>KPIが複数ある場合は、第2引数のKPI名を変えて縦に並べていきます。<br>たとえば2行目に「Total Sales KPI」、3行目に「Profit Margin KPI」のように記述します。<br>経営ダッシュボードのような一覧表が、関数だけで作れます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>同じKPI名を何度も書くのが面倒な場合は、KPI名を別セル（例: <code>G2</code>）に書いておき、セル参照で渡す形にすると保守が楽になります。<code>=CUBEKPIMEMBER("ThisWorkbookDataModel",G2,1)</code> のように書けます。</p></blockquote>



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



<p>CUBEKPIMEMBER関数を使っているとよく出るエラーと対処法を整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>指定したKPI名がデータモデル/キューブに存在しない、スペルミス、大文字小文字違い</td><td>ピボットテーブルのフィールドリストでKPI名を確認しコピペで貼り付ける</td></tr><tr><td>#NAME?</td><td>関数名のタイプミス、connectionが引用符で囲まれていない</td><td>関数名の綴りを確認、第1引数を <code>"ThisWorkbookDataModel"</code> のように引用符で囲む</td></tr><tr><td>#GETTING_DATA</td><td>エラーではなく、バックグラウンドで値を取得中の一時表示</td><td>数秒待つ。長時間続く場合は接続不良を疑う</td></tr><tr><td>空欄・想定外の値</td><td>kpi_propertyに1〜4以外の数値を指定、KPIが定義されていないメジャーを指定</td><td>kpi_propertyは1〜4の整数のみ使用し、データモデル側でKPIが定義されているか確認</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>KPI名は <code>"[Measures].[KPI 1]"</code> のような角カッコ付きの形式で書く必要があります。これは「キューブ表記」と呼ばれる書式で、ピボットテーブルからフィールドをコピーすると正しい形式で取得できます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc17">似たCUBE関数との使い分け</span></h2>



<p>CUBE関数シリーズには7つの関数があり、それぞれ役割が異なります。<br>CUBEKPIMEMBERは「KPI専用」のメンバー取得関数なので、用途に応じて他のCUBE関数と使い分けます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th><th>主な用途</th></tr></thead><tbody><tr><td>CUBEMEMBER</td><td>一般のメンバーを取得</td><td>次元・階層・メジャーの参照</td></tr><tr><td>CUBEVALUE</td><td>メジャー値（数値）を取得</td><td>売上合計・件数などの集計値</td></tr><tr><td>CUBESET</td><td>メンバーのセット（集合）を定義</td><td>「上位10商品」などの動的なグループ</td></tr><tr><td>CUBESETCOUNT</td><td>セット内のメンバー数を取得</td><td>セットの件数カウント</td></tr><tr><td>CUBERANKEDMEMBER</td><td>セット内のN番目のメンバーを取得</td><td>TOP5表示</td></tr><tr><td>CUBEMEMBERPROPERTY</td><td>メンバーのプロパティを取得</td><td>メンバーの属性値（地域コードなど）</td></tr><tr><td><strong>CUBEKPIMEMBER</strong></td><td><strong>KPIとそのプロパティを取得</strong></td><td><strong>KPIダッシュボード</strong></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">CUBEMEMBERとの違い</span></h3>



<p>CUBEMEMBER関数はキューブ内の一般のメンバー（次元・階層・メジャー）を返します。<br>一方、CUBEKPIMEMBERはKPI定義に特化しています。<br>KPIプロパティ（値・目標・状態・傾向）を引数で指定して取り出せる点が異なります。</p>



<p>CUBEMEMBERの詳しい使い方は<a href="https://mashukabu.com/excel-function-howto-use-cubemember/">【Excel】CUBEMEMBER関数の使い方</a>をご覧ください。</p>



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



<p>CUBEVALUE関数は「メジャーの数値そのもの」を返す関数です。<br>一方CUBEKPIMEMBERは「メンバー（参照情報）」を返すだけです。<br>実際の数値を取りたいときはCUBEVALUEと組み合わせる必要があります。<br>役割が補完的な2関数です。</p>



<p>CUBEVALUEの詳しい使い方は<a href="https://mashukabu.com/excel-function-howto-use-cubevalue/">【Excel】CUBEVALUE関数の使い方</a>をご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc20">CUBEMEMBERPROPERTYとの違い</span></h3>



<p>CUBEMEMBERPROPERTY関数はメンバーの「属性プロパティ」（地域名や商品カテゴリなど）を返します。<br>一方、CUBEKPIMEMBERは「KPIプロパティ」（値・目標・状態・傾向）を返すという点で別物です。<br>プロパティの種類が違います。</p>



<p>CUBEMEMBERPROPERTYの詳しい使い方は<a href="https://mashukabu.com/excel-function-howto-use-cubememberproperty/">【Excel】CUBEMEMBERPROPERTY関数の使い方</a>をご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc21">CUBE関数シリーズの全体マップ</span></h3>



<p>CUBE関数を学習する順序としては、まずCUBEMEMBER・CUBEVALUEで基本を押さえます。<br>次にCUBESET・CUBESETCOUNT・CUBERANKEDMEMBERでセット操作に進みます。<br>最後にCUBEMEMBERPROPERTY・CUBEKPIMEMBERで属性・KPI取得に広げるのがおすすめです。</p>



<p>関連記事のリンクは次のとおりです。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-cubemember/">【Excel】CUBEMEMBER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-cubevalue/">【Excel】CUBEVALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-cubeset/">【Excel】CUBESET関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-cubesetcount/">【Excel】CUBESETCOUNT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-cuberankedmember/">【Excel】CUBERANKEDMEMBER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-cubememberproperty/">【Excel】CUBEMEMBERPROPERTY関数の使い方</a></li></ul>



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



<p>ExcelのCUBEKPIMEMBER関数は、Power PivotやOLAPキューブで定義したKPIを取り出す関数です。<br>関数だけでセルに値・目標・状態・傾向を表示できます。</p>



<p>要点をまとめると次のとおりです。</p>



<ul class="wp-block-list"><li>構文は <code>=CUBEKPIMEMBER(接続名, KPI名, プロパティ番号, [別名])</code></li><li>第3引数は <code>1</code>=値 / <code>2</code>=目標 / <code>3</code>=状態 / <code>4</code>=傾向 の4種類</li><li>状態と傾向は通常 <code>-1 / 0 / 1</code> の整数を返す</li><li>数値を取り出すにはCUBEVALUE関数と組み合わせる</li><li>IF関数やCHOOSE関数で <code>○△×</code> や矢印に変換すると見やすい</li><li>CUBE関数シリーズ7関数の中で、KPI専用のメンバー取得がCUBEKPIMEMBERの役割</li></ul>



<p>ピボットテーブルでは難しい自由レイアウトのKPIダッシュボードを作りたいときに、CUBEKPIMEMBERとCUBEVALUEの組み合わせは強力な武器になります。<br>Power Pivotで作ったKPIを最大限に活かすために、ぜひ活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-cubekpimember/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】MODE.MULT関数の使い方｜最頻値が複数あるときに全部取り出す配列関数</title>
		<link>https://mashukabu.com/excel-mode-mult/</link>
					<comments>https://mashukabu.com/excel-mode-mult/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:44 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[最頻値]]></category>
		<category><![CDATA[統計関数]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6750</guid>

					<description><![CDATA[ExcelのMODE.MULT関数の使い方を解説します。データセットの中で同じ最高頻度を持つ最頻値を「複数」配列で返す関数で、アンケートで同率1位の回答が複数あるときに全部抽出できます。CSE（Ctrl+Shift+Enter）入力と動的配列スピルの違い、MODE.SNGLとの使い分け、#N/Aエラーの正しい解釈までまとめました。]]></description>
										<content:encoded><![CDATA[
<p>社内アンケートを集計していて「最も多かった回答」を出そうとしたら、同じ票数のものが2つも3つもあった。そんなとき、普通の最頻値関数だと1つしか返ってこなくて困った経験はないでしょうか。</p>



<p>そこで活躍するのが <strong>MODE.MULT関数</strong> です。同率1位の最頻値をすべて配列としてまとめて返してくれるので、「同点トップが複数あるケース」も漏らさず取得できます。</p>



<p>この記事では、MODE.MULT関数の構文から、CSE入力と動的配列スピルの違い、MODE.SNGLとの使い分け、よくあるエラーの読み解き方までを実例で整理します。</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">ExcelのMODE.MULT関数とは？</a></li><li><a href="#toc2" tabindex="0">MODE.MULT関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">MODE.SNGLとの違いを早見表で整理</a></li><li><a href="#toc4" tabindex="0">実務例：アンケート評価点の同率最多回答を全部取得する</a><ol><li><a href="#toc5" tabindex="0">Microsoft 365 / Excel 2021以降の場合（動的配列スピル）</a></li><li><a href="#toc6" tabindex="0">Excel 2019以前の場合（CSE入力）</a></li></ol></li><li><a href="#toc7" tabindex="0">CSE入力と動的配列スピルの違い</a></li><li><a href="#toc8" tabindex="0">#N/Aエラーが返る2つのパターン</a><ol><li><a href="#toc9" tabindex="0">パターン1：余ったセルに表示される #N/A（正常動作）</a></li><li><a href="#toc10" tabindex="0">パターン2：すべてのセルに #N/A が表示される（重複なし）</a></li></ol></li><li><a href="#toc11" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc12" tabindex="0">関連する最頻値・統計関数</a></li><li><a href="#toc13" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのMODE.MULT関数とは？</span></h2>



<p>ExcelのMODE.MULT関数（読み方：モード・マルト）は、<strong>データセットの中で最も頻繁に出現する数値（最頻値）を、複数まとめて配列で返す関数</strong>です。関数名は「<strong>MODE</strong>（最頻値）＋<strong>MULT</strong>iple（複数）」の組み合わせで、「複数の最頻値」を意味します。</p>



<p>通常の最頻値関数（MODEやMODE.SNGL）は、同じ最高頻度の値が複数あっても <strong>最初に見つかった1つだけ</strong> を返します。一方MODE.MULTは、同率1位の値を <strong>すべて配列として返す</strong> のが最大の特徴です。</p>



<p>たとえば 1, 2, 3, 3, 4, 5, 5 というデータでは、3も5も2回ずつ登場します。MODE.SNGLでは「3」だけが返りますが、MODE.MULTを使えば「3」と「5」の両方を取得できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MODE.MULTはExcel 2010で追加された関数です。それ以前のExcelには存在せず、後継関数として登場しました。Excel 2010以降であれば、Mac版・Windows版を問わず利用できます。</p></blockquote>



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



<p>MODE.MULT関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=MODE.MULT(数値1, [数値2], ...)</code></pre>



<p>引数の仕様は次の表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>数値1</td><td>必須</td><td>最頻値を求めたい1つ目の数値またはセル範囲</td></tr><tr><td>数値2, &#8230;</td><td>任意</td><td>2つ目以降の数値またはセル範囲（最大254個まで指定可）</td></tr></tbody></table></figure>



<p>戻り値は <strong>縦方向の配列</strong> です。同率最頻値の個数だけ縦に値が並び、選択範囲が余ったセルには #N/A が表示されます。これは「ここまでで最頻値は出尽くしました」というサインで、エラーではなく正常動作です。</p>



<p>引数に指定したセルのうち、テキスト・論理値・空白セルは無視されます。ただし数値の <strong>0（ゼロ）</strong> はカウント対象になる点に注意してください。</p>



<h2 class="wp-block-heading"><span id="toc3">MODE.SNGLとの違いを早見表で整理</span></h2>



<p>「最頻値を返す関数」は3種類あります。それぞれの違いを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MODE</th><th>MODE.SNGL</th><th>MODE.MULT</th></tr></thead><tbody><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>通常Enter</td><td>通常Enter</td><td>CSE または通常Enter（スピル対応版）</td></tr><tr><td>関数の分類</td><td>互換性関数</td><td>統計関数</td><td>統計関数</td></tr><tr><td>導入時期</td><td>Excel 2007以前</td><td>Excel 2010以降</td><td>Excel 2010以降</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>「同率最多が出るかもしれない」場合はMODE.MULT、「最頻値は1つで十分」な場合は <a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL関数</a> を選ぶのが基本です。MODE.SNGLは1つしか返ってこないため、同率最多の見落としに気づけないリスクがあります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">実務例：アンケート評価点の同率最多回答を全部取得する</span></h2>



<p>社員研修の満足度アンケート（5段階評価）を集計するシーンで考えてみます。10人の回答が次のように集まりました。</p>



<figure class="wp-block-table"><table><thead><tr><th>回答者</th><th>評価点</th></tr></thead><tbody><tr><td>田中</td><td>5</td></tr><tr><td>佐藤</td><td>4</td></tr><tr><td>鈴木</td><td>5</td></tr><tr><td>高橋</td><td>3</td></tr><tr><td>伊藤</td><td>4</td></tr><tr><td>渡辺</td><td>5</td></tr><tr><td>山本</td><td>4</td></tr><tr><td>中村</td><td>2</td></tr><tr><td>小林</td><td>4</td></tr><tr><td>加藤</td><td>5</td></tr></tbody></table></figure>



<p>評価点が B2:B11 に入っているとします。最頻値を求めると、4点が4回、5点も4回登場しており、同率1位という状況です。</p>



<h3 class="wp-block-heading"><span id="toc5">Microsoft 365 / Excel 2021以降の場合（動的配列スピル）</span></h3>



<p>任意のセル（たとえば D2）に通常通り入力するだけです。</p>



<pre class="wp-block-code"><code>=MODE.MULT(B2:B11)</code></pre>



<p>Enterを押すと、D2に「4」、D3に「5」が <strong>自動でスピル展開</strong> されます。範囲をあらかじめ選択する必要はありません。</p>



<h3 class="wp-block-heading"><span id="toc6">Excel 2019以前の場合（CSE入力）</span></h3>



<p>「同率最多が何個出るか」が事前に分からないので、念のため数個ぶんのセル（たとえば D2:D6）を縦に選択しておきます。続けて数式バーに次の数式を入力します。</p>



<pre class="wp-block-code"><code>=MODE.MULT(B2:B11)</code></pre>



<p>そのまま <strong>Ctrl + Shift + Enter</strong> を押すと、配列数式として確定されます。数式バーには <code>{=MODE.MULT(B2:B11)}</code> と中括弧が付き、選択範囲に「4」「5」「#N/A」「#N/A」「#N/A」のように展開されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>Excel 2019以前で通常のEnterで確定すると、最初の1つ（この例では「4」）だけが表示され、残りの最頻値が取得できません。古いExcelで使うときは必ず <strong>Ctrl + Shift + Enter</strong> で確定してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">CSE入力と動的配列スピルの違い</span></h2>



<p>MODE.MULTの入力方法は、Excelのバージョンによって2通りに分かれます。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>CSE入力（旧来Excel）</th><th>動的配列スピル（新Excel）</th></tr></thead><tbody><tr><td>対象バージョン</td><td>Excel 2010〜2019</td><td>Microsoft 365、Excel 2021以降</td></tr><tr><td>入力範囲</td><td>事前にセル範囲を選択</td><td>単一セルに入力するだけ</td></tr><tr><td>確定キー</td><td>Ctrl + Shift + Enter</td><td>通常のEnter</td></tr><tr><td>数式表示</td><td><code>{=MODE.MULT(...)}</code></td><td><code>=MODE.MULT(...)</code></td></tr><tr><td>結果が増減した場合</td><td>範囲を再指定して再入力</td><td>自動的に縮小・拡大</td></tr></tbody></table></figure>



<p>新しい動的配列スピルのほうが圧倒的に扱いやすいです。Microsoft 365をお使いの方は、結果が何個になるかを気にせず1セルに入力するだけで済みます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>スピル展開時、隣接セルにすでにデータが入っていると <strong>#SPILL!</strong> エラーになります。スピル先のセル（この例ではD3以降）が空であることを確認してから入力してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">#N/Aエラーが返る2つのパターン</span></h2>



<p>MODE.MULT関数を使うと #N/A エラーをよく目にします。これには2つのパターンがあり、意味がまったく違うので区別しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン1：余ったセルに表示される #N/A（正常動作）</span></h3>



<p>CSE入力で5セル選択したけれど、実際に最頻値が2つしかなかった場合、3〜5番目のセルには #N/A が表示されます。これは「これ以上の最頻値はありません」という終端マーカーで、エラーではなく正常動作です。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン2：すべてのセルに #N/A が表示される（重複なし）</span></h3>



<p>データセットに重複する値が1つもない（全員バラバラ）場合、最頻値そのものが定義できないため、すべてのセルに #N/A が返ります。これは仕様上の動作で、データ側の特性を示しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>パターン2が表示されたら「データに重複がないので最頻値が存在しない」と読み替えましょう。エラーを隠したい場合は <code>=IFERROR(MODE.MULT(範囲), "重複なし")</code> で文字列に置き換えられます。</p></blockquote>



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



<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>正常動作。範囲を狭めるかIFERRORで非表示</td></tr><tr><td><code>#N/A</code>（全セル）</td><td>データに重複値が一つもない</td><td>データ側を確認。IFERRORで代替表示</td></tr><tr><td><code>#VALUE!</code></td><td>範囲内に文字化けや特殊な値がある</td><td>範囲内の値が数値であることを確認</td></tr><tr><td><code>#SPILL!</code></td><td>スピル先のセルにデータが入っている</td><td>スピル先のセルを空にする</td></tr><tr><td><code>#NAME?</code></td><td>Excel 2007以前で実行している</td><td>Excel 2010以降を使うか、MODE関数で代替</td></tr></tbody></table></figure>



<p>特に多いのが <strong>#SPILL!</strong> です。動的配列スピル対応のExcelで MODE.MULT を1セルに入れたとき、隣接セルが埋まっていると展開できません。表組みの中で使うときは、結果が広がる方向のセルを空けておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc12">関連する最頻値・統計関数</span></h2>



<p>中心傾向や頻度の分析では、MODE系のほかにもいくつか関数を組み合わせて使うと便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL</a></td><td>最頻値を1つだけ返す（同率最多があっても最小値を返す）</td></tr><tr><td>MODE</td><td>旧来の最頻値関数（互換性関数。新規利用は MODE.SNGL を推奨）</td></tr><tr><td>AVERAGE</td><td>算術平均を求める</td></tr><tr><td>MEDIAN</td><td>中央値を求める</td></tr><tr><td>COUNTIF</td><td>特定の値の出現回数をカウント</td></tr><tr><td>FREQUENCY</td><td>度数分布を求める</td></tr></tbody></table></figure>



<p>最頻値を出した後に「その値が何件あるのか」を数えたい場合は COUNTIF関数 と組み合わせると便利です。</p>



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



<p>ExcelのMODE.MULT関数は、最頻値が複数あるケースを漏らさず抽出できる配列関数です。要点を整理しておきます。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=MODE.MULT(数値1, [数値2], ...)</code></li><li><strong>戻り値</strong>: 縦方向の配列（同率最頻値をすべて含む）</li><li><strong>Microsoft 365 / Excel 2021以降</strong>: 通常Enterで自動スピル展開</li><li><strong>Excel 2019以前</strong>: 範囲を選択して <strong>Ctrl + Shift + Enter</strong>（CSE）</li><li><strong>余りセルの #N/A は正常動作</strong>（最頻値の終端マーカー）</li><li><strong>全セル #N/A はデータに重複がない</strong> ことを示す</li></ul>



<p>アンケート集計で「同率1位の回答を全部出したい」場面や、製品評価で「同じ得票数のレビュー点を全部取り出したい」場面では、MODE.MULTがそのまま答えを返してくれます。1つだけ取得したい場合は <a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL関数</a> と使い分けましょう。</p>



<p>中心傾向の3指標である AVERAGE関数、MEDIAN関数、MODE.MULT/MODE.SNGLを揃えて使えるようになると、データの「真ん中」を多角的に捉えられるようになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-mode-mult/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】FDIST関数の使い方｜F分布のp値を計算する方法（旧: F.DIST.RT）</title>
		<link>https://mashukabu.com/excel-fdist/</link>
					<comments>https://mashukabu.com/excel-fdist/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:36 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[ANOVA]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[F検定]]></category>
		<category><![CDATA[分散分析]]></category>
		<category><![CDATA[統計関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6748</guid>

					<description><![CDATA[ExcelのFDIST関数の使い方を解説します。F分布の右側確率（p値）を返す互換性関数で、分散分析（ANOVA）や回帰分析の有意性検定に使えます。構文・引数の意味、ANOVAでのp値計算の実例、新関数F.DIST.RTとの違い、FINVなど関連関数との関係まで実例で整理しました。]]></description>
										<content:encoded><![CDATA[
<p>「3つの広告クリエイティブで、どれか1つでも他と差があるかを検定したい」「重回帰の結果が偶然じゃないか確かめたい」といった場面で活躍するのが <strong>FDIST関数</strong> です。</p>



<p>ただ、F分布という言葉だけで身構えてしまう方も多いはずです。さらに新関数 F.DIST.RT との違いや、引数の自由度の指定方法でつまずく方も少なくありません。</p>



<p>この記事では、FDIST関数の構文から、分散分析（ANOVA）でのp値計算の実例、新関数との関係、関連関数の使い分けまでをまとめて整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのFDIST関数とは？</a></li><li><a href="#toc2" tabindex="0">FDIST関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">F分布と右側確率のイメージ</a></li><li><a href="#toc4" tabindex="0">実務例1：ANOVA（一元配置分散分析）でp値を求める</a></li><li><a href="#toc5" tabindex="0">実務例2：回帰分析の有意性検定にF値を使う</a></li><li><a href="#toc6" tabindex="0">F.DIST.RT関数（新関数）との違い・使い分け</a><ol><li><a href="#toc7" tabindex="0">使い分けの実務指針</a></li></ol></li><li><a href="#toc8" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc9" tabindex="0">関連関数：FDIST・FINV・F.DIST.RT・F.INV.RT の関係</a></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>ExcelのFDIST関数（読み方：エフディスト）は、<strong>F分布の右側確率（p値）を返す関数</strong>です。関数名は「<strong>F</strong>&#8211;<strong>Dist</strong>ribution（F分布）」の略で、統計学者ロナルド・フィッシャーの名にちなんだ分布です。</p>



<p>ざっくり言うと、ある <strong>F値</strong> と2つの <strong>自由度</strong> を渡すと、「F値がそれ以上に大きくなる確率」を返してくれる関数です。p値が小さいほど「観測されたF値は偶然では起きにくい」と言えます。慣例的に <strong>p値 < 0.05 で「統計的に有意」</strong> と判定します。</p>



<p>FDIST関数は、Excel 2007以前から提供されている <strong>旧式の関数</strong>です。Excel 2010以降では「互換性関数」のグループに分類されています。後継として <strong>F.DIST.RT関数</strong>（ドット入り、RT＝Right Tailed）が用意されていますが、FDIST関数も後方互換性のために引き続き使えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「互換性関数」は古いブックでも問題なく動くように維持されている関数群です。新規作成のワークブックでは新関数（F.DIST.RT）が推奨されますが、既存のテンプレートやマクロでFDISTを見かけても、結果は新関数とまったく同じです。</p></blockquote>



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



<p>FDIST関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=FDIST(x, deg_freedom1, deg_freedom2)</code></pre>



<p>引数は3つで、すべて必須です。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>x</td><td>必須</td><td>評価したいF値（0以上の数値）</td></tr><tr><td>deg_freedom1</td><td>必須</td><td>分子の自由度（1以上の整数。グループ間自由度）</td></tr><tr><td>deg_freedom2</td><td>必須</td><td>分母の自由度（1以上の整数。グループ内自由度）</td></tr></tbody></table></figure>



<p>戻り値は0以上1以下のp値です。「F値が x より大きくなる確率」、つまり <strong>右側確率 P(F > x)</strong> を表します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>自由度が小数で渡された場合は整数部分のみが使われます（小数部分は切り捨て）。ANOVA で自由度を計算する際は、<code>(グループ数 - 1)</code> と <code>(全体サンプル数 - グループ数)</code> という整数になるので、通常は気にする必要はありません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc3">F分布と右側確率のイメージ</span></h2>



<p>F分布は「2つの分散の比」が従う分布で、必ず0以上の値を取り、右に長い裾を持つ非対称な形をしています。F値が大きくなるほど「グループ間のばらつきがグループ内のばらつきより明らかに大きい」ことを意味します。</p>



<p>FDIST関数は、その大きいF値が <strong>偶然出る確率</strong> を返します。実務的には次のように使います。</p>



<ul class="wp-block-list"><li>計算されたF値とFDISTのp値を比較する</li><li>p値が0.05未満 → 「グループ間に有意な差がある」と結論づける</li><li>p値が0.05以上 → 「グループ間に差があるとは言えない」と判断する</li></ul>



<h2 class="wp-block-heading"><span id="toc4">実務例1：ANOVA（一元配置分散分析）でp値を求める</span></h2>



<p>3つの広告クリエイティブA・B・Cで、それぞれ5日間ずつコンバージョン率（％）を計測したとします。「どれか1つでも他と差があるか」を一元配置分散分析（ANOVA）で検定してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>日</th><th>A群（％）</th><th>B群（％）</th><th>C群（％）</th></tr></thead><tbody><tr><td>1</td><td>2.1</td><td>2.8</td><td>3.4</td></tr><tr><td>2</td><td>2.3</td><td>3.1</td><td>3.6</td></tr><tr><td>3</td><td>1.9</td><td>2.6</td><td>3.2</td></tr><tr><td>4</td><td>2.5</td><td>2.9</td><td>3.5</td></tr><tr><td>5</td><td>2.2</td><td>3.2</td><td>3.7</td></tr></tbody></table></figure>



<p>ANOVAの分散分析表からF値が <code>F = 35.2</code>、自由度が <code>分子=2</code>（グループ数 &#8211; 1）、<code>分母=12</code>（全体サンプル数 &#8211; グループ数）と算出されたとします。このF値のp値をFDISTで求めます。</p>



<pre class="wp-block-code"><code>=FDIST(35.2, 2, 12)</code></pre>



<p>このサンプルでは、p値はおよそ <code>0.0000089</code> と極めて小さい値が返ります。0.05 を大きく下回っているので、「<strong>3群の平均値に少なくとも1つは有意な差がある</strong>」と結論づけられます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「分析ツール」アドインの「分散分析: 一元配置」を使えば、F値・自由度・p値・F境界値が自動計算された分散分析表が出力されます。FDIST関数は、分析ツールを使わずに手計算したF値を検定したい場合や、自動化マクロでp値だけ取得したい場合に重宝します。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">実務例2：回帰分析の有意性検定にF値を使う</span></h2>



<p>重回帰分析の結果でも、「モデル全体が意味のある説明力を持っているか」をF検定で判断します。Excelの「回帰分析」アドインを実行すると、分散分析表に <strong>観測されたF値</strong> と <strong>有意 F</strong> が出力されます。</p>



<p>仮にF値が <code>F = 18.7</code>、回帰の自由度が <code>3</code>（説明変数の数）、残差の自由度が <code>26</code>（サンプル数 &#8211; 説明変数の数 &#8211; 1）だったとしましょう。</p>



<pre class="wp-block-code"><code>=FDIST(18.7, 3, 26)</code></pre>



<p>このサンプルでは、p値はおよそ <code>0.0000016</code> となります。0.05 を大きく下回るため「<strong>回帰モデル全体は統計的に有意</strong>」と結論づけられます。少なくとも1つの説明変数は目的変数の予測に貢献していると言えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>回帰分析の出力に直接「有意 F」が表示されているなら、わざわざFDIST関数で再計算する必要はありません。FDISTは、F値だけ手元にある状況や、シミュレーションでF値を多数生成した結果を一括検定するときに便利です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">F.DIST.RT関数（新関数）との違い・使い分け</span></h2>



<p>Excel 2010以降では、後継の <strong>F.DIST.RT関数</strong>（ドット入り、Right Tailed）が用意されています。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>FDIST</th><th>F.DIST.RT</th></tr></thead><tbody><tr><td>導入時期</td><td>Excel 2007以前から</td><td>Excel 2010以降</td></tr><tr><td>構文</td><td>FDIST(x, deg_freedom1, deg_freedom2)</td><td>F.DIST.RT(x, deg_freedom1, deg_freedom2)</td></tr><tr><td>計算結果</td><td>同一</td><td>同一</td></tr><tr><td>関数の分類</td><td>互換性関数</td><td>統計関数</td></tr></tbody></table></figure>



<p>引数の数・順番・意味すべて同じで、計算結果も完全一致します。<code>FDIST(x, d1, d2) = F.DIST.RT(x, d1, d2)</code> という関係です。</p>



<h3 class="wp-block-heading"><span id="toc7">使い分けの実務指針</span></h3>



<ul class="wp-block-list"><li>古いExcel環境（2007以前）と共有する → FDIST</li><li>自分専用または新しい環境で使う → F.DIST.RT</li><li>既存ブックの数式を継承する → そのまま変更不要</li></ul>



<p>Microsoft公式は新関数（F.DIST.RT）を推奨していますが、FDIST が将来削除される予定もないので、安心して使えます。既存のテンプレートやマクロが FDIST で組まれていることはまだ多く、業務で見かける機会は今後も残ります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Excel 2010以降には、左側確率（累積確率）を返す <strong>F.DIST関数</strong>（RT なし）も別途追加されています。FDIST／F.DIST.RT が右側確率なのに対して、F.DIST(x, d1, d2, TRUE) は左側確率（CDF）を返します。p値計算には FDIST または F.DIST.RT を使うと覚えておきましょう。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>x や自由度に数値以外が入っている</td><td>すべて数値で指定する</td></tr><tr><td><code>#NUM!</code></td><td>x が負（x < 0）／自由度が1未満／x が <code>10^10</code> 以上</td><td>x は0以上、自由度は1以上の整数を指定</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td><code>FDIST</code> の綴りを確認</td></tr></tbody></table></figure>



<p>特に多いのが、F値を間違って負の数で渡してしまうケースです。F値は分散の比なので必ず0以上になります。マイナス値が出ている時点で、F値の計算式そのものを見直しましょう。</p>



<p>また、サンプルサイズが極端に大きいシミュレーションなどで <code>x >= 10^10</code> となるケースもエラーになりますが、実務でこの上限に達することはほぼありません。</p>



<h2 class="wp-block-heading"><span id="toc9">関連関数：FDIST・FINV・F.DIST.RT・F.INV.RT の関係</span></h2>



<p>F分布まわりには、p値とF値を相互に変換する関数が4つあります。次の表で全体像を整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>入力</th><th>出力</th><th>役割</th></tr></thead><tbody><tr><td>FDIST</td><td>F値, 自由度1, 自由度2</td><td>p値（右側確率）</td><td>F値から有意性を判定</td></tr><tr><td><a href="https://mashukabu.com/excel-finv/">FINV</a></td><td>確率, 自由度1, 自由度2</td><td>F値</td><td>棄却域の臨界F値を求める（旧関数）</td></tr><tr><td>F.DIST.RT</td><td>F値, 自由度1, 自由度2</td><td>p値（右側確率）</td><td>FDISTの新関数版</td></tr><tr><td>F.INV.RT</td><td>確率, 自由度1, 自由度2</td><td>F値</td><td>FINVの新関数版</td></tr></tbody></table></figure>



<p>要するに、計算したF値が有意かを判定したいなら FDIST／F.DIST.RT、α=0.05 で「これ以上のF値なら有意」という臨界値を逆算したいなら <a href="https://mashukabu.com/excel-finv/">FINV関数</a>／F.INV.RT を使います。両者を組み合わせると、F検定の流れが Excel だけで完結します。</p>



<p>事前に等分散かどうかを判定したい場面では、F検定そのものを返してくれる F.TEST 関数も便利です。t検定の文脈で等分散・不等分散を選び分けるときは <a href="https://mashukabu.com/excel-ttest/">TTEST関数</a> と組み合わせて使うと、検定の流れが一気に整理できます。</p>



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



<p>ExcelのFDIST関数は、F分布のp値を一発で計算できる便利な互換性関数です。要点を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=FDIST(x, deg_freedom1, deg_freedom2)</code></li><li>戻り値はF分布の <strong>右側確率 P(F > x)</strong></li><li>分散分析（ANOVA）や回帰分析の有意性検定で使う</li><li>自由度1は <strong>分子（グループ間）</strong>、自由度2は <strong>分母（グループ内）</strong></li><li><strong>新関数 F.DIST.RT と計算結果は完全に同一</strong>。新規ブックでは F.DIST.RT を推奨</li></ul>



<p>p値が0.05未満なら「グループ間に有意な差がある」「モデルは有意」と結論づけられます。計算したF値の意味を読み解くには、対になる <a href="https://mashukabu.com/excel-finv/">FINV関数</a> で臨界F値を求めて比較するのが定石です。</p>



<p>合わせて <a href="https://mashukabu.com/excel-ttest/">TTEST関数</a> や F.TEST 関数を使えば、t検定とF検定の両方をExcelだけで自在にこなせるようになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-fdist/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】LOGINV関数の使い方｜対数正規分布の逆関数で故障時間や株価を分析（旧: LOGNORM.INV）</title>
		<link>https://mashukabu.com/excel-loginv/</link>
					<comments>https://mashukabu.com/excel-loginv/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:30 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[信頼性工学]]></category>
		<category><![CDATA[品質管理]]></category>
		<category><![CDATA[対数正規分布]]></category>
		<category><![CDATA[統計関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6746</guid>

					<description><![CDATA[ExcelのLOGINV関数の使い方を解説します。対数正規分布の累積分布関数の逆関数値を返す関数で、株価・所得分布など右に裾が長いデータの分析や、品質管理におけるMTBF（平均故障時間）の推定に使えます。引数x・mean・standard_deviationの意味、後継関数LOGNORM.INVへの移行方法、LOGNORMDIST・LOGNORM.DISTとの関係まで実例で整理しました。]]></description>
										<content:encoded><![CDATA[
<p>「故障時間が何時間目までに何％の機械が壊れるか知りたい」「株価のばらつきを分布で予想したい」――そんな <strong>右に裾が長いデータ</strong> を扱うときに役立つのが <strong>LOGINV関数</strong> です。</p>



<p>対数正規分布という少し難しい名前の分布ですが、品質管理や金融分析の現場では非常によく登場します。LOGINV関数を使えば、確率を入力するだけで対応する値（時間や金額）を逆算できます。</p>



<p>この記事では、LOGINV関数の構文から、引数の意味、故障時間分析の実例、後継関数LOGNORM.INVへの移行方法、関連関数との使い分けまでをまとめて整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのLOGINV関数とは？</a></li><li><a href="#toc2" tabindex="0">LOGINV関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">実務例1：機械の故障時間を分析する（MTBF推定）</a></li><li><a href="#toc4" tabindex="0">実務例2：株価の分布から想定レンジを推定する</a></li><li><a href="#toc5" tabindex="0">LOGNORM.INV関数（新関数）との違い・使い分け</a><ol><li><a href="#toc6" tabindex="0">使い分けの実務指針</a></li></ol></li><li><a href="#toc7" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc8" tabindex="0">関連関数まとめ</a></li><li><a href="#toc9" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>ExcelのLOGINV関数（読み方：ログインバース）は、<strong>対数正規分布の累積分布関数の逆関数値を返す関数</strong>です。関数名は「<strong>LOG</strong>arithmic <strong>INV</strong>erse（対数の逆関数）」の略です。</p>



<p>ざっくり言うと、「下側からx％の点はどこ？」という質問に答えてくれる関数です。たとえば「故障率10％となる稼働時間」「上位5％に入る所得水準」といった値を、確率から逆算してくれます。</p>



<p>対数正規分布とは、データそのものではなく <strong>そのデータの自然対数を取った値が正規分布に従う</strong> ような分布のことです。0以上の値しか取らず、右に長く裾を引く形になります。次のような場面でよく使われます。</p>



<ul class="wp-block-list"><li>株価や為替レートの変動分布</li><li>所得や資産の分布（ピケティ分析でもおなじみ）</li><li>機械や電子部品の故障時間（信頼性工学）</li><li>化学反応物質の濃度分布</li></ul>



<p>LOGINV関数は、Excel 2007以前から提供されている <strong>旧式の関数</strong>です。Excel 2010以降では「互換性関数」のグループに分類されています。後継として <strong>LOGNORM.INV関数</strong>（ドット入り）が用意されていますが、LOGINV関数も後方互換性のために引き続き使えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「互換性関数」は古いブックでも問題なく動くように維持されている関数群です。新規作成のワークブックでは新関数（LOGNORM.INV）が推奨されますが、既存のテンプレートやマクロでLOGINVを見かけても、計算結果は新関数とまったく同じです。</p></blockquote>



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



<p>LOGINV関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=LOGINV(x, mean, standard_deviation)</code></pre>



<p>引数は3つで、すべて必須です。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>x</td><td>必須</td><td>求めたい確率値（0より大きく1未満）</td></tr><tr><td>mean</td><td>必須</td><td>ln(x)の平均値（μ）</td></tr><tr><td>standard_deviation</td><td>必須</td><td>ln(x)の標準偏差（σ）。<strong>正の数のみ</strong></td></tr></tbody></table></figure>



<p>戻り値は、対数正規分布の累積確率がxとなるような値（0より大きい実数）です。たとえば <code>x=0.5</code> を指定すると、対数正規分布の中央値（メジアン）が返ります。</p>



<p>ここで注意したいのが、mean と standard_deviation は <strong>元データそのものの平均・標準偏差ではなく、元データの自然対数（ln）を取った値の平均・標準偏差</strong> だという点です。</p>



<pre class="wp-block-code"><code>=LOGINV(0.4, 4, 6)</code></pre>



<p>このように記述すると、ln(x)の平均が4、標準偏差が6の対数正規分布で、累積確率が0.4となる点の値が返ります。</p>



<h2 class="wp-block-heading"><span id="toc3">実務例1：機械の故障時間を分析する（MTBF推定）</span></h2>



<p>工場の生産ラインで使われる電子部品の故障時間を考えてみます。過去の故障データから、故障時間の自然対数の平均が ln(時間)=8、標準偏差が0.5 だとわかっているとします。</p>



<p>「故障率10％（つまり10台に1台が壊れている時点）の稼働時間は何時間か？」を知りたい場合、次の式で逆算できます。</p>



<pre class="wp-block-code"><code>=LOGINV(0.1, 8, 0.5)</code></pre>



<p>このサンプルでは、約1,571時間という値が返ります。つまり「稼働開始から約1,571時間経過する頃には、全体の10％が故障している」と読み取れます。</p>



<p>同じ要領で、信頼性のしきい値を変えながら計算すると保証期間の設計に使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>故障率（x）</th><th>数式</th><th>概算結果（時間）</th></tr></thead><tbody><tr><td>0.05</td><td><code>=LOGINV(0.05, 8, 0.5)</code></td><td>約1,308</td></tr><tr><td>0.10</td><td><code>=LOGINV(0.10, 8, 0.5)</code></td><td>約1,571</td></tr><tr><td>0.50</td><td><code>=LOGINV(0.50, 8, 0.5)</code></td><td>約2,981</td></tr><tr><td>0.90</td><td><code>=LOGINV(0.90, 8, 0.5)</code></td><td>約5,656</td></tr></tbody></table></figure>



<p>中央値（x=0.5）の約2,981時間がいわゆる <strong>MTBF（平均故障間隔）の目安</strong> になります。x=0.9 まで見れば「9割の部品はこの時点までに壊れる」という保証期間の設計判断に使えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>故障時間データから mean と standard_deviation を求めるときは、まずデータごとに <code>=LN(時間)</code> で自然対数を取り、その列に <code>=AVERAGE(...)</code> と <code>=STDEV.S(...)</code> を適用すると簡単です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">実務例2：株価の分布から想定レンジを推定する</span></h2>



<p>株価のリターン分析でも、対数正規分布はおなじみの仮定です。仮にある銘柄の1年後の予想株価について、ln(株価)の平均が7、標準偏差が0.3 と推定されているとします。</p>



<p>「1年後、株価が下位10％に収まるラインはいくらか？」「上位10％（つまり累積確率0.9）まではどこまで上がりうるか？」をLOGINVで計算してみます。</p>



<pre class="wp-block-code"><code>=LOGINV(0.1, 7, 0.3)
=LOGINV(0.9, 7, 0.3)</code></pre>



<p>このサンプルでは、おおよそ <strong>745円〜1,610円</strong> の範囲が「中央80％の想定株価帯」として返ります。リスク管理の現場では、この上限・下限を <strong>VaR（バリュー・アット・リスク）</strong> の参考値として活用します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>standard_deviation に0以下の値を入れると <strong>#NUM!</strong> エラーになります。元データが対数を取った後の値であることを忘れて、マイナスの平均などをそのまま入れないよう注意しましょう。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">LOGNORM.INV関数（新関数）との違い・使い分け</span></h2>



<p>Excel 2010以降では、後継の <strong>LOGNORM.INV関数</strong>（ドット入り）が用意されています。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>LOGINV</th><th>LOGNORM.INV</th></tr></thead><tbody><tr><td>導入時期</td><td>Excel 2007以前から</td><td>Excel 2010以降</td></tr><tr><td>構文</td><td>LOGINV(x, mean, standard_deviation)</td><td>LOGNORM.INV(probability, mean, standard_dev)</td></tr><tr><td>引数の数</td><td>3個</td><td>3個</td></tr><tr><td>計算結果</td><td>同一</td><td>同一</td></tr><tr><td>関数の分類</td><td>互換性関数</td><td>統計関数</td></tr></tbody></table></figure>



<p>引数の名前こそ少しだけ違いますが、<strong>順番も意味もまったく同じ</strong>です。関数名を <code>LOGINV</code> から <code>LOGNORM.INV</code> に書き換えるだけで移行が完了します。</p>



<pre class="wp-block-code"><code>=LOGINV(0.1, 8, 0.5)
=LOGNORM.INV(0.1, 8, 0.5)</code></pre>



<p>上記2つの数式は、まったく同じ値（約1,571）を返します。</p>



<h3 class="wp-block-heading"><span id="toc6">使い分けの実務指針</span></h3>



<ul class="wp-block-list"><li>古いExcel環境（2007以前）と共有する → LOGINV</li><li>自分専用または新しい環境で使う → LOGNORM.INV</li><li>既存ブックの数式を継承する → そのまま変更不要</li></ul>



<p>Microsoft公式は新関数（LOGNORM.INV）を推奨していますが、LOGINVが将来削除される予定もないので、安心して使えます。テンプレートを統一したいときは、置換機能で <code>LOGINV(</code> を <code>LOGNORM.INV(</code> にまとめて変換するのが手軽です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#NUM!</code></td><td>x ≤ 0 または x ≥ 1 を指定した</td><td>xは <strong>0より大きく1未満</strong> の確率値にする</td></tr><tr><td><code>#NUM!</code></td><td>standard_deviation に0以下を指定した</td><td>σは <strong>正の数</strong> のみ受け付ける</td></tr><tr><td><code>#VALUE!</code></td><td>x、mean、standard_deviation のいずれかが数値以外（文字列など）</td><td>すべて数値で指定する。文字列が入っていないかセルを確認</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td><code>LOGINV</code> のスペルを再確認。古いExcelでは利用できない可能性あり</td></tr></tbody></table></figure>



<p>特に多いのが、確率xに「100」や「90」のようにパーセント表記の整数を入れてしまうケースです。xには <strong>0.1（10％）や 0.9（90％）</strong> のように小数で渡してください。または <code>10%</code> のようにパーセント記号付きで入力してもOKです。</p>



<h2 class="wp-block-heading"><span id="toc8">関連関数まとめ</span></h2>



<p>LOGINV関数の周辺には、対数正規分布を扱う関数がいくつかあります。混同しやすいので役割を整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th><th>入出力</th></tr></thead><tbody><tr><td>LOGINV</td><td>対数正規分布の累積分布関数の逆関数（旧）</td><td>確率→値</td></tr><tr><td>LOGNORM.INV</td><td>同上（新関数）</td><td>確率→値</td></tr><tr><td><a href="https://mashukabu.com/excel-lognormdist/">LOGNORMDIST</a></td><td>対数正規分布の累積確率を返す（旧）</td><td>値→確率</td></tr><tr><td>LOGNORM.DIST</td><td>対数正規分布の確率密度・累積確率を返す（新）</td><td>値→確率</td></tr></tbody></table></figure>



<p>関係性をひと言でまとめると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>値から確率を求めたい</strong> → LOGNORMDIST または LOGNORM.DIST</li><li><strong>確率から値を求めたい</strong> → LOGINV または LOGNORM.INV</li></ul>



<p>つまり、LOGINV と LOGNORMDIST は互いに <strong>逆関数の関係</strong> になっています。たとえば <code>=LOGNORMDIST(1571, 8, 0.5)</code> の結果は約0.1となり、先ほどの <code>=LOGINV(0.1, 8, 0.5)</code> ≒ 1,571 と整合します。</p>



<p>正規分布の方が手に馴染んでいる方は、まず <a href="https://mashukabu.com/excel-normdist/">NORMDIST関数</a> や <a href="https://mashukabu.com/excel-norminv/">NORMINV関数</a> で正規分布の感覚をつかんでから、対数を取った世界として対数正規分布を捉えると理解が早いです。</p>



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



<p>ExcelのLOGINV関数は、対数正規分布の累積確率を入力するだけで、対応する値を逆算できる便利な関数です。要点を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=LOGINV(x, mean, standard_deviation)</code></li><li><strong>xは0より大きく1未満</strong> の確率値で指定する</li><li><strong>mean・standard_deviationは元データの自然対数（ln）を取った値</strong> の平均・標準偏差</li><li><strong>standard_deviationは正の数のみ</strong>。ゼロや負の値は #NUM! エラー</li><li><strong>新関数 LOGNORM.INV と引数の数も計算結果も完全に同一</strong>。新規ブックでは LOGNORM.INV を推奨</li></ul>



<p>故障時間の保証期間設計、株価の想定レンジ算定、所得分布のパーセンタイル分析など、右に裾が長いデータを扱うあらゆる現場で活躍します。「下から○％の点はどこ？」という問いに答えたいときに、まず思い出してほしい関数です。</p>



<p>合わせて <a href="https://mashukabu.com/excel-lognormdist/">LOGNORMDIST関数</a> と組み合わせれば、確率と値を双方向に変換できるようになり、対数正規分布まわりの分析を自在に扱えるようになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-loginv/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】WRAPCOLS関数の使い方｜1列のリストを複数列のグリッドに整形する</title>
		<link>https://mashukabu.com/excel-wrapcols/</link>
					<comments>https://mashukabu.com/excel-wrapcols/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:23 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[WRAPCOLS]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[配列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6744</guid>

					<description><![CDATA[ExcelのWRAPCOLS関数の使い方を解説します。1列に並んだリストを縦方向に折り返して複数列のグリッドに整形できる新関数で、商品リストの一覧表示や名簿の体裁整えに便利です。構文と引数（vector・wrap_count・pad_with）の使い方、WRAPROWSとの違い、Microsoft 365 / Excel 2024 でのバージョン対応、関連関数（TOCOL・TOROW・SEQUENCE）との組み合わせまで実例で整理しました。]]></description>
										<content:encoded><![CDATA[
<p>「メンバー名簿が縦1列にずらっと並んでいて、3列のグリッドに整形して見やすくしたい」「商品コードのリストを縦長の1列から複数列のレイアウトに変えたい」と思ったことはありませんか？</p>



<p>そんなときに便利なのが、Microsoft 365 と Excel 2024 で使える <strong>WRAPCOLS関数</strong> です。1列の配列を指定した行数で <strong>縦方向に折り返して</strong> 2次元の配列に整形してくれます。スピル機能と組み合わせれば、数式ひとつでレイアウトを一瞬で変更できます。</p>



<p>この記事では、WRAPCOLS関数の構文から、商品リストや名簿を複数列のグリッドに整形する実例、pad_with引数の使い方、WRAPROWSとの違い、バージョン対応の注意点までをまとめて整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのWRAPCOLS関数とは？</a></li><li><a href="#toc2" tabindex="0">WRAPCOLS関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">WRAPCOLS関数の動作イメージ</a></li><li><a href="#toc4" tabindex="0">実務例1：商品リストを3列のグリッドに整形する</a></li><li><a href="#toc5" tabindex="0">実務例2：pad_with引数で端数セルを埋める</a></li><li><a href="#toc6" tabindex="0">実務例3：SEQUENCE関数と組み合わせて連番グリッドを作る</a></li><li><a href="#toc7" tabindex="0">WRAPCOLSとWRAPROWSの違い</a></li><li><a href="#toc8" tabindex="0">バージョン対応の注意点</a></li><li><a href="#toc9" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc10" tabindex="0">関連関数</a></li><li><a href="#toc11" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>ExcelのWRAPCOLS関数（読み方：ラップコルズ）は、<strong>1次元配列の要素を縦方向に折り返して2次元配列に整形する関数</strong>です。関数名は「<strong>Wrap</strong>（折り返す）+ <strong>Cols</strong>（列）」の略で、文字どおり「列方向に折り返す」動作をイメージするとわかりやすいです。</p>



<p>ざっくり言うと、縦1列または横1行に並んだデータを渡すと、指定した数で <strong>上から下へ折り返し</strong>、次の列へ移ってまた上から下へ、というふうに2次元のグリッド配列を返してくれる関数です。スピル対応なので、数式を1つのセルに入れるだけで結果が複数のセルに自動展開されます。</p>



<p>WRAPCOLS関数は、Microsoft 365 と Excel 2024 で導入された <strong>比較的新しい関数</strong> です。Excel 2021 以前のバージョンでは利用できないので、共有先の環境にも注意が必要です（後述）。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「スピル（spill）」とは、1つの数式の結果が複数のセルに自動的に展開される機能のことです。WRAPCOLS関数は2次元配列を返すため、結果が縦横に広がります。展開先のセルに既存データがあると <code>#SPILL!</code> エラーになるので、出力範囲は空けておきましょう。</p></blockquote>



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



<p>WRAPCOLS関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(vector, wrap_count, [pad_with])</code></pre>



<p>引数は3つで、最後の pad_with は省略可能です。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>vector</td><td>必須</td><td>折り返す1次元配列またはセル参照（縦1列または横1行）</td></tr><tr><td>wrap_count</td><td>必須</td><td>各列に入れる要素数（1以上の整数）</td></tr><tr><td>pad_with</td><td>任意</td><td>端数セルを埋める値（省略時は <code>#N/A</code>）</td></tr></tbody></table></figure>



<p>戻り値は2次元配列です。要素数が wrap_count で割り切れない場合、最後の列の余ったセルは pad_with で指定した値で埋められます。pad_with を省略すると <code>#N/A</code> になります。</p>



<h2 class="wp-block-heading"><span id="toc3">WRAPCOLS関数の動作イメージ</span></h2>



<p>WRAPCOLS関数は、要素を <strong>上から下へ</strong> 順番に配置していきます。wrap_count に達したら次の列に移り、また上から下へ配置する、という動きです。</p>



<p>例えば、A2:F2 に「1, 2, 3, 4, 5, 6」という6個の値が横に並んでいるとします。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A2:F2, 3)</code></pre>



<p>この数式は、6個の要素を「3個ずつ縦に並べる」ので、結果は次のような2列×3行の配列になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th></tr></thead><tbody><tr><td>1</td><td>4</td></tr><tr><td>2</td><td>5</td></tr><tr><td>3</td><td>6</td></tr></tbody></table></figure>



<p>「1, 2, 3」が1列目に縦に並び、続く「4, 5, 6」が2列目に縦に並んでいることがわかります。これがWRAPCOLSの基本動作です。</p>



<h2 class="wp-block-heading"><span id="toc4">実務例1：商品リストを3列のグリッドに整形する</span></h2>



<p>縦1列に並んだ商品名のリストを、3列のグリッドに整形してみます。例えば、A2:A10 に商品名が縦に9個並んでいるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（商品名）</th></tr></thead><tbody><tr><td>ノートPC</td></tr><tr><td>キーボード</td></tr><tr><td>マウス</td></tr><tr><td>モニター</td></tr><tr><td>USBハブ</td></tr><tr><td>Webカメラ</td></tr><tr><td>ヘッドセット</td></tr><tr><td>外付けSSD</td></tr><tr><td>電源タップ</td></tr></tbody></table></figure>



<p>このリストを「3行×3列のグリッド」に整形するには、空いているセル（例: C2）に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A2:A10, 3)</code></pre>



<p>スピル機能で結果が自動展開され、次のような2次元配列が表示されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th></tr></thead><tbody><tr><td>ノートPC</td><td>モニター</td><td>ヘッドセット</td></tr><tr><td>キーボード</td><td>USBハブ</td><td>外付けSSD</td></tr><tr><td>マウス</td><td>Webカメラ</td><td>電源タップ</td></tr></tbody></table></figure>



<p>要素を上から下へ3つずつ縦に並べ、終わったら次の列へ、という動きで整形されます。リストの体裁を変えるためにコピペで並び替える手間が、数式ひとつで解消されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>商品リストや名簿を <strong>印刷用に整形</strong> する場面では、WRAPCOLSが特に便利です。1列のデータを複数列に折り返すだけで、A4用紙の幅を有効活用したレイアウトが瞬時に作れます。元データを書き換えれば結果も自動で更新されるので、メンテナンスもラクです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">実務例2：pad_with引数で端数セルを埋める</span></h2>



<p>要素数が wrap_count で割り切れないと、最後の列に「余り」が出ます。このとき、pad_with引数で何を入れるかを指定できます。</p>



<p>例えば、A2:G2 に「1, 2, 3, 4, 5, 6, 7」の7個の値があるとします。これを wrap_count=3 で折り返すと、3行×3列のうち最後の1セルが余ります。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A2:G2, 3, &quot;x&quot;)</code></pre>



<p>結果は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th></tr></thead><tbody><tr><td>1</td><td>4</td><td>7</td></tr><tr><td>2</td><td>5</td><td>x</td></tr><tr><td>3</td><td>6</td><td>x</td></tr></tbody></table></figure>



<p>最後の列の余った2セルが「x」で埋められています。pad_with を省略すると、これらのセルは <code>#N/A</code> になります。</p>



<p>実務では、文字列なら <code>""</code>（空文字）や <code>"-"</code>、数値なら <code>0</code> などを指定して、見た目を整えるのが定番です。空欄にしたい場合は <code>""</code> を渡すのがおすすめです。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(A2:G2, 3, &quot;&quot;)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>pad_with を省略すると <code>#N/A</code> がそのまま表示されます。集計や印刷の体裁を整えたいときは、必ず <code>""</code> や <code>0</code> などのプレースホルダーを指定しましょう。<code>#N/A</code> を後から IFERROR でラップする方法もありますが、最初から pad_with を指定するほうがシンプルです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">実務例3：SEQUENCE関数と組み合わせて連番グリッドを作る</span></h2>



<p>WRAPCOLSは、他のスピル対応関数と組み合わせると応用範囲が広がります。例えば、SEQUENCE関数で連番を生成し、WRAPCOLSでグリッドに整形する組み合わせは便利です。</p>



<p>「1〜12を3行×4列のグリッドに整形する」場合、次のように書きます。</p>



<pre class="wp-block-code"><code>=WRAPCOLS(SEQUENCE(12), 3)</code></pre>



<p>SEQUENCE(12) で「1, 2, 3, &#8230;, 12」の縦1列の配列を作り、それをWRAPCOLSで3行ずつ縦に折り返します。結果は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th><th>列4</th></tr></thead><tbody><tr><td>1</td><td>4</td><td>7</td><td>10</td></tr><tr><td>2</td><td>5</td><td>8</td><td>11</td></tr><tr><td>3</td><td>6</td><td>9</td><td>12</td></tr></tbody></table></figure>



<p>カレンダーの日付や、行番号付きのテンプレートを動的に作りたいときに重宝します。</p>



<h2 class="wp-block-heading"><span id="toc7">WRAPCOLSとWRAPROWSの違い</span></h2>



<p>WRAPCOLSとよく似た関数に <strong>WRAPROWS</strong> があります。引数構成も同じで、見た目もそっくりです。違いは「折り返しの方向」だけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>WRAPCOLS</th><th>WRAPROWS</th></tr></thead><tbody><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>wrap_countの意味</td><td>各列の要素数（=行数）</td><td>各行の要素数（=列数）</td></tr></tbody></table></figure>



<p>例えば「1, 2, 3, 4, 5, 6」を wrap_count=3 で折り返した場合、結果は次のように違います。</p>



<p><strong>WRAPCOLS（縦に折り返す）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th></tr></thead><tbody><tr><td>1</td><td>4</td></tr><tr><td>2</td><td>5</td></tr><tr><td>3</td><td>6</td></tr></tbody></table></figure>



<p><strong>WRAPROWS（横に折り返す）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>列1</th><th>列2</th><th>列3</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</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>迷ったら「結果を <strong>縦長</strong> にしたいか <strong>横長</strong> にしたいか」で選ぶと判断しやすいです。商品リストを縦に並べたいなら WRAPCOLS、データを横に並べた表にしたいなら WRAPROWS、と覚えておきましょう。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">バージョン対応の注意点</span></h2>



<p>WRAPCOLS関数は、利用できるバージョンが限られています。導入前に環境を確認しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>環境</th><th>対応状況</th></tr></thead><tbody><tr><td>Microsoft 365（サブスクリプション版）</td><td>対応</td></tr><tr><td>Excel 2024（買い切り版）</td><td>対応</td></tr><tr><td>Excel 2021 / 2019 / 2016 / 2013</td><td>非対応</td></tr><tr><td>Excel for the web</td><td>対応</td></tr><tr><td>Excel Mobile（iOS/Android）</td><td>対応</td></tr></tbody></table></figure>



<p>Excel 2021以前のバージョンでは、WRAPCOLSという関数自体が存在しないため <code>#NAME?</code> エラーになります。古い環境のユーザーとファイルを共有する場合は、以下の代替方法を検討しましょう。</p>



<ul class="wp-block-list"><li>INDEX関数 + ROW・COLUMN関数で手動配置する</li><li>Power Query で配列を整形する</li><li>VBAマクロで対応する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>WRAPCOLSを使った数式が入ったブックを Excel 2021 以前で開くと <code>#NAME?</code> エラーになります。共有先の環境がわからない場合は、結果を「値貼り付け」で確定してから渡すのが安全です。</p></blockquote>



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



<p>WRAPCOLS関数で発生しやすいエラーをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>vector に2次元配列を指定した</td><td>1次元配列（縦1列または横1行）を指定する</td></tr><tr><td><code>#NUM!</code></td><td>wrap_count が 1 未満（0 や負の数）</td><td>wrap_count に 1 以上の整数を指定する</td></tr><tr><td><code>#N/A</code></td><td>端数セルで pad_with を省略した</td><td>pad_with に <code>""</code> や <code>0</code> などを指定する</td></tr><tr><td><code>#NAME?</code></td><td>Excel 2021以前で WRAPCOLS を使った</td><td>Microsoft 365 / Excel 2024 にアップグレードする</td></tr><tr><td><code>#SPILL!</code></td><td>スピル先のセルにデータが入っている</td><td>出力範囲のセルを空にする</td></tr></tbody></table></figure>



<p>特に多いのが、すでに2次元配列のデータ（複数行×複数列のセル範囲）を vector に渡してしまう <code>#VALUE!</code> エラーです。WRAPCOLSは <strong>1次元配列専用</strong> の関数なので、もし2次元データを1列に並べ直したい場合は、先に TOCOL関数 で1列に変換してから WRAPCOLS にかける、という二段構えが有効です。</p>



<h2 class="wp-block-heading"><span id="toc10">関連関数</span></h2>



<p>WRAPCOLSと組み合わせて使うことが多い関数を整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-wraprows/">WRAPROWS</a></td><td>1次元配列を行方向（横）に折り返して2次元配列にする</td></tr><tr><td>TOCOL</td><td>2次元配列を縦1列の1次元配列に変換する</td></tr><tr><td>TOROW</td><td>2次元配列を横1行の1次元配列に変換する</td></tr><tr><td>SEQUENCE</td><td>連続する数値の配列を生成する</td></tr><tr><td>CHOOSECOLS</td><td>配列から指定した列だけを抽出する</td></tr><tr><td>CHOOSEROWS</td><td>配列から指定した行だけを抽出する</td></tr></tbody></table></figure>



<p>「2次元データを1列に並べ直してから、別の形に折り返す」流れでは、TOCOL関数 → WRAPCOLSの組み合わせが定番です。逆に、横方向に折り返したいときは <a href="https://mashukabu.com/excel-wraprows/">WRAPROWS関数</a> を使います。連番のグリッドを作るときは SEQUENCE関数 との合わせ技が便利です。</p>



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



<p>ExcelのWRAPCOLS関数は、1列のリストを複数列のグリッドに整形できる便利な関数です。要点を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=WRAPCOLS(vector, wrap_count, [pad_with])</code></li><li><strong>動作</strong>: 1次元配列を <strong>上から下へ</strong> 折り返し、次の列へ移っていく</li><li><strong>wrap_count</strong>: 各列の要素数（=折り返したときの行数）を指定</li><li><strong>pad_with</strong>: 端数セルを埋める値（省略時は <code>#N/A</code>）</li><li><strong>対応環境</strong>: Microsoft 365 / Excel 2024 のみ（Excel 2021以前は非対応）</li></ul>



<p>商品リスト・名簿・連番テンプレートなど、1列のデータを見やすいグリッドに整形したいシーンで活躍します。元データを変更すれば結果も自動で更新されるため、繰り返し使う帳票やダッシュボードのレイアウト整形にも向いています。</p>



<p>横方向に折り返したい場合は <a href="https://mashukabu.com/excel-wraprows/">WRAPROWS関数</a> を、2次元データを先に1列にまとめたい場合は TOCOL関数 を組み合わせると、配列操作の幅がぐっと広がります。連番グリッドを作るなら SEQUENCE関数 との組み合わせもおすすめです。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-wrapcols/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】MODE.SNGL関数の使い方｜最頻値を1つ返す（旧MODE関数の後継）</title>
		<link>https://mashukabu.com/excel-mode-sngl/</link>
					<comments>https://mashukabu.com/excel-mode-sngl/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:18 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[中心傾向]]></category>
		<category><![CDATA[最頻値]]></category>
		<category><![CDATA[統計関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6742</guid>

					<description><![CDATA[ExcelのMODE.SNGL関数の使い方を解説します。データセットの中で最も頻繁に出現する数値（最頻値）を1つだけ返す関数で、月次販売数量の代表値や顧客評価の人気スコアを把握するのに使えます。MODE関数からの移行ポイント、MODE.MULTとの使い分け、平均・中央値との違い、#N/Aエラーの対処法までまとめました。]]></description>
										<content:encoded><![CDATA[
<p>「先月いちばん売れた個数はいくつ？」「アンケートで一番多かった評価点は？」と聞かれたとき、平均値（AVERAGE）でも中央値（MEDIAN）でも答えにくいことがあります。求められているのは「最も多く出てきた値」、つまり最頻値です。</p>



<p>そこで使うのが <strong>MODE.SNGL関数</strong> です。データセットの中で最も頻繁に出現する数値を1つだけ返してくれる、シンプルで実用性の高い関数です。</p>



<p>この記事では、MODE.SNGL関数の構文から、旧MODE関数からの移行ポイント、MODE.MULTとの使い分け、よくあるエラーの対処法まで、実例を交えて整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのMODE.SNGL関数とは？</a></li><li><a href="#toc2" tabindex="0">MODE.SNGL関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">実務例：月次販売数量の最頻値を求める</a></li><li><a href="#toc4" tabindex="0">MODE関数からMODE.SNGLへの移行</a></li><li><a href="#toc5" tabindex="0">MODE.MULTとの使い分け</a><ol><li><a href="#toc6" tabindex="0">MODE.SNGLを選ぶケース</a></li><li><a href="#toc7" tabindex="0">MODE.MULTを選ぶケース</a></li></ol></li><li><a href="#toc8" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc9" tabindex="0">関連する統計関数</a></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのMODE.SNGL関数とは？</span></h2>



<p>ExcelのMODE.SNGL関数（読み方：モード・シングル）は、<strong>データセットの中で最も頻繁に出現する単一の数値（最頻値）を返す関数</strong>です。関数名は「<strong>MODE</strong>（最頻値）＋<strong>SNGL</strong>（Single：単一）」の組み合わせで、「単一の最頻値」を意味します。</p>



<p>たとえば 5.6, 4, 4, 3, 2, 4 というデータでは、4が3回登場して最も多いため、戻り値は <strong>4</strong> になります。データの「最も典型的な値」を一発で取得できる関数です。</p>



<p>中心傾向（データの真ん中らしさ）を表す代表的な指標は3つあり、MODE.SNGLはそのうちの1つです。</p>



<figure class="wp-block-table"><table><thead><tr><th>指標</th><th>関数</th><th>意味</th></tr></thead><tbody><tr><td>平均値</td><td>AVERAGE</td><td>データの合計÷個数</td></tr><tr><td>中央値</td><td>MEDIAN</td><td>データを並べた真ん中の値</td></tr><tr><td>最頻値</td><td>MODE.SNGL</td><td>最も頻繁に出現する値</td></tr></tbody></table></figure>



<p>外れ値の影響を受けやすい平均、順位中心の中央値に対し、最頻値は「人気度合い」「典型例」を捉えるのに向いています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MODE.SNGLはExcel 2010で追加された関数です。それ以前のMODE関数の後継として登場しました。Excel 2010以降のMac版・Windows版で利用できます。</p></blockquote>



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



<p>MODE.SNGL関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=MODE.SNGL(数値1, [数値2], ...)</code></pre>



<p>引数の仕様を表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>数値1</td><td>必須</td><td>最頻値を求めたい1つ目の数値またはセル範囲</td></tr><tr><td>数値2, &#8230;</td><td>任意</td><td>2つ目以降の数値またはセル範囲（最大254個まで指定可）</td></tr></tbody></table></figure>



<p>戻り値は <strong>単一の数値</strong> です。データセットの中で最も多く登場する値が返ります。</p>



<p>引数に指定したセルのうち、テキスト・論理値・空白セルは無視されます。ただし数値の <strong>0（ゼロ）</strong> はカウント対象になるので注意してください。また、引数にエラー値が含まれていると、そのままエラーが返ります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>同じ最頻度の値が複数ある場合（同率最多）、MODE.SNGLは <strong>最初に現れた値</strong> を返します。すべての同率最多値を取得したい場合は <a href="https://mashukabu.com/excel-mode-mult/">MODE.MULT関数</a> を使ってください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc3">実務例：月次販売数量の最頻値を求める</span></h2>



<p>ある商品の1か月間の日別販売数量を集計してみます。データはA店舗で記録した10日分です。</p>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>販売数量</th></tr></thead><tbody><tr><td>6/1</td><td>12</td></tr><tr><td>6/2</td><td>15</td></tr><tr><td>6/3</td><td>12</td></tr><tr><td>6/4</td><td>8</td></tr><tr><td>6/5</td><td>12</td></tr><tr><td>6/6</td><td>18</td></tr><tr><td>6/7</td><td>10</td></tr><tr><td>6/8</td><td>12</td></tr><tr><td>6/9</td><td>15</td></tr><tr><td>6/10</td><td>12</td></tr></tbody></table></figure>



<p>販売数量が B2:B11 に入っているとします。</p>



<pre class="wp-block-code"><code>=MODE.SNGL(B2:B11)</code></pre>



<p>戻り値は <strong>12</strong> です。10日のうち5日で販売数量が12個だったため、これが最頻値となります。</p>



<p>参考に平均と中央値も並べてみると、それぞれ次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>指標</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>平均</td><td><code>=AVERAGE(B2:B11)</code></td><td>12.6</td></tr><tr><td>中央値</td><td><code>=MEDIAN(B2:B11)</code></td><td>12</td></tr><tr><td>最頻値</td><td><code>=MODE.SNGL(B2:B11)</code></td><td>12</td></tr></tbody></table></figure>



<p>平均は12.6ですが、最頻値は12。在庫補充の初期発注量を決めるとき、「平均の13個」よりも「最頻値の12個」のほうが日常需要に近いと判断できる場面があります。これが最頻値を見るメリットです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>平均は外れ値（たとえば6/6の18個）に引きずられやすい指標です。「日常的にいくつ売れているか」を知りたいときは、平均と最頻値を両方確認すると判断の精度が上がります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">MODE関数からMODE.SNGLへの移行</span></h2>



<p>Excel 2007以前から使われていた <strong>MODE関数</strong> は、MODE.SNGLの旧バージョンに相当します。Excel 2010以降ではMODE関数も互換性関数として残されており、現在も使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>MODE</th><th>MODE.SNGL</th></tr></thead><tbody><tr><td>導入時期</td><td>Excel 2007以前</td><td>Excel 2010以降</td></tr><tr><td>引数の最大数</td><td>255個</td><td>254個</td></tr><tr><td>関数の分類</td><td>互換性関数</td><td>統計関数</td></tr><tr><td>計算結果</td><td>同一</td><td>同一</td></tr><tr><td>Microsoft推奨</td><td>—</td><td>こちらが推奨</td></tr></tbody></table></figure>



<p>計算結果はまったく同じです。引数の最大数だけ細かな違いがあります（実務上、255個も254個も誤差です）。新規ブックでは MODE.SNGL を使うのが推奨されますが、既存ブックで MODE を見かけても結果に影響はありません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>MODE関数からMODE.SNGLへの移行は <strong>関数名を書き換えるだけ</strong> で済みます。<code>=MODE(B2:B11)</code> を <code>=MODE.SNGL(B2:B11)</code> に変えれば、同じ結果が返ります。引数の指定方法も同じなので、置換作業もシンプルです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">MODE.MULTとの使い分け</span></h2>



<p>MODE系の関数は、戻り値の数で MODE.SNGL と MODE.MULT に分かれます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>戻り値</th><th>同率最多があるとき</th><th>こんな場面で使う</th></tr></thead><tbody><tr><td>MODE.SNGL</td><td>1つ</td><td>最初の値だけ</td><td>最頻値を1つだけ知りたい</td></tr><tr><td><a href="https://mashukabu.com/excel-mode-mult/">MODE.MULT</a></td><td>複数（配列）</td><td>すべて返す</td><td>同率1位を漏らさず取得したい</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">MODE.SNGLを選ぶケース</span></h3>



<ul class="wp-block-list"><li>売れ筋商品の代表的な販売数を1つだけ表示したい</li><li>アンケート結果のサマリーを1セルにまとめたい</li><li>ダッシュボードで「最頻値」を簡潔に見せたい</li></ul>



<h3 class="wp-block-heading"><span id="toc7">MODE.MULTを選ぶケース</span></h3>



<ul class="wp-block-list"><li>アンケート評価で同率1位がある可能性が高い</li><li>同点トップを全部抜き出して詳しく分析したい</li><li>「最頻値が1つとは限らない」前提でレポートを作る</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>MODE.SNGLは同率最多があっても1つしか返さないため、「実は同率1位が他にもあった」事実が見落とされることがあります。重要な意思決定に使う場合は、<code>=COUNTIF(範囲, MODE.SNGL(範囲))</code> で最頻値の出現回数を確認し、必要に応じて <a href="https://mashukabu.com/excel-mode-mult/">MODE.MULT関数</a> と併用しましょう。</p></blockquote>



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



<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>データを確認。IFERRORで代替表示</td></tr><tr><td><code>#VALUE!</code></td><td>引数にエラー値が含まれている／範囲指定が不正</td><td>範囲内のエラーを除去してから再計算</td></tr><tr><td><code>#NUM!</code></td><td>データ数が極端に少ない</td><td>引数に有効な数値を2つ以上含める</td></tr><tr><td><code>#NAME?</code></td><td>Excel 2007以前で実行している</td><td>Excel 2010以降を使うか MODE 関数で代替</td></tr></tbody></table></figure>



<p>特に多いのが <strong>#N/A</strong> エラーです。これは「データに重複する値が1つもない（全員バラバラ）」場合に表示されます。最頻値そのものが定義できないため、関数として答えを返せないのです。</p>



<pre class="wp-block-code"><code>=IFERROR(MODE.SNGL(B2:B11), &quot;重複なし&quot;)</code></pre>



<p>このように IFERROR関数 で囲っておけば、#N/A の代わりに「重複なし」と表示でき、レポートが見やすくなります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>#N/A が返ること自体が「データの多様性が高い」というインサイトでもあります。「みんなバラバラの回答だった」という事実は、ビジネス判断の上では重要な情報になることもあります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">関連する統計関数</span></h2>



<p>中心傾向や頻度の分析では、MODE.SNGL以外にもよく使う関数があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-mode-mult/">MODE.MULT</a></td><td>同率最多の最頻値を全て配列で返す</td></tr><tr><td>MODE</td><td>旧来の最頻値関数（互換性関数）</td></tr><tr><td>AVERAGE</td><td>算術平均を求める</td></tr><tr><td>MEDIAN</td><td>中央値を求める</td></tr><tr><td>COUNTIF</td><td>特定の値の出現回数を数える</td></tr><tr><td>FREQUENCY</td><td>度数分布を求める</td></tr></tbody></table></figure>



<p>「最頻値の出現回数を一緒に確認したい」場合は、<code>=COUNTIF(B2:B11, MODE.SNGL(B2:B11))</code> のように COUNTIF関数 と組み合わせると便利です。最頻値が「圧倒的に多い」のか「ぎりぎり1位」なのかが見えてきます。</p>



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



<p>ExcelのMODE.SNGL関数は、データセットの最頻値を1つだけ返すシンプルな関数です。要点を整理しておきます。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=MODE.SNGL(数値1, [数値2], ...)</code></li><li><strong>戻り値</strong>: 最も頻繁に出現する単一の数値</li><li><strong>同率最多があるとき</strong>: 最初に現れた値を返す</li><li><strong>テキスト・論理値・空白は無視</strong>、ゼロはカウント対象</li><li><strong>重複値が1つもないと #N/A</strong> が返る</li><li><strong>MODE関数からの置き換え</strong> はそのまま可能（結果は同一）</li></ul>



<p>販売数量・評価点・回答件数など「最も多かった値」を一発で出したい場面で、MODE.SNGLは最も手軽な選択肢です。同率1位を漏らさず把握したいときは <a href="https://mashukabu.com/excel-mode-mult/">MODE.MULT関数</a> に切り替えましょう。</p>



<p>データの「真ん中」を多角的に捉えるには、MODE.SNGLだけでなく AVERAGE関数 と MEDIAN関数 も並べて確認するのがおすすめです。3つの値が大きく食い違っているときは、データに偏りや外れ値がある可能性が高く、ビジネス判断の前にデータの分布を確認するきっかけになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-mode-sngl/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】STDEV関数の使い方｜標本標準偏差で売上やテスト点のバラつきを測る（旧: STDEV.S）</title>
		<link>https://mashukabu.com/excel-stdev/</link>
					<comments>https://mashukabu.com/excel-stdev/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:11 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[データ分析]]></category>
		<category><![CDATA[標本]]></category>
		<category><![CDATA[標準偏差]]></category>
		<category><![CDATA[統計関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6740</guid>

					<description><![CDATA[ExcelのSTDEV関数の使い方を解説します。標本データから標準偏差を推定する関数で、売上やテスト点のバラつき分析に使えます。n-1法（不偏分散）の意味、STDEV.S・STDEV.P・STDEVAとの使い分け早見表、新関数STDEV.Sへの移行方法、空白セルや論理値の扱い、よくあるエラーまで実例で整理しました。]]></description>
										<content:encoded><![CDATA[
<p>「先月の売上のバラつきはどれくらい？」「テストの平均点は同じだけど、点数のばらけ方は？」――そんなデータの <strong>散らばり具合</strong> を一発で測れるのが <strong>STDEV関数</strong> です。</p>



<p>ただ、Excelには似た名前の関数が複数あります。STDEV、STDEV.S、STDEV.P、STDEVA…どれを選べばいいのか迷う方も多いはず。実は <strong>「手元にあるのが全データか、それとも一部のサンプルか」</strong> で答えが変わります。</p>



<p>この記事では、STDEV関数の構文から、標本と母集団の違い、月次売上のバラつき計算の実例、関連関数の使い分け早見表、新関数STDEV.Sへの移行方法までをまとめて整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのSTDEV関数とは？</a></li><li><a href="#toc2" tabindex="0">STDEV関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">空白セル・論理値・文字列の扱い</a></li></ol></li><li><a href="#toc4" tabindex="0">実務例1：月次売上のバラつきを計算する</a><ol><li><a href="#toc5" tabindex="0">標準偏差をどう活かすか</a></li></ol></li><li><a href="#toc6" tabindex="0">実務例2：テストの点数のばらつきを比較する</a></li><li><a href="#toc7" tabindex="0">STDEV.S・STDEV.P・STDEVAの使い分け早見表</a><ol><li><a href="#toc8" tabindex="0">「標本」と「母集団」の見分け方</a></li></ol></li><li><a href="#toc9" tabindex="0">STDEV.S関数（新関数）への移行方法</a><ol><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></li></ol>
    </div>
  </div>

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



<p>ExcelのSTDEV関数（読み方：スタンダードディビエーション）は、<strong>標本データに基づいて標準偏差を推定する関数</strong>です。関数名は「<strong>ST</strong>andard <strong>DEV</strong>iation（標準偏差）」の略です。</p>



<p>ざっくり言うと、データのばらけ具合を1つの数値で表してくれる関数です。標準偏差が大きいほどデータのばらつきが大きく、小さいほど平均値の周りにきれいに集まっていることを意味します。</p>



<p>ここで重要なのが、STDEV関数は <strong>「標本」を前提にしている</strong> という点です。つまり「全国民の身長」のような全データ（母集団）ではなく、「無作為に選んだ100人の身長」のような一部のサンプル（標本）から、母集団全体の標準偏差を推定する目的で使います。</p>



<p>そのため計算式は、よく知られている分散の式の分母を <strong>n（データ数）ではなく n-1</strong> にしています。これを <strong>不偏分散</strong> と呼びます。</p>



<pre class="wp-block-code"><code>s = √(Σ(xi - x̄)² / (n-1))</code></pre>



<p>なぜ n-1 で割るのかは、ざっくり言えば「標本だけで母集団の分散を推定すると、どうしても少なめに出やすい。そこで n-1 で割って少しだけ大きく補正する」というイメージです。実務でデータ分析を行うとき、手元にあるのはたいてい全データではなく標本なので、n-1法（STDEV）の方が安全な選択肢になります。</p>



<p>STDEV関数は、Excel 2007以前から提供されている <strong>旧式の関数</strong>です。Excel 2010以降では「互換性関数」のグループに分類されています。後継として <strong>STDEV.S関数</strong>（ドット入り）が用意されていますが、STDEV関数も後方互換性のために引き続き使えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「互換性関数」は古いブックでも問題なく動くように維持されている関数群です。新規作成のワークブックでは新関数（STDEV.S）が推奨されますが、既存のテンプレートやマクロでSTDEVを見かけても、計算結果は新関数とまったく同じです。</p></blockquote>



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



<p>STDEV関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=STDEV(number1, [number2], ...)</code></pre>



<p>引数は数値または範囲を指定し、最大255個まで渡せます。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>number1</td><td>必須</td><td>標準偏差を求めたい1つ目の値または範囲</td></tr><tr><td>number2, &#8230;</td><td>任意</td><td>2つ目以降の値または範囲（最大255個）</td></tr></tbody></table></figure>



<p>戻り値は0以上の実数で、データのばらつき具合を表す標準偏差です。</p>



<h3 class="wp-block-heading"><span id="toc3">空白セル・論理値・文字列の扱い</span></h3>



<p>STDEV関数は、引数として渡された範囲のうち <strong>空白セル・論理値（TRUE/FALSE）・文字列・エラー値を無視</strong> して計算します。空欄やラベルが混じっていても勝手に飛ばしてくれるので、実務での扱いは楽です。</p>



<p>ただし、<strong>論理値や文字列の「0/1」も計算に含めたい</strong> という特殊な場合は、後述するSTDEVA関数を使います。たとえばアンケートで「はい/いいえ」を1/0として扱いたいケースなどです。</p>



<h2 class="wp-block-heading"><span id="toc4">実務例1：月次売上のバラつきを計算する</span></h2>



<p>ある店舗の月次売上（万円）のサンプルデータで、年間のばらつきを計算してみます。</p>



<figure class="wp-block-table"><table><thead><tr><th>月</th><th>売上（万円）</th></tr></thead><tbody><tr><td>1月</td><td>320</td></tr><tr><td>2月</td><td>280</td></tr><tr><td>3月</td><td>410</td></tr><tr><td>4月</td><td>360</td></tr><tr><td>5月</td><td>390</td></tr><tr><td>6月</td><td>340</td></tr><tr><td>7月</td><td>300</td></tr><tr><td>8月</td><td>250</td></tr><tr><td>9月</td><td>380</td></tr><tr><td>10月</td><td>420</td></tr><tr><td>11月</td><td>460</td></tr><tr><td>12月</td><td>510</td></tr></tbody></table></figure>



<p>売上データが B2:B13 に入っているとします。年間のバラつき（標本標準偏差）は次の式で計算します。</p>



<pre class="wp-block-code"><code>=STDEV(B2:B13)
=AVERAGE(B2:B13)</code></pre>



<p>このサンプルでは、平均は約368万円、標準偏差はおよそ75万円となります。つまり「平均368万円に対して、月によっておおむね±75万円ほどブレている」と読み取れます。</p>



<h3 class="wp-block-heading"><span id="toc5">標準偏差をどう活かすか</span></h3>



<p>標準偏差そのものを単独で見るより、<strong>変動係数（標準偏差÷平均）</strong> に直すと比較がしやすくなります。</p>



<pre class="wp-block-code"><code>=STDEV(B2:B13)/AVERAGE(B2:B13)</code></pre>



<p>このサンプルでは約0.20（20％）となります。「平均に対して20％くらいの変動幅がある」と表現できれば、店舗間や年間の比較もしやすくなります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>売上のバラつきが大きすぎる場合は、季節要因（年末商戦・夏枯れなど）が混じっている可能性があります。月別の前年同月比に直してから標準偏差を取ると、純粋な変動の大きさが見えてきます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">実務例2：テストの点数のばらつきを比較する</span></h2>



<p>クラスAとクラスBで、同じテストの点数のバラつきを比べてみます。両クラスとも10人ずつのサンプルです。</p>



<figure class="wp-block-table"><table><thead><tr><th>クラスA</th><th>クラスB</th></tr></thead><tbody><tr><td>70</td><td>65</td></tr><tr><td>72</td><td>80</td></tr><tr><td>68</td><td>90</td></tr><tr><td>75</td><td>55</td></tr><tr><td>71</td><td>70</td></tr><tr><td>73</td><td>85</td></tr><tr><td>69</td><td>50</td></tr><tr><td>74</td><td>75</td></tr><tr><td>70</td><td>95</td></tr><tr><td>78</td><td>60</td></tr></tbody></table></figure>



<p>クラスAが B2:B11、クラスBが C2:C11 に入っているとします。</p>



<pre class="wp-block-code"><code>=STDEV(B2:B11)
=STDEV(C2:C11)</code></pre>



<p>このサンプルでは、クラスAの標準偏差はおよそ3.0、クラスBはおよそ15.5 となります。両クラスの平均点は同じ72点くらいですが、<strong>クラスBの方が圧倒的にバラついている</strong>（できる子とできない子の差が大きい）と一目でわかります。</p>



<p>平均だけ見ると同じクラスでも、標準偏差を見れば指導方針の違いが必要なことがすぐ判別できる、というのが標準偏差の威力です。</p>



<h2 class="wp-block-heading"><span id="toc7">STDEV.S・STDEV.P・STDEVAの使い分け早見表</span></h2>



<p>Excelには標準偏差を計算する関数がいくつかあります。混同しやすいので一覧で整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>対象</th><th>計算式</th><th>文字列・論理値</th><th>用途</th></tr></thead><tbody><tr><td>STDEV</td><td>標本（旧）</td><td>n-1法</td><td>無視</td><td>互換目的（旧ブックの維持）</td></tr><tr><td>STDEV.S</td><td>標本（新）</td><td>n-1法</td><td>無視</td><td><strong>通常はこれ</strong>（新規作成の推奨）</td></tr><tr><td>STDEV.P</td><td>母集団全体</td><td>n法</td><td>無視</td><td>全データが手元にある場合</td></tr><tr><td>STDEVA</td><td>標本</td><td>n-1法</td><td>TRUEを1、FALSE/文字列を0として計算</td><td>論理値・文字列を含めたい特殊ケース</td></tr><tr><td><a href="https://mashukabu.com/excel-stdevp/">STDEVP</a></td><td>母集団全体（旧）</td><td>n法</td><td>無視</td><td>STDEV.Pの旧互換版</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc8">「標本」と「母集団」の見分け方</span></h3>



<p>迷ったら次のように考えると判断できます。</p>



<ul class="wp-block-list"><li><strong>手元のデータは全体の一部か？</strong> → 標本（STDEV / STDEV.S）</li><li><strong>手元のデータが調べたい対象のすべてか？</strong> → 母集団（STDEV.P / STDEVP）</li></ul>



<p>たとえば、全国の高校3年生から100人を選んで体力テストの結果を分析する場合、その100人は標本なので <strong>STDEV / STDEV.S</strong> を使います。一方、自社の正社員50人全員の年収データを分析するなら、それが対象のすべてなので <strong>STDEV.P</strong> を使います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>実務では、調べたい対象「全員」のデータが手に入ることはまれです。アンケート回答者は「回答してくれた人の集合」というサンプルですし、過去の売上データも「これからの店舗運営」を考えれば未来データの一部です。<strong>迷ったら標本（STDEV.S）を選んでおくのが安全</strong> です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">STDEV.S関数（新関数）への移行方法</span></h2>



<p>Excel 2010以降では、後継の <strong>STDEV.S関数</strong>（ドット入り）が用意されています。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>STDEV</th><th>STDEV.S</th></tr></thead><tbody><tr><td>導入時期</td><td>Excel 2007以前から</td><td>Excel 2010以降</td></tr><tr><td>構文</td><td>STDEV(number1, [number2], &#8230;)</td><td>STDEV.S(number1, [number2], &#8230;)</td></tr><tr><td>計算結果</td><td>同一</td><td>同一</td></tr><tr><td>関数の分類</td><td>互換性関数</td><td>統計関数</td></tr></tbody></table></figure>



<p>引数も計算式も完全に同じです。次の2つの数式は、まったく同じ結果を返します。</p>



<pre class="wp-block-code"><code>=STDEV(B2:B13)
=STDEV.S(B2:B13)</code></pre>



<h3 class="wp-block-heading"><span id="toc10">使い分けの実務指針</span></h3>



<ul class="wp-block-list"><li>古いExcel環境（2007以前）と共有する → STDEV</li><li>自分専用または新しい環境で使う → STDEV.S</li><li>既存ブックの数式を継承する → そのまま変更不要</li></ul>



<p>Microsoft公式は新関数（STDEV.S）を推奨していますが、STDEVが将来削除される予定もないので、安心して使えます。テンプレートを統一したい場合は、Excelの置換機能で <code>STDEV(</code> を <code>STDEV.S(</code> にまとめて変換するのが手軽です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>置換時に「STDEVと前方一致するもの」をすべて変換すると、STDEVA・STDEVP も巻き込まれてしまいます。<code>STDEV(</code> のように <strong>直後の括弧まで含めて</strong> 検索すると安全です。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#DIV/0!</code></td><td>データが1個以下しかない（n-1で0除算）</td><td>最低2個以上のデータを指定する</td></tr><tr><td><code>#VALUE!</code></td><td>引数に直接渡した値が数値以外</td><td>数値を指定する。範囲指定なら文字列セルは自動で無視される</td></tr><tr><td><code>#NUM!</code></td><td>数値オーバーフロー（極端に大きい/小さい値）</td><td>データの単位を整える（円→万円など）</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td><code>STDEV</code> のスペルを再確認</td></tr></tbody></table></figure>



<p>特に多いのが、データが1個しかない範囲を指定して <strong>#DIV/0!</strong> エラーになるケースです。STDEVは n-1 で割る関係上、データ数が最低2個必要です。フィルタで絞り込んだ結果が1件だけになっていないか確認しましょう。</p>



<p>また、思った値より大きく出るときは「母集団のつもりが標本（n-1法）で計算してしまっている」可能性があります。手元のデータが全数なら STDEV.P を使ってください。</p>



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



<p>ExcelのSTDEV関数は、標本データから母集団の標準偏差を推定できる便利な関数です。要点を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=STDEV(number1, [number2], ...)</code></li><li><strong>n-1法（不偏分散）</strong> で標本標準偏差を計算する</li><li><strong>空白セル・論理値・文字列・エラー値は無視</strong> される</li><li>論理値・文字列も含めたい場合は <strong>STDEVA</strong> を使う</li><li>全数データ（母集団）の標準偏差なら <strong>STDEV.P</strong> を使う</li><li><strong>新関数 STDEV.S と計算結果は完全に同一</strong>。新規ブックでは STDEV.S を推奨</li><li><strong>迷ったら STDEV / STDEV.S（標本標準偏差）</strong> を選ぶのが安全</li></ul>



<p>売上のバラつき分析、テスト点数の分散比較、品質管理での寸法ばらつき測定など、データの散らばり具合を見たいあらゆる場面で活躍します。平均だけでは見えない「データの個性」を浮かび上がらせる、最も基本的で強力な関数のひとつです。</p>



<p>合わせて <a href="https://mashukabu.com/excel-stdevp/">STDEVP関数</a> を覚えておけば、標本と母集団の使い分けに自信が持てるようになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-stdev/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】ODDFYIELD関数の使い方｜初回利払いが半端な債券の利回りを計算する</title>
		<link>https://mashukabu.com/excel-oddfyield/</link>
					<comments>https://mashukabu.com/excel-oddfyield/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:16:55 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[ODDFYIELD]]></category>
		<category><![CDATA[債券]]></category>
		<category><![CDATA[利回り計算]]></category>
		<category><![CDATA[財務関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6738</guid>

					<description><![CDATA[ExcelのODDFYIELD関数の使い方を解説します。発行日から最初の利払い日までが端数期間（不定期）になる社債・国債の年間利回りを計算する関数で、9つの引数の意味、日付順制約、frequencyやbasisの選び方、Microsoft公式サンプルを使った計算例、よくあるエラーと対処、YIELD・ODDFPRICE・YIELDMATとの使い分けまでまとめて整理しました。]]></description>
										<content:encoded><![CDATA[
<p>「発行日が10月15日なのに最初の利払い日は翌年3月1日」――こんな少し変則的な社債や国債の利回りを計算したいとき、通常のYIELD関数では正しい値が出ません。そこで使うのが <strong>ODDFYIELD関数</strong> です。</p>



<p>ただ、ODDFYIELD関数は引数がなんと9つもあります。日付の指定順や frequency、basis の選び方で迷う方が多いのが実情です。引数の順序を一つでも間違えると、すぐに #NUM! エラーが返ってきます。</p>



<p>この記事では、ODDFYIELD関数の構文から、初回端数期間がある債券の意味、Microsoft公式サンプルを使った計算例、日付順制約や basis の選び方、よくあるエラーと関連関数との使い分けまでをまとめて整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのODDFYIELD関数とは？</a></li><li><a href="#toc2" tabindex="0">ODDFYIELD関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">frequency引数（利払い頻度）の選び方</a></li><li><a href="#toc4" tabindex="0">basis引数（日数計算方法）の選び方</a></li><li><a href="#toc5" tabindex="0">実用例：Microsoft公式サンプルで利回りを計算する</a></li><li><a href="#toc6" tabindex="0">日付順制約（最重要ポイント）</a></li><li><a href="#toc7" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc8" tabindex="0">ODDFYIELD関数と関連関数の使い分け</a><ol><li><a href="#toc9" tabindex="0">使い分けの判断フロー</a></li></ol></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>ExcelのODDFYIELD関数（読み方：オッド・エフ・イールド）は、<strong>初回利払い期間が不定期（端数期間）になっている証券の年間利回りを返す財務関数</strong>です。関数名は「<strong>Odd First Yield</strong>（最初の利払いが不規則な利回り）」の略で、文字通り「最初だけ半端な債券」の利回り計算に特化しています。</p>



<p>通常の固定利付債では、発行日から半年なり1年なりの一定間隔で利息が支払われます。ところが、たとえば「10月15日発行で、最初の利払いは翌年3月1日」のような債券だと、発行日から最初の利払い日までが定期的な周期になりません。この最初の半端な期間を <strong>初回端数期間（Odd First Period）</strong> と呼びます。</p>



<p>このような債券の利回りを定期利払いの YIELD関数で計算してしまうと、初回の半端な期間が考慮されず、本来の年間利回りからズレた値が出てしまいます。ODDFYIELD関数は、初回端数期間を正しく扱った上で年間利回り（％換算前の小数）を返してくれる関数です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ODDFYIELD関数は Excel 2007 以降で利用できます。Microsoft 365、Excel for Mac、Google スプレッドシートでも同名で同じ動作をします。日本の証券実務では「不定期利払い債」と呼ばれることもあり、特に新発の社債や仕組債で見られます。</p></blockquote>



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



<p>ODDFYIELD関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=ODDFYIELD(settlement, maturity, issue, first_coupon, rate, pr, redemption, frequency, [basis])</code></pre>



<p>引数は9つ（うち basis は省略可）と多めですが、それぞれの意味を押さえれば難しくありません。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>settlement</td><td>必須</td><td>受渡日（買い手に証券が渡される日。発行日より後）</td></tr><tr><td>maturity</td><td>必須</td><td>満期日（最後に元本が償還される日）</td></tr><tr><td>issue</td><td>必須</td><td>発行日</td></tr><tr><td>first_coupon</td><td>必須</td><td>最初の利払い日</td></tr><tr><td>rate</td><td>必須</td><td>年間クーポンレート（小数。5%なら 0.05）</td></tr><tr><td>pr</td><td>必須</td><td>額面100あたりの債券価格</td></tr><tr><td>redemption</td><td>必須</td><td>額面100あたりの償還価格（通常は100）</td></tr><tr><td>frequency</td><td>必須</td><td>年間利払い回数（<strong>1</strong>＝年1回、<strong>2</strong>＝半年払い、<strong>4</strong>＝四半期払い）</td></tr><tr><td>basis</td><td>省略可</td><td>日数計算方法（0〜4。省略時は 0＝US 30/360）</td></tr></tbody></table></figure>



<p>戻り値は年間利回りを小数で返します。たとえば 0.0772 が返ってきたら、年間利回り 7.72% を意味します。セルの表示形式を「パーセンテージ」にしておくと読みやすいです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>引数が多いので、セルにあらかじめラベル付きで値を並べて、関数からはセル参照で渡すのがおすすめです。後で条件を変えてシミュレーションする際にも便利で、引数の取り違えも防げます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc3">frequency引数（利払い頻度）の選び方</span></h2>



<p>frequency は年間に何回利息が支払われるかを指定します。指定できる値は3つだけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>frequency</th><th>利払い頻度</th><th>代表的な債券</th></tr></thead><tbody><tr><td>1</td><td>年1回</td><td>欧州系社債、ユーロ債の一部</td></tr><tr><td>2</td><td>半年に1回（年2回）</td><td>米国国債、日本国債、多くの社債</td></tr><tr><td>4</td><td>四半期に1回（年4回）</td><td>一部の仕組債、変動利付債</td></tr></tbody></table></figure>



<p>日本や米国の標準的な利付債は半年払い（frequency=2）が圧倒的多数です。迷ったらまず2を入れて、目論見書や条件決定通知で利払い回数を確認しましょう。1, 2, 4 以外を指定すると <strong>#NUM! エラー</strong> が返ります。</p>



<h2 class="wp-block-heading"><span id="toc4">basis引数（日数計算方法）の選び方</span></h2>



<p>basis は、利息計算で1年や1か月をどう数えるかを指定する引数です。証券の種類によって慣習が異なるので、目論見書の「日数計算方式」欄を確認するのが確実です。</p>



<figure class="wp-block-table"><table><thead><tr><th>basis</th><th>日数計算方法</th><th>主な用途</th></tr></thead><tbody><tr><td>0（または省略）</td><td>30/360（米国式）</td><td>米国の社債、地方債</td></tr><tr><td>1</td><td>Actual/Actual（実日数/実日数）</td><td>米国国債、多くの政府債</td></tr><tr><td>2</td><td>Actual/360</td><td>短期金融商品、CD</td></tr><tr><td>3</td><td>Actual/365</td><td>一部の英国債、円建て短期商品</td></tr><tr><td>4</td><td>30/360（欧州式）</td><td>欧州の社債（ユーロ債）</td></tr></tbody></table></figure>



<p>basis に5以上や負の値を指定すると <strong>#NUM! エラー</strong> になります。実務では「とりあえず 0 で省略」というケースが多いですが、米国国債のように Actual/Actual（basis=1）を使うべき商品もあるので注意してください。</p>



<h2 class="wp-block-heading"><span id="toc5">実用例：Microsoft公式サンプルで利回りを計算する</span></h2>



<p>Microsoft 公式ドキュメントの ODDFYIELD関数のサンプル値を使って、実際に計算してみます。次のような社債を想定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>値</th></tr></thead><tbody><tr><td>受渡日（settlement）</td><td>2008/11/11</td></tr><tr><td>満期日（maturity）</td><td>2021/3/1</td></tr><tr><td>発行日（issue）</td><td>2008/10/15</td></tr><tr><td>最初の利払い日（first_coupon）</td><td>2009/3/1</td></tr><tr><td>年間クーポンレート（rate）</td><td>5.75%（0.0575）</td></tr><tr><td>債券価格（pr）</td><td>84.50</td></tr><tr><td>償還価格（redemption）</td><td>100</td></tr><tr><td>利払い頻度（frequency）</td><td>2（半年払い）</td></tr><tr><td>日数計算（basis）</td><td>0（US 30/360）</td></tr></tbody></table></figure>



<p>シートのセル B2:B10 に上から順にこれらの値を入れたとします。日付はそのまま日付として、利率は 0.0575 として入力します。利回りを求める数式は次のようになります。</p>



<pre class="wp-block-code"><code>=ODDFYIELD(B2, B3, B4, B5, B6, B7, B8, B9, B10)</code></pre>



<p>このとき、戻り値はおよそ <strong>0.0772</strong>、つまり <strong>年間利回り 7.72%</strong> となります。クーポンレートは 5.75% ですが、額面100の債券を 84.50 の割引価格で買っているため、利回りはクーポンレートよりも高くなる、というイメージです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>発行日（2008/10/15）から最初の利払い日（2009/3/1）までが約4.5か月で、半年払いの「半年」と一致しないため、これは初回端数期間ありの債券です。通常のYIELD関数で計算すると、この4.5か月分が考慮されず、利回りがやや低めに出てしまいます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">日付順制約（最重要ポイント）</span></h2>



<p>ODDFYIELD関数で最も間違いやすいのが日付の順序です。次の不等式を <strong>必ず</strong> 満たす必要があります。</p>



<pre class="wp-block-code"><code>maturity &gt; first_coupon &gt; settlement &gt; issue</code></pre>



<p>つまり「発行日 → 受渡日 → 最初の利払い日 → 満期日」の順に時系列で並んでいないとなりません。一つでも順序が崩れると即 #NUM! エラーになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>意味</th><th>順序</th></tr></thead><tbody><tr><td>issue（発行日）</td><td>債券が発行された日</td><td>一番古い</td></tr><tr><td>settlement（受渡日）</td><td>投資家に証券が引き渡された日</td><td>2番目</td></tr><tr><td>first_coupon（最初の利払い日）</td><td>最初に利息が支払われた日</td><td>3番目</td></tr><tr><td>maturity（満期日）</td><td>元本が償還される日</td><td>一番未来</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>日付順違反は #NUM! エラーになるので、ぱっと見ではどの引数が悪いのかわからない場合があります。引数が多いODDFYIELDでは、各日付セルに「●●日（○年○月○日）」とコメントを付けておくと、後から見直したときに混乱しません。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#NUM!</code></td><td>日付順違反（maturity > first_coupon > settlement > issue を満たさない）</td><td>4つの日付の前後関係を見直す</td></tr><tr><td><code>#NUM!</code></td><td>rate < 0、pr ≤ 0、redemption ≤ 0</td><td>利率と価格は正の値を指定</td></tr><tr><td><code>#NUM!</code></td><td>frequency が 1, 2, 4 以外</td><td>1（年1回）、2（半年）、4（四半期）のいずれかを指定</td></tr><tr><td><code>#NUM!</code></td><td>basis が 0 〜 4 の範囲外</td><td>0〜4 の整数（または省略）を指定</td></tr><tr><td><code>#VALUE!</code></td><td>引数に日付として認識できない文字列が入っている</td><td>DATE関数で日付を作るか、セルの書式を「日付」にする</td></tr><tr><td><code>#VALUE!</code></td><td>引数に数値として認識できない値が入っている</td><td>数値型かどうかを確認</td></tr></tbody></table></figure>



<p>特に多いのが、目論見書の表記をそのままコピーして文字列のまま渡してしまうケースです。日付は <code>=DATE(2008,11,11)</code> のように DATE関数で作るか、セルの書式設定で「日付」型にしておくのが確実です。</p>



<h2 class="wp-block-heading"><span id="toc8">ODDFYIELD関数と関連関数の使い分け</span></h2>



<p>債券の価格・利回りを扱う関数はいくつかあります。「初回端数期間があるか」「定期利払いか満期一括か」で関数を選びます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>用途</th><th>何を返す</th></tr></thead><tbody><tr><td>ODDFYIELD</td><td>初回端数期間あり・定期利払い証券</td><td>年間利回り</td></tr><tr><td>ODDFPRICE</td><td>初回端数期間あり・定期利払い証券</td><td>額面100あたりの価格</td></tr><tr><td>YIELD</td><td>通常の定期利払い証券</td><td>年間利回り</td></tr><tr><td>PRICE</td><td>通常の定期利払い証券</td><td>額面100あたりの価格</td></tr><tr><td>YIELDMAT</td><td>満期時に利息が一括支払われる証券</td><td>年間利回り</td></tr><tr><td>PRICEMAT</td><td>満期時に利息が一括支払われる証券</td><td>額面100あたりの価格</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc9">使い分けの判断フロー</span></h3>



<ol class="wp-block-list"><li>利息は <strong>満期に一括</strong> で支払われるか？ → はい：YIELDMAT / PRICEMAT</li><li><strong>初回利払い期間が半端</strong> か？ → はい：ODDFYIELD / ODDFPRICE</li><li>それ以外（普通の定期利払い） → YIELD / PRICE</li></ol>



<p>ODDFYIELDで価格から利回りを計算したら、逆に利回りから価格を求めるのは ODDFPRICE関数です。価格と利回りはちょうど裏返しの関係になっていて、引数の構成もほぼ同じです。</p>



<p>なお、最終利払いだけが端数期間になる債券には ODDLYIELD関数（Odd Last Yield）を使います。発行直後だけが半端なら ODDFYIELD、満期直前だけが半端なら ODDLYIELD、と覚えておくと整理しやすいです。</p>



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



<p>ExcelのODDFYIELD関数は、初回利払い期間が半端な債券の年間利回りを正確に計算できる関数です。要点を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=ODDFYIELD(settlement, maturity, issue, first_coupon, rate, pr, redemption, frequency, [basis])</code></li><li><strong>対象</strong>: 初回利払い期間が定期周期と異なる「初回端数期間あり」の債券</li><li><strong>日付順制約</strong>: <code>maturity > first_coupon > settlement > issue</code> を満たすこと</li><li><strong>frequency</strong>: 1（年1回）/ 2（半年）/ 4（四半期）から選択</li><li><strong>basis</strong>: 0〜4。迷ったら 0（省略）でOK、米国国債なら 1（Actual/Actual）</li></ul>



<p>引数が9個と多いので、セルに値を並べてラベルを付けてから関数で参照する方法をおすすめします。日付順違反による #NUM! エラーが最も多いトラブルなので、計算前に必ず4つの日付の前後関係を確認しましょう。</p>



<p>普通の定期利払い債なら YIELD関数、満期一括払いなら YIELDMAT関数、というように、債券のタイプに応じて関数を選び分けるのが基本です。価格から利回りへ変換するのが ODDFYIELD、利回りから価格へ逆算するのが ODDFPRICE、というペア関係も押さえておくと、債券分析がぐっとスムーズになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-oddfyield/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Excel】Python in Excel（PY関数）の使い方｜pandas・matplotlibをExcelで実行する方法</title>
		<link>https://mashukabu.com/excel-python-in-excel/</link>
					<comments>https://mashukabu.com/excel-python-in-excel/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:16:36 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Python in Excel]]></category>
		<category><![CDATA[PY関数]]></category>
		<category><![CDATA[データ分析]]></category>
		<category><![CDATA[仕事効率化]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6736</guid>

					<description><![CDATA[ExcelのPython in Excel（PY関数）の使い方を解説します。pandasやmatplotlibをExcelシート上で直接実行できる新機能で、xl()関数でシートのデータを参照しながらDataFrame集計や可視化が可能です。構文と引数、Pythonエディタからの入力手順、実用例（ピボット集計・seaborn可視化）、対応バージョン・ライセンス、デフォルトで使えるライブラリ一覧、セキュリティの注意点までまとめました。]]></description>
										<content:encoded><![CDATA[
<p>「ExcelでpandasのDataFrameを使えたらラクなのに」「matplotlibやseabornでサクッとグラフを描きたい」と思ったことはありませんか。これまではExcelからデータをCSVで書き出して、Jupyterで分析して、結果をまた貼り戻す、というひと手間が必要でした。</p>



<p>これを根本から変えてくれるのが <strong>Python in Excel（PY関数）</strong> です。Excelのセルに直接Pythonコードを書いて、シート上のデータをそのまま分析できます。pandas・numpy・matplotlib・seabornが標準で使えるので、データサイエンスの主要ツールがそのままExcelに乗ってきた感覚です。</p>



<p>この記事では、Python in Excelの仕組み、PY関数の構文、xl()でセル参照する方法、pandasでの集計やseabornでの可視化の実例、対応バージョン・ライセンス・セキュリティまでまとめて整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Python in Excelとは？</a></li><li><a href="#toc2" tabindex="0">PY関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">Pythonエディタからの入力手順</a></li><li><a href="#toc4" tabindex="0">xl()関数でExcelデータをPythonに渡す</a></li><li><a href="#toc5" tabindex="0">実用例1：pandasでピボット集計する</a></li><li><a href="#toc6" tabindex="0">実用例2：seabornでヒートマップを描く</a></li><li><a href="#toc7" tabindex="0">実用例3：複数セルを連携させる</a></li><li><a href="#toc8" tabindex="0">対応バージョンとライセンス要件</a></li><li><a href="#toc9" tabindex="0">デフォルトで使えるライブラリ一覧</a><ol><li><a href="#toc10" tabindex="0">既定でインポート済みのライブラリ</a></li><li><a href="#toc11" tabindex="0">import すれば使える主要ライブラリ</a></li></ol></li><li><a href="#toc12" tabindex="0">Copilot との連携</a></li><li><a href="#toc13" tabindex="0">セキュリティの注意点</a></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Python in Excelとは？</span></h2>



<p>Python in Excel（パイソン イン エクセル）は、Excelのセル上で <strong>Pythonコードを直接実行できる新機能</strong> です。2023年にプレビュー提供が始まり、2024年に一般提供が開始されました。専用の <code>=PY()</code> 関数（PY関数）を使ってPythonスクリプトをセルに埋め込みます。</p>



<p>実行はローカルではなく <strong>Microsoftのクラウド（Azure Container Instances）</strong> で行われます。コードと参照データがクラウドに送られ、Anaconda が用意したセキュアなPython環境で実行され、結果だけがセルに返ってきます。ローカルにPythonをインストールする必要は一切ありません。</p>



<p>これまで Excel には Power Query や VBA という選択肢がありましたが、Python in Excel ならpandas・numpy・matplotlib・seaborn・statsmodels といった <strong>データサイエンス標準ライブラリ</strong> がそのまま使えるのが大きな強みです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Python in Excel は LAMBDA や VBA とは別物です。あくまで「セル内でPythonを実行する仕組み」であり、ユーザー定義関数を作るのとは異なります。コード自体はセルの数式バーではなく専用のPythonエディタから入力します。</p></blockquote>



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



<p>PY関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=PY(python_code, return_type)</code></pre>



<p>引数は2つです。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>python_code</td><td>必須</td><td>実行するPythonコード（<strong>静的テキスト</strong>のみ。セル参照や数式不可）</td></tr><tr><td>return_type</td><td>任意</td><td><strong>0</strong>＝Excel値（既定）、<strong>1</strong>＝Pythonオブジェクト</td></tr></tbody></table></figure>



<p>戻り値は、return_type の指定によって挙動が変わります。<strong>0</strong> を選ぶと数値・文字列・配列などのExcelで扱える値として返り、<strong>1</strong> を選ぶとDataFrame や Figure などのPythonオブジェクトのまま保持されます。後段の別のPY関数で <code>xl(...)</code> 経由で再利用したい場合は <strong>1</strong> を選ぶのがポイントです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>PY関数には独特の制約があります。<strong>他のExcel関数と組み合わせて使えません</strong>。たとえば <code>=IF(条件, PY(...), 0)</code> のようなネストはできません。また、引数の python_code は静的なテキストのみで、<code>=PY(A1)</code> のように動的に組み立てることもできません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc3">Pythonエディタからの入力手順</span></h2>



<p>PY関数は、通常の数式バーから直接入力するのではなく <strong>専用のPythonエディタ</strong> から入力します。</p>



<p>入力手順は次のとおりです。</p>



<ol class="wp-block-list"><li>Pythonコードを書きたいセルを選択する</li><li>リボンの「数式」タブから「Pythonの挿入」をクリック（またはセルに <code>=PY(</code> と入力）</li><li>数式バーが緑色のPythonエディタに切り替わる</li><li>Pythonコードを書いて <strong>Ctrl + Enter</strong> で確定する</li></ol>



<p>通常の Enter は改行扱いになるので、確定は必ず <strong>Ctrl + Enter</strong> を押す点に注意してください。確定すると Excel が「計算中…」の状態になり、クラウドで実行された結果がセルに返ってきます。</p>



<h2 class="wp-block-heading"><span id="toc4">xl()関数でExcelデータをPythonに渡す</span></h2>



<p>Python in Excel の真価は <strong>xl() 関数</strong> にあります。Pythonコードの中で <code>xl()</code> を使うと、シート上のセルやテーブルを pandas DataFrame として取り込めます。</p>



<pre class="wp-block-code"><code># A1:C100 を DataFrame として読み込む
df = xl(&quot;A1:C100&quot;, headers=True)

# テーブル名で参照する
sales = xl(&quot;売上テーブル[#All]&quot;, headers=True)

# 単一セルを取得する
target = xl(&quot;E1&quot;)</code></pre>



<p><code>headers=True</code> を指定すると、範囲の1行目を列名として扱ってくれます。これでExcel側で整形済みの表をそのまま pandas のDataFrame として処理できます。</p>



<p>xl() で渡したデータはあくまで <strong>読み取り専用のスナップショット</strong> です。元のシートに書き戻すわけではないので、加工した結果をシートに反映したい場合は PY関数の戻り値（return_type=0）として返すか、別のセルにコピーする運用になります。</p>



<h2 class="wp-block-heading"><span id="toc5">実用例1：pandasでピボット集計する</span></h2>



<p>売上データから商品別の合計と平均を一気に集計してみます。次のような表が <code>A1:D11</code> にあるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>商品</th><th>数量</th><th>売上</th></tr></thead><tbody><tr><td>2026-04-01</td><td>A</td><td>3</td><td>9000</td></tr><tr><td>2026-04-01</td><td>B</td><td>2</td><td>4000</td></tr><tr><td>2026-04-02</td><td>A</td><td>5</td><td>15000</td></tr><tr><td>2026-04-02</td><td>C</td><td>1</td><td>3500</td></tr><tr><td>&#8230;（10行分）</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table></figure>



<p>任意の空きセルにPython エディタで次のコードを入力します。</p>



<pre class="wp-block-code"><code>df = xl(&quot;A1:D11&quot;, headers=True)
result = df.groupby(&quot;商品&quot;).agg(
    合計=(&quot;売上&quot;, &quot;sum&quot;),
    平均=(&quot;売上&quot;, &quot;mean&quot;),
    件数=(&quot;売上&quot;, &quot;count&quot;)
).reset_index()
result</code></pre>



<p>最後の行に <code>result</code> だけを書くのがポイントです。Python in Excel は <strong>最後に評価された値</strong> を戻り値として扱う仕様なので、変数名だけを置いておけば DataFrame がそのまま展開されます。</p>



<p>return_type を既定の0のままにしておくと、結果のDataFrame が <strong>動的配列</strong> としてシートに展開されます。商品列・合計列・平均列・件数列がきれいに広がるイメージです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ピボットテーブル機能と比べると、pandas の groupby は <strong>集計関数を細かく組み合わせられる</strong> のが強みです。中央値・分位点・カスタム集計関数まで自在に使えます。Excelの組み込みピボットでは難しい複雑な集計は、Pythonのほうが圧倒的にラクです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">実用例2：seabornでヒートマップを描く</span></h2>



<p>可視化も Python in Excel の得意分野です。月別・商品別の売上ヒートマップを seaborn で描いてみます。</p>



<pre class="wp-block-code"><code>import seaborn as sns
import matplotlib.pyplot as plt

df = xl(&quot;A1:D365&quot;, headers=True)
df[&quot;月&quot;] = pd.to_datetime(df[&quot;日付&quot;]).dt.month
pivot = df.pivot_table(index=&quot;商品&quot;, columns=&quot;月&quot;, values=&quot;売上&quot;, aggfunc=&quot;sum&quot;)

fig, ax = plt.subplots(figsize=(8, 4))
sns.heatmap(pivot, annot=True, fmt=&quot;.0f&quot;, cmap=&quot;YlOrRd&quot;, ax=ax)
ax.set_title(&quot;商品別月次売上ヒートマップ&quot;)
fig</code></pre>



<p>最後の <code>fig</code> がポイントです。matplotlib の Figure オブジェクトを最後に置くと、Python in Excel が <strong>画像としてセル内にレンダリング</strong> してくれます。セルの上で右クリック→「セルに表示」を選べば、画像をセルサイズに合わせて表示できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Python in Excel ではよく使うライブラリが <code>pd</code>、<code>np</code>、<code>plt</code>、<code>sns</code> の別名で <strong>既にインポート済み</strong> です。<code>import pandas as pd</code> などを毎回書く必要はありません。ただし明示的に書いてもエラーにはならないので、コードの可読性のために書いても問題ありません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">実用例3：複数セルを連携させる</span></h2>



<p>return_type=1（Pythonオブジェクト）を使うと、PY関数同士を連携させられます。たとえば <code>B1</code> セルでデータを準備し、<code>B2</code> セルで集計し、<code>B3</code> セルでグラフ化、という流れが組めます。</p>



<pre class="wp-block-code"><code># B1セル（return_type=1 を指定）
df = xl(&quot;A1:D365&quot;, headers=True)
df[&quot;利益&quot;] = df[&quot;売上&quot;] * 0.3
df</code></pre>



<pre class="wp-block-code"><code># B2セル（B1 を参照）
src = xl(&quot;B1&quot;)
src.groupby(&quot;商品&quot;)[&quot;利益&quot;].sum().reset_index()</code></pre>



<p>B1のセルが「DataFrameを保持する変数」として機能し、B2 から <code>xl("B1")</code> で受け取れます。前処理→集計→可視化を <strong>セル単位で分割</strong> できるので、ノートブック感覚で分析を組み立てられます。</p>



<h2 class="wp-block-heading"><span id="toc8">対応バージョンとライセンス要件</span></h2>



<p>Python in Excel は、すべての Excel で使えるわけではありません。下表が対応状況の目安です。</p>



<figure class="wp-block-table"><table><thead><tr><th>プラットフォーム</th><th>対応バージョン</th></tr></thead><tbody><tr><td>Windows</td><td>Current Channel Version 2408（Build 17928.20114）以降</td></tr><tr><td>Mac</td><td>Enterprise / Business Version 16.96 以降</td></tr><tr><td>Web</td><td>対応（Microsoft 365 サブスクリプション必須）</td></tr><tr><td>iPad / iPhone</td><td>非対応</td></tr><tr><td>Android</td><td>非対応</td></tr></tbody></table></figure>



<p>ライセンスは <strong>有料の Microsoft 365 サブスクリプション</strong> が前提です。家庭向け（Personal / Family）でも一部機能が使えますが、ビジネス利用や高度な機能は Business / Enterprise プランが推奨されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>Office 永続版（Office 2021 / 2024 など、買い切り型）では Python in Excel は使えません。Microsoft 365 サブスクリプション専用の機能です。社内環境で導入を検討する際は、ライセンス契約形態を必ず確認しましょう。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">デフォルトで使えるライブラリ一覧</span></h2>



<p>Python in Excel には Anaconda Distribution が用意した Python 環境が組み込まれており、データサイエンスでよく使うライブラリは <strong>追加インストール不要</strong> で利用できます。</p>



<h3 class="wp-block-heading"><span id="toc10">既定でインポート済みのライブラリ</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>ライブラリ</th><th>別名</th><th>主な用途</th></tr></thead><tbody><tr><td>pandas</td><td>pd</td><td>DataFrame でのデータ加工</td></tr><tr><td>numpy</td><td>np</td><td>数値計算・配列処理</td></tr><tr><td>matplotlib.pyplot</td><td>plt</td><td>グラフ描画</td></tr><tr><td>seaborn</td><td>sns</td><td>統計的な可視化</td></tr><tr><td>statsmodels</td><td>（as smで明示）</td><td>回帰分析・時系列分析</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc11">import すれば使える主要ライブラリ</span></h3>



<p>import 文を書けば追加で利用できる主要ライブラリの例です。</p>



<figure class="wp-block-table"><table><thead><tr><th>ライブラリ</th><th>用途</th></tr></thead><tbody><tr><td>scikit-learn</td><td>機械学習（分類・回帰・クラスタリング）</td></tr><tr><td>SciPy</td><td>科学技術計算（最適化・統計検定）</td></tr><tr><td>beautifulsoup4</td><td>HTML/XMLパース</td></tr><tr><td>Pillow</td><td>画像処理</td></tr><tr><td>openpyxl</td><td>Excelファイル操作</td></tr></tbody></table></figure>



<p>合計で 30以上 のライブラリが利用可能です。pip install で任意のライブラリを追加することはできない（クラウド側の固定環境なので）ので、リストにないライブラリが必要な場合は別の手段（ローカルPython）を検討する必要があります。</p>



<h2 class="wp-block-heading"><span id="toc12">Copilot との連携</span></h2>



<p>Python in Excel は <strong>Microsoft Copilot との連携</strong> が前提に設計されています。自然言語で「商品別の売上合計を出して」と入力すると、Copilot が PY関数のコードを自動生成してくれます。Pythonの文法を覚えていなくても、やりたいことを日本語で書くだけで分析が始められます。</p>



<p>2026年2月に Excel の App Skills（Copilotの機能群）の一部が廃止され、後継として <strong>Agent Mode</strong> が提供されています。Agent Mode では、複数ステップの分析タスクを Copilot が自律的に実行し、その過程で Python in Excel を使って中間結果を確認しながら進めてくれます。</p>



<h2 class="wp-block-heading"><span id="toc13">セキュリティの注意点</span></h2>



<p>Python in Excel はクラウド実行型のため、セキュリティ面の配慮が必要です。</p>



<ul class="wp-block-list"><li><strong>データはMicrosoftのクラウドに送信される</strong>: xl() で参照したセル範囲のデータは、計算のために Azure 上のコンテナに送られます</li><li><strong>データは保存されない</strong>: 計算実行のために一時的に処理されるだけで、Microsoft 側に永続保存されることはありません</li><li><strong>コンテナは隔離される</strong>: 実行環境はリクエストごとに分離され、他のユーザーから見えることはありません</li><li><strong>ネットワークアクセス制限</strong>: 実行コンテナは外部インターネットにアクセスできません（外部APIコールやスクレイピングは不可）</li></ul>



<p>機密性の高いデータ（個人情報・財務データ・人事情報など）を扱う場合は、社内のIT・情報セキュリティ部門のガイドラインを必ず確認しましょう。一部の企業ではデータガバナンスの観点から、Python in Excel の利用を組織ポリシーで制限しているケースもあります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>動作確認や学習目的なら、ダミーデータや公開データを使うのが安全です。実データで初めて使う前に、扱うデータの分類（公開・社外秘・極秘など）と、Python in Excel の利用可否について上長や情報システム部門に確認しておくとトラブルを避けられます。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#PYTHON!</code></td><td>Pythonコードに構文エラー・実行時エラー</td><td>「診断」ペインでエラー詳細を確認しコード修正</td></tr><tr><td><code>#BUSY!</code></td><td>クラウド実行中（一時的）</td><td>数秒〜数十秒待つ。改善しなければ <code>Ctrl + Alt + F9</code> で再計算</td></tr><tr><td><code>#CONNECT!</code></td><td>クラウドへの接続失敗</td><td>ネットワーク・サインイン状況・サブスクリプション契約を確認</td></tr><tr><td><code>#BLOCKED!</code></td><td>組織ポリシーで Python in Excel が無効化</td><td>IT管理者に利用可否を相談</td></tr><tr><td><code>#NAME?</code></td><td>PY関数自体が利用できないバージョン</td><td>Excelのバージョンを Build 17928.20114 以降に更新</td></tr></tbody></table></figure>



<p>特に <code>#BUSY!</code> は、クラウド実行のレイテンシが原因で発生する正常な状態です。慌てずに少し待てば解消することが多いので、まずは様子を見ましょう。</p>



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



<p>Python in Excel（PY関数）は、Excel のシート上で pandas・matplotlib・seaborn といったデータサイエンス標準ライブラリを直接使える新機能です。要点を整理すると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=PY(python_code, return_type)</code>、入力は専用のPythonエディタから <strong>Ctrl + Enter</strong> で確定</li><li><strong>xl()</strong> でシートのセル・テーブルを DataFrame として読み込む</li><li><strong>return_type=0</strong> はExcel値、<strong>return_type=1</strong> は Python オブジェクト（後続の PY関数 で再利用）</li><li><strong>対応</strong>: Microsoft 365 サブスクリプション必須、Windows / Mac / Web に対応、モバイルは非対応</li><li><strong>既定ライブラリ</strong>: pandas、numpy、matplotlib.pyplot、seaborn、statsmodels が自動インポート済み</li><li><strong>追加可</strong>: scikit-learn、SciPy、beautifulsoup4 など30以上が import で利用可能</li><li><strong>セキュリティ</strong>: クラウド実行のためデータ取り扱いには社内ガイドラインの確認を</li></ul>



<p>VBA や Power Query では難しかった統計解析や機械学習も、Python in Excel なら数行で実現できます。Copilot との組み合わせで自然言語からコード生成も可能なので、Pythonに慣れていない方でも気軽に試せる時代になりました。まずはダミーデータから、pandas のgroupby や seaborn のヒートマップなど、定番の処理を動かしてみるところから始めるのがおすすめです。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-python-in-excel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
