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

<channel>
	<title>関数比較 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e9%96%a2%e6%95%b0%e6%af%94%e8%bc%83/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 23 Apr 2026 11:32:10 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>関数比較 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのREPLACE関数の使い方｜位置指定で文字列を置換する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-replace/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-replace/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 04:32:30 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[REPLACE関数]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[テキスト操作]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5776</guid>

					<description><![CDATA[ExcelのREPLACE関数で開始位置と文字数を指定して文字列を置換する方法を解説。電話番号マスキング・個人情報の一部非表示など実務例を紹介し、SUBSTITUTE関数との違いも比較表で整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">電話番号の下4桁を「****」に伏せたい、社員番号の先頭だけ別の文字に差し替えたい。そんなとき「何文字目から何文字を置き換える」と位置で指定できると便利ですよね。REPLACE関数を使えば、開始位置と文字数を指定してピンポイントで文字列を差し替えられます。この記事では基本の書き方から実務で使えるマスキング・データ整形パターンまで、まとめて紹介します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>セルの中の「何文字目から何文字」を別の文字に差し替えたい</li><li>電話番号や個人情報の一部をマスキング（伏字）したい</li><li>REPLACE関数とSUBSTITUTE関数の違いを知りたい</li></ul>




  <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">REPLACE関数とは？</a></li><li><a href="#toc2" tabindex="0">REPLACE関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">REPLACE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">指定した位置の文字を置き換える</a></li><li><a href="#toc7" tabindex="0">文字を削除する（空文字で置換）</a></li><li><a href="#toc8" tabindex="0">文字を挿入する（文字数を0にする）</a></li></ol></li><li><a href="#toc9" tabindex="0">REPLACE関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">電話番号の一部をマスキング（伏字）する</a></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><li><a href="#toc14" tabindex="0">REPLACE関数とLEN関数で末尾の文字を置き換える</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">REPLACE関数とSUBSTITUTE関数の違い</a></li><li><a href="#toc17" tabindex="0">REPLACEB関数との違い</a></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">関連記事</a></li><li><a href="#toc20" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">REPLACE（リプレイス）関数は、文字列の中で「何文字目から何文字」を指定し、その部分を別の文字列に置き換える関数です。英語の「replace」は「取り替える」という意味で、位置指定で文字を差し替える専用の関数です。</p>



<p class="wp-block-paragraph">たとえば「090-1234-5678」の5文字目から4文字（つまり「1234」の部分）を「****」に変えるといった使い方ができます。置き換えたい文字の内容がわからなくても、位置さえわかっていれば確実に置換できるのがポイントです。</p>



<p class="wp-block-paragraph">Excel 2007以降のすべてのバージョン（Excel 2010、2013、2016、2019、2021、Microsoft 365）で使用できます。</p>



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



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



<pre class="wp-block-code"><code>=REPLACE(文字列, 開始位置, 文字数, 置換文字列)</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>文字列</td><td>必須</td><td>置換対象のテキスト、またはセル参照</td></tr><tr><td>開始位置</td><td>必須</td><td>置き換えを始める位置（1から数える）</td></tr><tr><td>文字数</td><td>必須</td><td>置き換える文字の数（0を指定すると挿入になる）</td></tr><tr><td>置換文字列</td><td>必須</td><td>置き換え後の文字列（&#8221;&#8221;を指定すると削除になる）</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>4つの引数はすべて必須です。開始位置は「1」が先頭です。0を指定すると先頭より前に挿入されてしまうので注意してください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">指定した位置の文字を置き換える</span></h3>



<p class="wp-block-paragraph">セルA1に「ABCDEFG」と入っている場合に、3文字目から2文字（「CD」）を「XX」に置き換えてみます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,3,2,&quot;XX&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「ABXXEFG」になります。3文字目の「C」から2文字分が「XX」に差し替わりました。</p>



<h3 class="wp-block-heading"><span id="toc7">文字を削除する（空文字で置換）</span></h3>



<p class="wp-block-paragraph">置換文字列に「&#8221;&#8221;」（空文字）を指定すると、該当する位置の文字を削除できます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,3,2,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「ABCDEFG」なら、結果は「ABEFG」です。3文字目から2文字分が消えます。</p>



<h3 class="wp-block-heading"><span id="toc8">文字を挿入する（文字数を0にする）</span></h3>



<p class="wp-block-paragraph">文字数に「0」を指定すると、何も削除せずに文字列を挿入できます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,3,0,&quot;★&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「ABCDEFG」なら、結果は「AB★CDEFG」です。3文字目の直前に「★」が挿入されます。既存の文字は削除されません。</p>



<h2 class="wp-block-heading"><span id="toc9">REPLACE関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">電話番号の一部をマスキング（伏字）する</span></h3>



<p class="wp-block-paragraph">個人情報保護のため、電話番号の一部を「****」で伏せたい場面はよくあります。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,5,4,&quot;****&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「090-1234-5678」の場合、結果は「090-<strong>*<em>-5678」になります。5文字目から4文字（「1234」の部分）が「</strong></em>*」に置き換わります。</p>



<p class="wp-block-paragraph">ハイフンなしの「09012345678」なら、開始位置を調整してください。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,4,4,&quot;****&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「090****5678」です。</p>



<h3 class="wp-block-heading"><span id="toc11">名前の一部を非表示にする</span></h3>



<p class="wp-block-paragraph">顧客名簿で名字だけ表示し、名前を伏せたいケースです。<a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数</a>と組み合わせて、スペース以降を「●●」に置き換えます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,SEARCH(&quot; &quot;,A1),LEN(A1)-SEARCH(&quot; &quot;,A1)+1,&quot;●●&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「山田 太郎」の場合、SEARCH関数でスペースの位置（3文字目）を取得し、そこから末尾までを「●●」に置き換えます。結果は「山田●●」です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SEARCH関数は大文字・小文字を区別しません。完全一致で検索したい場合はFIND関数を使ってください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">郵便番号にハイフンを挿入する</span></h3>



<p class="wp-block-paragraph">ハイフンなしの郵便番号「1234567」に、4文字目の位置でハイフンを挿入します。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,4,0,&quot;-&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「123-4567」です。文字数を0にしているので、既存の数字は削除されずにハイフンだけが入ります。</p>



<h3 class="wp-block-heading"><span id="toc13">社員番号の先頭コードを変更する</span></h3>



<p class="wp-block-paragraph">部門コードが変わって先頭2文字を差し替えたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,1,2,&quot;BD&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「AC12345」なら、結果は「BD12345」です。先頭2文字の「AC」が「BD」に変わります。</p>



<h3 class="wp-block-heading"><span id="toc14">REPLACE関数とLEN関数で末尾の文字を置き換える</span></h3>



<p class="wp-block-paragraph">末尾から何文字を置き換えたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,LEN(A1)-2+1,2,&quot;XX&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「ABCDEFG」なら、LEN(A1)は7なので開始位置は6になり、結果は「ABCDEXX」です。末尾2文字の「FG」が「XX」に変わります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!エラー</td><td>開始位置または文字数に負の値を指定した</td><td>開始位置は1以上、文字数は0以上の整数を指定してください</td></tr><tr><td>#VALUE!エラー</td><td>開始位置や文字数にテキストを指定した</td><td>数値として認識できる値を入力してください。セル参照の場合はそのセルが数値か確認します</td></tr><tr><td>意図しない位置で置換される</td><td>開始位置の数え間違い</td><td>先頭が「1」であることに注意。<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>で該当位置の文字を確認してから指定すると間違いを防げます</td></tr><tr><td>全角文字で位置がずれる</td><td>REPLACE関数は1文字を1と数える</td><td>全角も半角も1文字は1です。バイト数で数えたい場合はREPLACEB関数を使ってください</td></tr><tr><td>置換後に文字数が変わる</td><td>置換文字列の長さが元の文字数と異なる</td><td>REPLACE関数は指定した文字数分を削除してから置換文字列を挿入するため、長さが変わるのは正常な動作です</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc16">REPLACE関数とSUBSTITUTE関数の違い</span></h2>



<p class="wp-block-paragraph">文字列を置き換える関数にはSUBSTITUTE関数もあります。名前が似ていて混同しやすいですが、置換対象の指定方法がまったく異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>REPLACE関数</th><th>SUBSTITUTE関数</th></tr></thead><tbody><tr><td>置換対象の指定</td><td><strong>位置（何文字目から何文字）</strong>で指定</td><td><strong>文字列</strong>で指定</td></tr><tr><td>構文</td><td>=REPLACE(文字列, 開始位置, 文字数, 置換文字列)</td><td>=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])</td></tr><tr><td>得意な場面</td><td>決まった位置の文字を置き換える</td><td>特定の文字を探して置き換える</td></tr><tr><td>使用例</td><td>先頭3文字をマスキング・郵便番号にハイフン挿入</td><td>ハイフン除去・表記統一</td></tr><tr><td>大文字・小文字</td><td>関係なし（位置で指定するため）</td><td>区別する</td></tr><tr><td>複数箇所の同時置換</td><td>できない（1回の呼び出しで1箇所のみ）</td><td>検索文字列にヒットする全箇所を一括置換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「何文字目から何文字を変えたい」ならREPLACE関数、「この文字を消したい・変えたい」なら<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>です。</p>



<p class="wp-block-paragraph">たとえば電話番号のハイフンをすべて消したいなら、どこにハイフンがあるかは関係ないのでSUBSTITUTE関数が適しています。一方、電話番号の4桁目から4文字を伏せたいなら、位置が決まっているのでREPLACE関数の出番です。</p>



<h2 class="wp-block-heading"><span id="toc17">REPLACEB関数との違い</span></h2>



<p class="wp-block-paragraph">REPLACEB（リプレイスビー）関数は、REPLACE関数のバイト数版です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>REPLACE関数</th><th>REPLACEB関数</th></tr></thead><tbody><tr><td>文字の数え方</td><td><strong>文字数</strong>で数える（全角も半角も1文字=1）</td><td><strong>バイト数</strong>で数える（半角=1バイト、全角=2バイト）</td></tr><tr><td>構文</td><td>=REPLACE(文字列, 開始位置, 文字数, 置換文字列)</td><td>=REPLACEB(文字列, 開始位置, バイト数, 置換文字列)</td></tr><tr><td>使い分け</td><td>通常はこちらで十分</td><td>半角と全角が混在するデータでバイト単位の制御が必要な場合</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">通常の業務ではREPLACE関数で十分です。半角カナと全角文字が混在するデータで正確にバイト位置を指定したい場合にREPLACEB関数を使ってください。</p>



<pre class="wp-block-code"><code>=REPLACEB(A1,1,2,&quot;XX&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「あいうえお」の場合、全角の「あ」は2バイトなので、1バイト目から2バイト分（「あ」1文字分）が「XX」に変わります。結果は「XXいうえお」です。</p>



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



<p class="wp-block-paragraph">REPLACE関数は「何文字目から何文字を別の文字列に置き換える」ための関数です。</p>



<ul class="wp-block-list"><li>開始位置と文字数で置換範囲を指定するので、置き換えたい文字の内容がわからなくても使える</li><li>文字数を0にすると、文字列の挿入として使える</li><li>電話番号のマスキングや郵便番号へのハイフン挿入など、位置が決まっているデータの加工に便利</li><li>SUBSTITUTE関数との違いは「位置で指定するか、文字列で指定するか」</li><li>バイト数で指定したい場合はREPLACEB関数を使う</li></ul>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-left/">LEFT関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数</a>と組み合わせれば、文字列の一部を取り出してから加工するなど、さらに応用の幅が広がります。ぜひ活用してみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-left/">LEFT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数の使い方</a></li></ul>



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



<p class="wp-block-paragraph">Excel関数の一覧は下記の記事で確認できます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別一覧</a></li></ul>



<p class="wp-block-paragraph">エラー値が表示される場合は、下記の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-replace/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VLOOKUP・XLOOKUP・INDEX MATCH使い分け完全ガイド｜もう迷わない選び方フロー付き</title>
		<link>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/</link>
					<comments>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:29:57 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[XLOOKUP関数]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4029</guid>

					<description><![CDATA[VLOOKUP・XLOOKUP・INDEX/MATCHの違いをバージョン互換性・検索方向・エラー処理・処理速度の4軸で比較。あなたのExcel環境に合った関数が一目でわかる選び方フローチャート付き。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「VLOOKUPとXLOOKUPって何が違うの？」と迷ったことはありませんか。「INDEX+MATCHのほうがいい」なんて声も聞きますよね。</p>



<p class="wp-block-paragraph">Excelの検索関数は選択肢が多いぶん、どれを覚えるべきか迷いますよね。間違った関数を選ぶと、あとから数式を全部書き直すハメになることも。</p>



<p class="wp-block-paragraph">この記事では、3つの検索関数の違いを4つの比較軸で整理します。記事の最後には「あなたが今日から使うべき関数」がわかる選び方フローも用意しました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong><br>&#8211; VLOOKUPしか使ったことがない人<br>&#8211; XLOOKUPに乗り換えるべきか迷っている人<br>&#8211; INDEX+MATCHの実力を知りたい人</p></blockquote>




  <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">VLOOKUP・XLOOKUP・INDEX/MATCHの違い【結論から】</a><ol><li><a href="#toc2" tabindex="0">3関数の機能比較表</a></li><li><a href="#toc3" tabindex="0">今日から使うべき検索関数がわかる選び方フロー</a></li></ol></li><li><a href="#toc4" tabindex="0">VLOOKUP関数の特徴とメリット・デメリット</a><ol><li><a href="#toc5" tabindex="0">VLOOKUPの基本構文</a></li><li><a href="#toc6" tabindex="0">VLOOKUPのメリット</a></li><li><a href="#toc7" tabindex="0">VLOOKUPのデメリット</a></li></ol></li><li><a href="#toc8" tabindex="0">XLOOKUP関数の特徴とメリット・デメリット</a><ol><li><a href="#toc9" tabindex="0">XLOOKUPの基本構文</a></li><li><a href="#toc10" tabindex="0">XLOOKUPのメリット</a></li><li><a href="#toc11" tabindex="0">XLOOKUPのデメリット</a></li></ol></li><li><a href="#toc12" tabindex="0">INDEX/MATCH関数の特徴とメリット・デメリット</a><ol><li><a href="#toc13" tabindex="0">INDEX/MATCHの基本構文</a></li><li><a href="#toc14" tabindex="0">INDEX/MATCHのメリット</a></li><li><a href="#toc15" tabindex="0">INDEX/MATCHのデメリット</a></li></ol></li><li><a href="#toc16" tabindex="0">4つの比較軸で徹底比較</a><ol><li><a href="#toc17" tabindex="0">比較1: バージョン互換性</a></li><li><a href="#toc18" tabindex="0">比較2: 検索方向（左方向検索への対応）</a></li><li><a href="#toc19" tabindex="0">比較3: エラー処理の手間</a></li><li><a href="#toc20" tabindex="0">比較4: 処理速度（大量データ時の違い）</a></li></ol></li><li><a href="#toc21" tabindex="0">よくある失敗パターンと対処法</a><ol><li><a href="#toc22" tabindex="0">パターン1: #N/Aエラーが出る</a></li><li><a href="#toc23" tabindex="0">パターン2: VLOOKUPの列番号ずれを防ぐ方法</a></li><li><a href="#toc24" tabindex="0">パターン3: XLOOKUPが使えないときの代替策</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a><ol><li><a href="#toc26" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VLOOKUP・XLOOKUP・INDEX/MATCHの違い【結論から】</span></h2>



<p class="wp-block-paragraph">最初に結論をお伝えします。3つの関数の使い分けは次のとおりです。</p>



<ul class="wp-block-list"><li><strong>Microsoft 365 または Excel 2021 を使っている</strong> → XLOOKUPが最適</li><li><strong>Excel 2019以前、または古いバージョンとファイルを共有する</strong> → INDEX+MATCH が安心</li><li><strong>シンプルな右方向の検索だけ</strong> → VLOOKUPでも十分</li></ul>



<h3 class="wp-block-heading"><span id="toc2">3関数の機能比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>VLOOKUP</th><th>XLOOKUP</th><th>INDEX+MATCH</th></tr></thead><tbody><tr><td>対応バージョン</td><td>全バージョン</td><td>Excel 2021 / 365</td><td>全バージョン</td></tr><tr><td>検索方向</td><td>右方向のみ</td><td>左右どちらも</td><td>左右どちらも</td></tr><tr><td>エラー処理</td><td>IFERRORが必要</td><td>第4引数で指定可</td><td>IFERRORが必要</td></tr><tr><td>列挿入への耐性</td><td>弱い（列番号ずれ）</td><td>強い</td><td>強い</td></tr><tr><td>構文の長さ</td><td>短い（4引数）</td><td>短い（実質3引数）</td><td>長い（2関数ネスト）</td></tr><tr><td>学習コスト</td><td>低い</td><td>低い</td><td>やや高い</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">今日から使うべき検索関数がわかる選び方フロー</span></h3>



<p class="wp-block-paragraph">自分の環境に合った関数を判定してみてください。</p>



<p class="wp-block-paragraph"><strong>ステップ1: Excelのバージョンを確認</strong></p>



<p class="wp-block-paragraph">お使いのExcelはMicrosoft 365またはExcel 2021ですか？</p>



<ul class="wp-block-list"><li><strong>はい</strong> → ステップ2へ</li><li><strong>いいえ（Excel 2019以前）</strong> → ステップ3へ</li><li><strong>わからない</strong> → 「ファイル」→「アカウント」で確認できます</li></ul>



<p class="wp-block-paragraph"><strong>ステップ2: ファイルを共有する相手のバージョン</strong></p>



<p class="wp-block-paragraph">古いバージョンのExcelを使う人とファイルを共有しますか？</p>



<ul class="wp-block-list"><li><strong>共有しない、または相手もMicrosoft 365</strong> → <strong>XLOOKUPを使いましょう</strong></li><li><strong>共有する（相手がExcel 2019以前）</strong> → ステップ3へ</li></ul>



<p class="wp-block-paragraph"><strong>ステップ3: 検索方向の確認</strong></p>



<p class="wp-block-paragraph">検索値より左側の列から値を取得する必要がありますか？</p>



<ul class="wp-block-list"><li><strong>はい（左方向の検索が必要）</strong> → <strong>INDEX+MATCHを使いましょう</strong></li><li><strong>いいえ（右方向だけでOK）</strong> → <strong>VLOOKUPでも対応できます</strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「今からExcelを本気で学ぶなら、まずどれ？」と聞かれたら、答えはXLOOKUPです。Microsoft 365の普及率は年々上がっています。ただし社内の環境がExcel 2019以前の場合は、INDEX+MATCHを覚えておくと安心です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">VLOOKUP関数の特徴とメリット・デメリット</span></h2>



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



<pre class="wp-block-code"><code>=VLOOKUP(検索値, 範囲, 列番号, [検索の型])</code></pre>



<p class="wp-block-paragraph">たとえば、社員番号「A003」の名前を取得したい場合です。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;A003&quot;, A1:C10, 3, FALSE)</code></pre>



<p class="wp-block-paragraph">A1:C10の範囲でA列から「A003」を探します。見つかったら同じ行の3列目の値を返します。</p>



<h3 class="wp-block-heading"><span id="toc6">VLOOKUPのメリット</span></h3>



<ul class="wp-block-list"><li><strong>知名度が圧倒的</strong>: Excel入門書やネット記事で最も情報が多い</li><li><strong>全バージョンで動く</strong>: Excel 2007以降ならどの環境でも使える</li><li><strong>構文がシンプル</strong>: 引数4つで覚えやすい</li></ul>



<h3 class="wp-block-heading"><span id="toc7">VLOOKUPのデメリット</span></h3>



<p class="wp-block-paragraph">VLOOKUPには2つの弱点があります。</p>



<p class="wp-block-paragraph"><strong>1. 左方向に検索できない</strong></p>



<p class="wp-block-paragraph">VLOOKUPは範囲の一番左の列で検索します。検索列より左の値は取得できません。</p>



<p class="wp-block-paragraph">たとえばB列の商品コードで検索してA列の商品名を取得する、ということができません。この場合は列の並びを変えるか、別の関数を使う必要があります。</p>



<p class="wp-block-paragraph"><strong>2. 列番号がハードコードでずれやすい</strong></p>



<p class="wp-block-paragraph">第3引数の列番号は「何列目を返すか」を数値で指定します。あとから列を挿入すると番号がずれてしまいます。</p>



<p class="wp-block-paragraph">数式を100個コピーしたあとに列を追加すると、100個すべて修正が必要です。大きな表ほどリスクが高くなります。</p>



<p class="wp-block-paragraph">詳しくは「<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方</a>」をご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc8">XLOOKUP関数の特徴とメリット・デメリット</span></h2>



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



<pre class="wp-block-code"><code>=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])</code></pre>



<p class="wp-block-paragraph">同じく社員番号「A003」の名前を取得する場合です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A003&quot;, A1:A10, C1:C10)</code></pre>



<p class="wp-block-paragraph">VLOOKUPとの違いが一目でわかりますよね。列番号ではなく「どの列を返すか」を直接指定しています。</p>



<h3 class="wp-block-heading"><span id="toc10">XLOOKUPのメリット</span></h3>



<ul class="wp-block-list"><li><strong>左方向の検索ができる</strong>: 検索範囲と戻り範囲を自由に指定可</li><li><strong>エラー処理が組み込み</strong>: 第4引数に「見つからないときの値」を直接指定可</li><li><strong>列番号がないのでずれない</strong>: 列の挿入・削除に強い</li></ul>



<p class="wp-block-paragraph">XLOOKUPでエラー処理を組み込む例です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A003&quot;, A1:A10, C1:C10, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">見つからない場合は「該当なし」と表示されます。VLOOKUPのようにIFERROR関数で囲む必要がありません。</p>



<h3 class="wp-block-heading"><span id="toc11">XLOOKUPのデメリット</span></h3>



<p class="wp-block-paragraph"><strong>1. 対応バージョンが限られる</strong></p>



<p class="wp-block-paragraph">XLOOKUPはExcel 2021およびMicrosoft 365専用です。Excel 2019以前では <code>#NAME?</code> エラーになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>社内でExcelのバージョンが混在している場合は要注意です。XLOOKUPで作ったファイルを古いバージョンで開くと、数式がすべてエラーになります。</p></blockquote>



<p class="wp-block-paragraph"><strong>2. ネット上の情報がまだ少ない</strong></p>



<p class="wp-block-paragraph">VLOOKUPと比べると解説記事や質問サイトの情報量が少なめです。困ったときに検索で解決しにくい場面があります。</p>



<p class="wp-block-paragraph">詳しくは「<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数の使い方</a>」をご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc12">INDEX/MATCH関数の特徴とメリット・デメリット</span></h2>



<h3 class="wp-block-heading"><span id="toc13">INDEX/MATCHの基本構文</span></h3>



<p class="wp-block-paragraph">INDEX関数とMATCH関数を組み合わせて使います。</p>



<pre class="wp-block-code"><code>=INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0))</code></pre>



<p class="wp-block-paragraph">社員番号「A003」の名前を取得する場合です。</p>



<pre class="wp-block-code"><code>=INDEX(C1:C10, MATCH(&quot;A003&quot;, A1:A10, 0))</code></pre>



<p class="wp-block-paragraph">MATCH関数がA列から「A003」の行位置を取得します。INDEX関数がC列の同じ行の値を返します。</p>



<h3 class="wp-block-heading"><span id="toc14">INDEX/MATCHのメリット</span></h3>



<ul class="wp-block-list"><li><strong>全バージョン対応</strong>: Excel 2007以降ならどこでも動く</li><li><strong>左方向の検索ができる</strong>: 検索範囲と戻り範囲が独立</li><li><strong>列の挿入・削除に強い</strong>: 列番号を使わないのでずれない</li><li><strong>処理速度が速い</strong>: 大量データではVLOOKUPより高速</li></ul>



<h3 class="wp-block-heading"><span id="toc15">INDEX/MATCHのデメリット</span></h3>



<p class="wp-block-paragraph"><strong>1. 数式が長くなる</strong></p>



<p class="wp-block-paragraph">2つの関数をネストするので、数式が長くなります。慣れるまでは書き方に戸惑うかもしれません。</p>



<p class="wp-block-paragraph"><strong>2. 学習コストがやや高い</strong></p>



<p class="wp-block-paragraph">INDEX関数とMATCH関数の2つを理解する必要があります。VLOOKUPやXLOOKUPが1つの関数で完結するのに対し、少しハードルが上がります。</p>



<p class="wp-block-paragraph">それぞれの詳しい使い方は以下の記事で解説しています。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数の使い方</a></li></ul>



<h2 class="wp-block-heading"><span id="toc16">4つの比較軸で徹底比較</span></h2>



<p class="wp-block-paragraph">ここからは、3つの関数を4つの軸で詳しく比較していきます。</p>



<h3 class="wp-block-heading"><span id="toc17">比較1: バージョン互換性</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>Excel 2016</th><th>Excel 2019</th><th>Excel 2021</th><th>Microsoft 365</th></tr></thead><tbody><tr><td>VLOOKUP</td><td>使える</td><td>使える</td><td>使える</td><td>使える</td></tr><tr><td>XLOOKUP</td><td>使えない</td><td>使えない</td><td>使える</td><td>使える</td></tr><tr><td>INDEX+MATCH</td><td>使える</td><td>使える</td><td>使える</td><td>使える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">XLOOKUPだけがExcel 2021以降に限定されています。社内でバージョンが統一されていない場合は、VLOOKUPかINDEX+MATCHを選んでください。</p>



<h3 class="wp-block-heading"><span id="toc18">比較2: 検索方向（左方向検索への対応）</span></h3>



<p class="wp-block-paragraph">VLOOKUPは範囲の最左列で検索し、右方向にしか値を返せません。</p>



<p class="wp-block-paragraph">たとえば次のような表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（商品名）</th><th>B列（商品コード）</th><th>C列（価格）</th></tr></thead><tbody><tr><td>りんご</td><td>F001</td><td>150</td></tr><tr><td>バナナ</td><td>F002</td><td>100</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「商品コード F001 の商品名を知りたい」場合です。VLOOKUPではB列で検索してA列（左側）を返せません。</p>



<ul class="wp-block-list"><li><strong>VLOOKUP</strong>: 不可（補助列の追加が必要）</li><li><strong>XLOOKUP</strong>: <code>=XLOOKUP("F001", B:B, A:A)</code> で簡単にできる</li><li><strong>INDEX+MATCH</strong>: <code>=INDEX(A:A, MATCH("F001", B:B, 0))</code> でできる</li></ul>



<h3 class="wp-block-heading"><span id="toc19">比較3: エラー処理の手間</span></h3>



<p class="wp-block-paragraph">検索値が見つからない場合の動作を比較します。</p>



<p class="wp-block-paragraph"><strong>VLOOKUPの場合（IFERROR関数が必要）</strong></p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(&quot;A999&quot;, A1:C10, 3, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>XLOOKUPの場合（第4引数で指定）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A999&quot;, A1:A10, C1:C10, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>INDEX+MATCHの場合（IFERROR関数が必要）</strong></p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(C1:C10, MATCH(&quot;A999&quot;, A1:A10, 0)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPが最もシンプルです。エラー処理を関数内で完結できるのは大きなメリットです。</p>



<h3 class="wp-block-heading"><span id="toc20">比較4: 処理速度（大量データ時の違い）</span></h3>



<p class="wp-block-paragraph">数万行を超えるデータで検索する場合、処理速度に差が出ます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>速度の傾向</th><th>理由</th></tr></thead><tbody><tr><td>VLOOKUP</td><td>やや遅い</td><td>範囲全体を保持するためメモリ効率が低い</td></tr><tr><td>XLOOKUP</td><td>速い</td><td>検索範囲と戻り範囲が分離しており効率的</td></tr><tr><td>INDEX+MATCH</td><td>速い</td><td>MATCHが行位置だけを返すため軽量</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">体感できるほどの差が出るのは、数万行以上の表で大量に数式を使う場合です。数百行程度なら速度差はほぼ気になりません。</p>



<h2 class="wp-block-heading"><span id="toc21">よくある失敗パターンと対処法</span></h2>



<p class="wp-block-paragraph">3つの関数で起きやすいトラブルをまとめました。</p>



<h3 class="wp-block-heading"><span id="toc22">パターン1: #N/Aエラーが出る</span></h3>



<p class="wp-block-paragraph">3つの関数に共通する、最も多いエラーです。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>検索値のスペルミス</td><td>検索値と表の値を目視で確認する</td></tr><tr><td>余分なスペースが入っている</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で空白を除去する</td></tr><tr><td>全角・半角の不一致</td><td>ASC関数で半角に統一する</td></tr><tr><td>検索の型がTRUE（近似一致）</td><td>FALSEまたは0を指定して完全一致にする</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラー処理には<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>が便利です。#N/Aだけ処理したい場合は<a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>もおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc23">パターン2: VLOOKUPの列番号ずれを防ぐ方法</span></h3>



<p class="wp-block-paragraph">VLOOKUPの第3引数に数値を直接書くと、列の追加でずれます。MATCH関数を使って列番号を自動取得する方法があります。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;A003&quot;, A1:E10, MATCH(&quot;価格&quot;, A1:E1, 0), FALSE)</code></pre>



<p class="wp-block-paragraph">ヘッダー行から「価格」列の位置を自動で取得しています。列を挿入しても数式がずれません。</p>



<p class="wp-block-paragraph">ただしここまでするなら、INDEX+MATCHに切り替えるほうが合理的です。</p>



<h3 class="wp-block-heading"><span id="toc24">パターン3: XLOOKUPが使えないときの代替策</span></h3>



<p class="wp-block-paragraph">Excel 2019以前で <code>#NAME?</code> エラーが出る場合です。XLOOKUPの代わりにINDEX+MATCHを使いましょう。</p>



<p class="wp-block-paragraph">XLOOKUP → INDEX+MATCHの書き換え例です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A003&quot;, A1:A10, C1:C10, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">上の数式はINDEX+MATCHで書くとこうなります。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(C1:C10, MATCH(&quot;A003&quot;, A1:A10, 0)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">機能は同じです。XLOOKUPのほうが短いですが、INDEX+MATCHなら全バージョンで動きます。</p>



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



<p class="wp-block-paragraph">VLOOKUP・XLOOKUP・INDEX/MATCHの違いを振り返ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>選ぶ基準</th><th>おすすめの関数</th></tr></thead><tbody><tr><td>Excel 2021 / 365 でシンプルに使いたい</td><td>XLOOKUP</td></tr><tr><td>全バージョン対応 + 左方向検索が必要</td><td>INDEX+MATCH</td></tr><tr><td>シンプルな右方向検索だけ</td><td>VLOOKUP</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったらまずXLOOKUPを試してみてください。もしバージョンの制約がある場合は、INDEX+MATCHを覚えておけば困ることはありません。VLOOKUPは既存の数式を読み解くためにも知っておくと安心です。</p>



<p class="wp-block-paragraph">3つとも「表からデータを探す」という目的は同じです。環境と用途に合った関数を選んでいきましょう。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">ExcelのVLOOKUP関数の使い方｜引数・エラー対処・INDEX+MATCHとの使い分けまで</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">ExcelのXLOOKUP関数の使い方｜VLOOKUPとの違い・エラー対処まで解説</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">ExcelのMATCH関数の使い方｜検索値の位置を取得する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xmatch/">XMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excel TRUNC関数の使い方｜桁数を指定して切り捨てる基本と実務活用</title>
		<link>https://mashukabu.com/excel-function-howto-use-trunc/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-trunc/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 23 Sep 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[TRUNC関数]]></category>
		<category><![CDATA[切り捨て]]></category>
		<category><![CDATA[桁数指定]]></category>
		<category><![CDATA[端数処理]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2745</guid>

					<description><![CDATA[ExcelのTRUNC関数で小数を指定した桁数で切り捨てる方法を解説。消費税計算・単価計算など実務例を紹介し、INT・ROUND・ROUNDDOWNとの違いを比較表で整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで計算結果の小数を「小数第2位まで残して、それ以下は切り捨てたい」と思ったことはありませんか。単価計算や消費税の端数処理で、小数点以下を好きな桁数でバッサリ落としたい場面は意外と多いですよね。</p>



<p class="wp-block-paragraph">TRUNC関数を使えば、桁数を指定して切り捨てが一発でできます。この記事では基本の書き方から実務パターン、INT・ROUNDとの使い分けまでまとめて紹介します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>小数を指定した桁数で切り捨てたい</li><li>TRUNC関数とINT関数の違いを知りたい</li><li>消費税や単価計算で端数処理をしたい</li></ul>




  <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">TRUNC関数とは？</a></li><li><a href="#toc2" tabindex="0">TRUNC関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">TRUNC関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">整数に切り捨てる（桁数を省略）</a></li><li><a href="#toc7" tabindex="0">桁数を指定して切り捨てる</a></li><li><a href="#toc8" tabindex="0">セル参照で指定する</a></li><li><a href="#toc9" tabindex="0">桁数にマイナスを指定する</a></li></ol></li><li><a href="#toc10" tabindex="0">TRUNC関数の実務活用パターン</a><ol><li><a href="#toc11" tabindex="0">消費税の端数切り捨て</a></li><li><a href="#toc12" tabindex="0">単価計算で小数第2位まで残す</a></li><li><a href="#toc13" tabindex="0">千円単位で表示する</a></li><li><a href="#toc14" tabindex="0">時間の小数を整数に変換する</a></li></ol></li><li><a href="#toc15" tabindex="0">TRUNC関数の負の数での挙動</a><ol><li><a href="#toc16" tabindex="0">負の数は「ゼロ方向」に丸まる</a></li><li><a href="#toc17" tabindex="0">TRUNC関数とINT関数の結果比較</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc20" tabindex="0">#NUM! エラー</a></li><li><a href="#toc21" tabindex="0">結果が期待と違う（浮動小数点の誤差）</a></li></ol></li><li><a href="#toc22" tabindex="0">似た関数との違い・使い分け</a></li><li><a href="#toc23" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">TRUNC（トランケート）関数は、数値の小数部分を指定した桁数で切り捨てる関数です。名前は英語の「truncate（切り詰める）」に由来しています。</p>



<p class="wp-block-paragraph">たとえば「3.14159」にTRUNC関数で桁数「2」を指定すると「3.14」が返ります。四捨五入ではなく、指定した桁より下をそのまま切り落とすのがポイントです。</p>



<p class="wp-block-paragraph">Excel 2007以降のすべてのバージョンで使用できます。Microsoft 365やGoogleスプレッドシートにも対応しています。</p>



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



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



<pre class="wp-block-code"><code>=TRUNC(数値, [桁数])</code></pre>



<p class="wp-block-paragraph">引数は2つですが、必須なのは「数値」だけです。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>内容</th></tr></thead><tbody><tr><td>数値（number）</td><td>必須</td><td>切り捨てたい数値。セル参照や数式もOK</td></tr><tr><td>桁数（num_digits）</td><td>任意</td><td>切り捨て後に残す小数の桁数。省略すると「0」（整数に切り捨て）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">桁数に「2」を指定すれば小数第2位まで残し、「0」または省略すれば整数になります。</p>



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



<h3 class="wp-block-heading"><span id="toc6">整数に切り捨てる（桁数を省略）</span></h3>



<p class="wp-block-paragraph">桁数を省略すると、小数部分がすべて切り落とされます。</p>



<pre class="wp-block-code"><code>=TRUNC(45.789)</code></pre>



<p class="wp-block-paragraph">結果は「45」です。桁数を省略した場合は「0」を指定したのと同じ動作になります。</p>



<pre class="wp-block-code"><code>=TRUNC(99.999)</code></pre>



<p class="wp-block-paragraph">こちらも結果は「99」です。どれだけ1に近い小数でも、100にはなりません。</p>



<h3 class="wp-block-heading"><span id="toc7">桁数を指定して切り捨てる</span></h3>



<p class="wp-block-paragraph">小数第2位まで残したい場合は、桁数に「2」を指定します。</p>



<pre class="wp-block-code"><code>=TRUNC(3.14159, 2)</code></pre>



<p class="wp-block-paragraph">結果は「3.14」です。小数第3位以下が切り捨てられます。</p>



<pre class="wp-block-code"><code>=TRUNC(123.456, 1)</code></pre>



<p class="wp-block-paragraph">結果は「123.4」です。桁数「1」なので小数第1位まで残ります。</p>



<h3 class="wp-block-heading"><span id="toc8">セル参照で指定する</span></h3>



<p class="wp-block-paragraph">A1に「78.6543」が入っているとします。</p>



<pre class="wp-block-code"><code>=TRUNC(A1, 2)</code></pre>



<p class="wp-block-paragraph">結果は「78.65」です。セル参照でも同じように使えます。実務ではこちらの書き方がメインになるでしょう。</p>



<h3 class="wp-block-heading"><span id="toc9">桁数にマイナスを指定する</span></h3>



<p class="wp-block-paragraph">桁数にマイナスの値を指定すると、整数部分を丸められます。</p>



<pre class="wp-block-code"><code>=TRUNC(1234, -2)</code></pre>



<p class="wp-block-paragraph">結果は「1200」です。百の位より下が切り捨てられます。「-1」なら十の位以下、「-3」なら千の位以下が0になります。</p>



<h2 class="wp-block-heading"><span id="toc10">TRUNC関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc11">消費税の端数切り捨て</span></h3>



<p class="wp-block-paragraph">税込金額を計算するとき、1円未満の端数が出ることがあります。B2に税抜価格が入っているとしましょう。</p>



<pre class="wp-block-code"><code>=TRUNC(B2 * 1.1)</code></pre>



<p class="wp-block-paragraph">たとえば税抜価格が「1,234」の場合、1,234 x 1.1 = 1,357.4 です。TRUNC関数で小数部分が切り捨てられ「1,357」になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>四捨五入したい場合</strong></p><p>取引先との契約で「消費税は四捨五入」と決まっている場合は<a href="https://mashukabu.com/excel-function-howto-use-round/">ROUND関数</a>を使ってください。<code>=ROUND(B2*1.1, 0)</code> で整数に四捨五入できます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">単価計算で小数第2位まで残す</span></h3>



<p class="wp-block-paragraph">原材料の単価を小数第2位までで管理する場面です。A2に合計金額、B2に数量が入っているとします。</p>



<pre class="wp-block-code"><code>=TRUNC(A2/B2, 2)</code></pre>



<p class="wp-block-paragraph">たとえば合計金額「10,000」を数量「3」で割ると3,333.333&#8230;ですが、結果は「3,333.33」になります。桁数「2」で小数第2位まで残しているのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc13">千円単位で表示する</span></h3>



<p class="wp-block-paragraph">売上データを千円単位に切り捨てたい場面です。A2に売上金額が入っているとします。</p>



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



<p class="wp-block-paragraph">たとえば「1,567,890」の場合、結果は「1,567,000」です。千の位以下が切り捨てられます。レポート用の概算値を作るときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc14">時間の小数を整数に変換する</span></h3>



<p class="wp-block-paragraph">分単位のデータを「何時間何分」に変換する場面です。A2に「150」（分）が入っているとしましょう。</p>



<pre class="wp-block-code"><code>=TRUNC(A2/60)</code></pre>



<p class="wp-block-paragraph">150 / 60 = 2.5 ですが、TRUNC関数で「2」（時間）が取り出せます。残りの分は<a href="https://mashukabu.com/excel-function-howto-use-mod/">MOD関数</a>で求めましょう。</p>



<pre class="wp-block-code"><code>=TRUNC(A2/60) &amp; &quot;時間&quot; &amp; MOD(A2,60) &amp; &quot;分&quot;</code></pre>



<p class="wp-block-paragraph">結果は「2時間30分」です。TRUNCで時間、MODで分を取り出す定番パターンです。</p>



<h2 class="wp-block-heading"><span id="toc15">TRUNC関数の負の数での挙動</span></h2>



<p class="wp-block-paragraph">ここがTRUNC関数の特徴を理解するうえで大切なポイントです。</p>



<h3 class="wp-block-heading"><span id="toc16">負の数は「ゼロ方向」に丸まる</span></h3>



<p class="wp-block-paragraph">TRUNC関数は、正の数でも負の数でも「ゼロに近い方向」に切り捨てます。つまり、小数部分を単純に取り除くだけです。</p>



<pre class="wp-block-code"><code>=TRUNC(-8.9)</code></pre>



<p class="wp-block-paragraph">結果は「-8」です。「-9」ではありません。-8.9からゼロに近づく方向の整数は-8なので、そちらが返ります。</p>



<h3 class="wp-block-heading"><span id="toc17">TRUNC関数とINT関数の結果比較</span></h3>



<p class="wp-block-paragraph">正の数では同じ結果ですが、負の数で違いが出ます。</p>



<figure class="wp-block-table"><table><thead><tr><th>数値</th><th>TRUNC(数値)</th><th>INT(数値)</th><th>違い</th></tr></thead><tbody><tr><td>8.9</td><td>8</td><td>8</td><td>同じ</td></tr><tr><td>3.14</td><td>3</td><td>3</td><td>同じ</td></tr><tr><td>-2.3</td><td>-2</td><td>-3</td><td>異なる</td></tr><tr><td>-8.9</td><td>-8</td><td>-9</td><td>異なる</td></tr><tr><td>-0.5</td><td>0</td><td>-1</td><td>異なる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TRUNCは「ゼロ方向」、<a href="https://mashukabu.com/excel-function-howto-use-int/">INT関数</a>は「負の無限大方向」に丸めます。正の数だけなら結果は同じです。マイナスの値が混ざる可能性があるなら、どちらの挙動が欲しいか意識して選びましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>使い分けのコツ</strong></p><p>「小数部分をただ取り除きたい」ならTRUNC関数、「数直線上で左側の整数が欲しい」ならINT関数です。請求金額のように「多めに取らない」のが大事な場面ではTRUNC関数が安全です。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc19">#VALUE! エラー</span></h3>



<p class="wp-block-paragraph">数値として認識できない文字列を渡すと発生します。</p>



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



<p class="wp-block-paragraph">セル参照先に全角数字や余計なスペースが混入していないか確認してみてください。全角数字は<a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a>で半角に変換できます。</p>



<pre class="wp-block-code"><code>=TRUNC(ASC(A1), 2)</code></pre>



<h3 class="wp-block-heading"><span id="toc20">#NUM! エラー</span></h3>



<p class="wp-block-paragraph">桁数に非常に大きな値を指定すると発生することがあります。通常の業務では起きにくいですが、桁数には妥当な範囲（-15 から 15 程度）を指定しましょう。</p>



<h3 class="wp-block-heading"><span id="toc21">結果が期待と違う（浮動小数点の誤差）</span></h3>



<p class="wp-block-paragraph">Excelの内部では小数を2進数で管理しているため、まれに微小な誤差が生じます。</p>



<pre class="wp-block-code"><code>=TRUNC(2.1/0.3)</code></pre>



<p class="wp-block-paragraph">手計算では7ですが、内部では 2.1 / 0.3 が 6.999&#8230; になることがあります。そのためTRUNC関数の結果が「6」になるケースがあります。<a href="https://mashukabu.com/excel-function-howto-use-round/">ROUND関数</a>で先に丸めておくと安心です。</p>



<pre class="wp-block-code"><code>=TRUNC(ROUND(2.1/0.3, 10))</code></pre>



<p class="wp-block-paragraph">結果は「7」です。ROUND関数で小数第10位まで丸めれば、誤差が解消されます。</p>



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



<p class="wp-block-paragraph">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>TRUNC</td><td>ゼロ方向</td><td>可能</td><td>-8.9 → -8</td><td>桁数を指定して切り捨てたいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-int/">INT</a></td><td>負の無限大方向</td><td>不可（常に整数）</td><td>-8.9 → -9</td><td>整数が欲しいとき全般</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-round/">ROUND</a></td><td>四捨五入</td><td>可能</td><td>-8.5 → -9</td><td>端数を丸めたいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-rounddown/">ROUNDDOWN</a></td><td>ゼロ方向</td><td>可能</td><td>-8.9 → -8</td><td>TRUNCと同じ（名前で直感的）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-floor/">FLOOR</a></td><td>負の無限大方向</td><td>倍数指定</td><td>-8.9 → 基準値による</td><td>倍数単位で切り捨てたいとき</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TRUNCとROUNDDOWNの違い</strong></p><p>TRUNCとROUNDDOWNは同じ結果を返します。どちらを使っても構いません。「切り捨て」という名前がわかりやすいROUNDDOWN派と、短く書けるTRUNC派に分かれます。</p></blockquote>



<p class="wp-block-paragraph">選び方のコツは3つです。</p>



<ul class="wp-block-list"><li>「桁数を指定して切り捨てたい」→ TRUNC関数か<a href="https://mashukabu.com/excel-function-howto-use-rounddown/">ROUNDDOWN関数</a></li><li>「とにかく整数にしたい」→ <a href="https://mashukabu.com/excel-function-howto-use-int/">INT関数</a>が一番シンプル</li><li>「15分単位・100円単位で切り捨てたい」→ <a href="https://mashukabu.com/excel-function-howto-use-floor/">FLOOR関数</a></li></ul>



<p class="wp-block-paragraph">丸め関数の全体像を知りたい方は「<a href="https://mashukabu.com/excel-rounding-functions-comparison/">Excelの丸め関数10種を完全比較</a>」もあわせてチェックしてみてください。</p>



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



<p class="wp-block-paragraph">TRUNC関数は、桁数を指定して小数を切り捨てられるシンプルな関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=TRUNC(数値, [桁数])</code> で、桁数を省略すると整数に切り捨て</li><li>正の数でも負の数でも「ゼロ方向」に丸める（小数部分を単純に取り除く）</li><li>桁数にマイナスを指定すると、整数部分を千円単位・万単位で丸められる</li><li>消費税の端数処理、単価計算、千円単位表示など実務の出番が多い</li><li>負の数を扱うときは<a href="https://mashukabu.com/excel-function-howto-use-int/">INT関数</a>との結果の違いに注意する</li></ul>



<p class="wp-block-paragraph">まずは <code>=TRUNC(A1, 2)</code> でセルの値を小数第2位まで切り捨てるところから試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-trunc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのCLEAN関数の使い方｜制御文字を一括削除する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-clean/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-clean/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 19 Aug 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CLEAN関数]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[テキスト整形]]></category>
		<category><![CDATA[制御文字]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2569</guid>

					<description><![CDATA[ExcelのCLEAN関数で印刷できない制御文字を一括削除する方法を解説。基本の書き方からTRIM・SUBSTITUTEとの連携パターン、CLEANでは除去できない文字への対処法まで、実務で役立つデータクレンジング術を紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">CSVや外部システムから取り込んだデータに、目に見えない文字が混ざっていたことはありませんか？ 文字化けのような記号が表示されたり、VLOOKUPが一致しなかったり。手作業で探すのは大変ですし、そもそも見えない文字は目視では見つかりません。</p>



<p class="wp-block-paragraph">CLEAN関数を使えば、こうした印刷できない制御文字をまとめて削除できます。この記事では基本の書き方から実務の活用パターンまで紹介します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>CSVや他システムから取り込んだデータの文字化けを解消したい</li><li>印刷できない制御文字を一括で削除したい</li><li>CLEAN関数とTRIM関数の違いを知りたい</li></ul>




  <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">CLEAN関数とは？</a></li><li><a href="#toc2" tabindex="0">CLEAN関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">CLEAN関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">制御文字を削除する基本例</a></li><li><a href="#toc7" tabindex="0">セル参照で一括処理する</a></li><li><a href="#toc8" tabindex="0">文字列を直接指定する</a></li></ol></li><li><a href="#toc9" tabindex="0">CLEAN関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">CLEAN+TRIMで外部データを整形する</a></li><li><a href="#toc11" tabindex="0">CLEAN+SUBSTITUTE+TRIMの3点セットで完全クレンジング</a></li><li><a href="#toc12" tabindex="0">CLEANで除去できない文字をCHAR+SUBSTITUTEで対処する</a></li></ol></li><li><a href="#toc13" tabindex="0">CLEAN関数のよくあるエラーと対処法</a></li><li><a href="#toc14" tabindex="0">似た関数との違い・使い分け</a></li><li><a href="#toc15" tabindex="0">まとめ</a><ol><li><a href="#toc16" tabindex="0">関連記事</a></li><li><a href="#toc17" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">CLEAN（クリーン）関数は、文字列からASCII制御文字を削除する関数です。英語の「clean」は「きれいにする」という意味で、データを浄化するための関数です。</p>



<p class="wp-block-paragraph">ここでいう「制御文字」とは、文字コード0〜31の印刷できない文字のことです。改行コード（CHAR(10)）やタブ（CHAR(9)）、キャリッジリターン（CHAR(13)）などが該当します。</p>



<p class="wp-block-paragraph">これらの文字は画面上では見えないか、四角い記号として表示されます。外部データを取り込んだときに紛れ込むことが多いです。VLOOKUPの不一致やセル内改行の崩れなど、厄介なトラブルの原因になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CLEAN関数が削除するのはASCII制御文字（コード0〜31）のみです。通常のスペースや全角スペースは削除しません。スペースの整理には<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>を使います。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=CLEAN(文字列)</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>文字列</td><td>必須</td><td>制御文字を削除したいテキスト、またはセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は「文字列」の1つだけです。セル参照のほか、ダブルクォーテーションで囲んだ文字列を直接指定することもできます。</p>



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



<h3 class="wp-block-heading"><span id="toc6">制御文字を削除する基本例</span></h3>



<p class="wp-block-paragraph">セルA1に改行コード付きの文字列が入っている場合です。</p>



<pre class="wp-block-code"><code>=CLEAN(A1)</code></pre>



<p class="wp-block-paragraph">CLEAN関数を適用すると、改行やタブなどの制御文字がすべて削除されます。見た目がおかしいデータも、この一手で綺麗になります。</p>



<h3 class="wp-block-heading"><span id="toc7">セル参照で一括処理する</span></h3>



<p class="wp-block-paragraph">データが大量にある場合は、作業列を使って一括処理するのが効率的です。</p>



<pre class="wp-block-code"><code>=CLEAN(A2)</code></pre>



<p class="wp-block-paragraph">この数式を下方向にコピーして、整形後のデータを「値として貼り付け」で元の列に上書きすれば完了です。</p>



<h3 class="wp-block-heading"><span id="toc8">文字列を直接指定する</span></h3>



<p class="wp-block-paragraph">セル参照ではなく、数式内に文字列を直接書くこともできます。</p>



<pre class="wp-block-code"><code>=CLEAN(&quot;テスト&quot; &amp; CHAR(10) &amp; &quot;データ&quot;)</code></pre>



<p class="wp-block-paragraph">CHAR(10)は改行コードです。CLEAN関数が改行を除去して、「テストデータ」と表示されます。</p>



<h2 class="wp-block-heading"><span id="toc9">CLEAN関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">CLEAN+TRIMで外部データを整形する</span></h3>



<p class="wp-block-paragraph">外部データには制御文字とスペースの両方が混ざっていることがよくあります。CLEAN関数と<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>を組み合わせれば、両方を一度に処理できます。</p>



<pre class="wp-block-code"><code>=TRIM(CLEAN(A2))</code></pre>



<p class="wp-block-paragraph">まずCLEAN関数で制御文字を除去し、次にTRIM関数で余分なスペースを整理します。CSVや他システムからのデータ取り込み後は、このセットで処理しておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc11">CLEAN+SUBSTITUTE+TRIMの3点セットで完全クレンジング</span></h3>



<p class="wp-block-paragraph">Webページからコピーしたデータには、ノーブレークスペース（CHAR(160)）が含まれることがあります。この文字はCLEAN関数でもTRIM関数でも削除できません。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>を加えた3点セットなら、ほぼすべての不要文字を除去できます。</p>



<pre class="wp-block-code"><code>=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160),&quot; &quot;)))</code></pre>



<p class="wp-block-paragraph">処理の流れは次のとおりです。</p>



<ol class="wp-block-list"><li>SUBSTITUTE関数でノーブレークスペースを半角スペースに変換</li><li>CLEAN関数で制御文字を除去</li><li>TRIM関数で余分なスペースを整理</li></ol>



<p class="wp-block-paragraph">この3点セットは外部データのクレンジングで最も頼りになる定番パターンです。迷ったらまずこの数式を試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc12">CLEANで除去できない文字をCHAR+SUBSTITUTEで対処する</span></h3>



<p class="wp-block-paragraph">CLEAN関数はASCII制御文字（コード0〜31）だけを削除します。コード128以上のUnicode制御文字やNBSP（CHAR(160)）は対象外です。</p>



<p class="wp-block-paragraph">こうした文字はCODE関数で文字コードを特定し、<a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数</a>とSUBSTITUTE関数で個別に削除します。</p>



<pre class="wp-block-code"><code>=CODE(MID(A1,1,1))</code></pre>



<p class="wp-block-paragraph">まずCODE関数でセル内の先頭文字の文字コードを調べます。正体がわかったら、SUBSTITUTE関数で削除しましょう。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A1,CHAR(127),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">たとえば文字コード127（DEL文字）が混入していた場合、上の数式で削除できます。CLEAN関数の対象外の文字に遭遇したら、この手順で対処してください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ノーブレークスペースの詳細と対策は<a href="https://mashukabu.com/about-nbsp/">ノーブレークスペースの解説記事</a>を参照してください。</p></blockquote>



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



<p class="wp-block-paragraph">CLEAN関数自体はエラーが出にくい関数です。ただし意図した結果にならないケースがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>文字化けが消えない</td><td>Unicode制御文字（コード128以上）</td><td>CODE関数で文字コードを特定し、SUBSTITUTE+CHARで削除</td></tr><tr><td>スペースが残る</td><td>CLEAN関数はスペースを削除しない</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で余分なスペースを除去</td></tr><tr><td>見えない文字が残る</td><td>ノーブレークスペース（CHAR(160)）</td><td><code>=SUBSTITUTE(A1,CHAR(160),"")</code> で削除</td></tr><tr><td>#VALUE!エラー</td><td>引数が指定されていない</td><td>文字列の引数は必須。セル参照か文字列を指定してください</td></tr><tr><td>VLOOKUPが一致しない</td><td>CLEAN後もまだ不一致</td><td><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a>で全角英数字を半角に統一してみてください</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>CLEAN関数で文字化けが消えないときは、<code>=CODE(MID(A1,1,1))</code> で1文字ずつ文字コードを確認してみましょう。0〜31以外の値が返ってきたら、CLEAN関数の対象外の文字です。</p></blockquote>



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



<p class="wp-block-paragraph">CLEAN関数とよく比較される関数の違いを整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>CLEAN関数</th><th>TRIM関数</th><th>SUBSTITUTE関数</th></tr></thead><tbody><tr><td>削除対象</td><td><strong>制御文字</strong>（コード0〜31）</td><td><strong>余分な半角スペース</strong></td><td><strong>指定した文字列</strong></td></tr><tr><td>改行の削除</td><td>できる</td><td>できない</td><td>CHAR(10)を指定すればできる</td></tr><tr><td>スペースの処理</td><td>できない</td><td>前後削除＋内部を1つに圧縮</td><td>指定すれば削除可能</td></tr><tr><td>NBSP（CHAR(160)）</td><td><strong>できない</strong></td><td><strong>できない</strong></td><td>CHAR(160)を指定すれば削除可能</td></tr><tr><td>引数の数</td><td>1つ（文字列のみ）</td><td>1つ（文字列のみ）</td><td>3〜4つ（文字列、検索文字列、置換文字列、[置換対象]）</td></tr><tr><td>使う場面</td><td>外部データの制御文字除去</td><td>スペースの整理</td><td>特定の文字を狙って置換・削除</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けのポイントは「何を消したいか」です。</p>



<ul class="wp-block-list"><li><strong>制御文字</strong>を一括で消したい → CLEAN関数</li><li><strong>余分なスペース</strong>を整理したい → <a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a></li><li><strong>特定の文字</strong>を狙って消したい → <a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a></li><li><strong>全部まとめて整形</strong>したい → <code>=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," ")))</code> の3点セット</li></ul>



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



<p class="wp-block-paragraph">CLEAN関数は「文字列からASCII制御文字を一括削除する」ための関数です。</p>



<ul class="wp-block-list"><li>ASCII制御文字（コード0〜31）の改行・タブ・CRなどを削除する</li><li>引数は「文字列」の1つだけでシンプル</li><li><code>=TRIM(CLEAN(A2))</code> でスペース整理と制御文字除去を同時に処理できる</li><li>ノーブレークスペース（CHAR(160)）はCLEAN対象外。SUBSTITUTE関数で対処する</li><li>3点セット <code>=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," ")))</code> が最強のクレンジング数式</li></ul>



<p class="wp-block-paragraph">外部データの取り込みでおかしな文字が混ざっていたら、まずCLEAN関数を試してみてください。TRIM関数やSUBSTITUTE関数と組み合わせれば、ほとんどのクレンジングに対応できます。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-jis/">JIS関数の使い方</a></li><li><a href="https://mashukabu.com/about-nbsp/">ノーブレークスペースとは</a></li></ul>



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



<p class="wp-block-paragraph">Excel関数の一覧は下記の記事で確認できます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別一覧</a></li></ul>



<p class="wp-block-paragraph">エラー値が表示される場合は、下記の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-clean/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのTRIM関数の使い方｜余分なスペースを一括削除する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-trim/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-trim/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 03 Aug 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[TRIM関数]]></category>
		<category><![CDATA[スペース除去]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[空白削除]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2479</guid>

					<description><![CDATA[ExcelのTRIM関数で文字列の余分なスペースを削除する方法を解説。前後の空白除去や連続スペースの圧縮、VLOOKUP前のデータ整形など実務例を紹介し、SUBSTITUTE・CLEANとの使い分けも整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">コピペしたデータの前後に余計なスペースが入っていて、VLOOKUPが一致しない。そんな経験はありませんか？ 目に見えないスペースは手作業で探すと大変ですし、見落としも起こりがちです。TRIM関数を使えば、文字列の余分なスペースをまとめて削除できます。この記事では基本の書き方から実務の活用パターンまで紹介します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>セルの前後についた余計なスペースを一括で削除したい</li><li>コピペやCSVインポート後のデータを整形したい</li><li>TRIM関数とSUBSTITUTE関数・CLEAN関数の違いを知りたい</li></ul>




  <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">TRIM関数とは？</a></li><li><a href="#toc2" tabindex="0">TRIM関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">TRIM関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">前後のスペースを削除する</a></li><li><a href="#toc7" tabindex="0">連続スペースを1つに圧縮する</a></li><li><a href="#toc8" tabindex="0">文字列を直接指定する</a></li></ol></li><li><a href="#toc9" tabindex="0">TRIM関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">VLOOKUP前のデータ整形</a></li><li><a href="#toc11" tabindex="0">CSVインポート後のクレンジング</a></li><li><a href="#toc12" tabindex="0">TRIM関数とSUBSTITUTE関数の合わせ技</a></li><li><a href="#toc13" tabindex="0">名前リストの姓名間スペース統一</a></li></ol></li><li><a href="#toc14" tabindex="0">TRIM関数で削除できないスペース・文字</a></li><li><a href="#toc15" tabindex="0">TRIM関数とCLEAN関数の違い</a></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc17" tabindex="0">まとめ</a><ol><li><a href="#toc18" tabindex="0">関連記事</a></li><li><a href="#toc19" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">TRIM（トリム）関数は、文字列から余分な半角スペースを削除する関数です。英語の「trim」は「刈り込む・整える」という意味で、まさにデータを綺麗にするための関数です。</p>



<p class="wp-block-paragraph">TRIM関数は次の2つの処理を同時に行います。</p>



<ul class="wp-block-list"><li>文字列の<strong>先頭と末尾</strong>にあるスペースをすべて削除する</li><li>文字列の<strong>内部</strong>にある連続した半角スペースを<strong>1つ</strong>に圧縮する</li></ul>



<p class="wp-block-paragraph">たとえば「<code>   田中  太郎  </code>」という文字列にTRIM関数を使うと、「<code>田中 太郎</code>」になります。前後のスペースが消えて、名前の間の連続スペースも1つにまとまります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ワークシートのTRIM関数は半角スペース専用です。VBAにも同名のTrim関数がありますが、VBA版は前後のスペースだけを除去します。内部の連続スペースは圧縮しません。VBAの空白除去については<a href="https://mashukabu.com/excel-vba-howto-use-trim/">VBA Trim関数</a>の記事を参照してください。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=TRIM(文字列)</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>文字列</td><td>必須</td><td>余分なスペースを削除したいテキスト、またはセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は「文字列」の1つだけなので、とてもシンプルです。セル参照のほか、ダブルクォーテーションで囲んだ文字列を直接指定することもできます。</p>



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



<h3 class="wp-block-heading"><span id="toc6">前後のスペースを削除する</span></h3>



<p class="wp-block-paragraph">セルA1に「<code>  東京都新宿区 </code>」と前後にスペースが入っている場合です。</p>



<pre class="wp-block-code"><code>=TRIM(A1)</code></pre>



<p class="wp-block-paragraph">結果は「<code>東京都新宿区</code>」になります。先頭と末尾のスペースがすべて消えます。</p>



<h3 class="wp-block-heading"><span id="toc7">連続スペースを1つに圧縮する</span></h3>



<p class="wp-block-paragraph">セルA1に「<code>田中  太郎</code>」と名前の間にスペースが2つ入っている場合です。</p>



<pre class="wp-block-code"><code>=TRIM(A1)</code></pre>



<p class="wp-block-paragraph">結果は「<code>田中 太郎</code>」になります。内部の連続スペースが1つに圧縮されます。もちろん前後にもスペースがあれば同時に削除されます。</p>



<h3 class="wp-block-heading"><span id="toc8">文字列を直接指定する</span></h3>



<p class="wp-block-paragraph">セル参照ではなく、数式の中に文字列を直接書くこともできます。</p>



<pre class="wp-block-code"><code>=TRIM(&quot;  Excel 関数   &quot;)</code></pre>



<p class="wp-block-paragraph">結果は「<code>Excel 関数</code>」です。前後のスペースが消え、内部の連続スペースが1つに圧縮されます。</p>



<h2 class="wp-block-heading"><span id="toc9">TRIM関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">VLOOKUP前のデータ整形</span></h3>



<p class="wp-block-paragraph">外部システムから取り込んだデータには、見えないスペースが紛れ込んでいることがあります。このスペースが原因で<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>が「一致なし」になるケースは非常に多いです。</p>



<p class="wp-block-paragraph">検索値と検索範囲の両方にTRIM関数を適用して、スペースの影響を排除しましょう。</p>



<pre class="wp-block-code"><code>=VLOOKUP(TRIM(A2),B:C,2,FALSE)</code></pre>



<p class="wp-block-paragraph">VLOOKUP・INDEX/MATCHで結果がおかしいときは、まずTRIM関数を試してみてください。<a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数</a>で「見た目は同じなのに文字数が違う」かどうかを確認するのも有効です。</p>



<pre class="wp-block-code"><code>=LEN(A2)=LEN(TRIM(A2))</code></pre>



<p class="wp-block-paragraph">この数式がFALSEなら、セルに余分なスペースが含まれている証拠です。</p>



<h3 class="wp-block-heading"><span id="toc11">CSVインポート後のクレンジング</span></h3>



<p class="wp-block-paragraph">CSVファイルをExcelに取り込むと、フィールドの前後にスペースが入ることがあります。データが大量にある場合は、作業列を使ってTRIM関数で一括整形するのが効率的です。</p>



<pre class="wp-block-code"><code>=TRIM(A2)</code></pre>



<p class="wp-block-paragraph">この数式を下方向にコピーして、整形後のデータを「値として貼り付け」で元の列に上書きすれば完了です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>CSVデータにはスペース以外にも改行コードなどの制御文字が混ざることがあります。その場合は<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>と組み合わせると確実です。<code>=TRIM(CLEAN(A2))</code> で制御文字の除去とスペース整形を同時に行えます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">TRIM関数とSUBSTITUTE関数の合わせ技</span></h3>



<p class="wp-block-paragraph">TRIM関数は半角スペースだけを処理します。全角スペースも含めて除去したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>との合わせ技が便利です。</p>



<pre class="wp-block-code"><code>=TRIM(SUBSTITUTE(A1,&quot;　&quot;,&quot; &quot;))</code></pre>



<p class="wp-block-paragraph">この数式はまずSUBSTITUTE関数で全角スペースを半角スペースに変換し、その後TRIM関数で余分な半角スペースを整理します。全角・半角が混在したデータを一発で綺麗にできるので、覚えておくと重宝します。</p>



<p class="wp-block-paragraph">すべてのスペースを完全に消したい場合はSUBSTITUTE関数だけで対応できます。</p>



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



<p class="wp-block-paragraph">「単語間のスペースは1つ残したい」ならTRIM関数、「スペースを全部消したい」ならSUBSTITUTE関数と使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc13">名前リストの姓名間スペース統一</span></h3>



<p class="wp-block-paragraph">社員名簿や顧客リストで「田中  太郎」「佐藤 花子」のように姓名間のスペースがバラバラなことがあります。TRIM関数を使えば、連続スペースが1つに統一されます。</p>



<pre class="wp-block-code"><code>=TRIM(A2)</code></pre>



<p class="wp-block-paragraph">結果はすべて「姓（スペース1つ）名」の形に揃います。データの見た目が統一されるだけでなく、検索や集計の精度も上がります。</p>



<h2 class="wp-block-heading"><span id="toc14">TRIM関数で削除できないスペース・文字</span></h2>



<p class="wp-block-paragraph">TRIM関数は万能ではありません。処理できるのは半角スペース（文字コード32）だけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>文字の種類</th><th>文字コード</th><th>TRIM関数で削除</th><th>対処法</th></tr></thead><tbody><tr><td>半角スペース</td><td>32</td><td>できる</td><td>TRIM関数でOK</td></tr><tr><td>全角スペース</td><td>12288</td><td><strong>できない</strong></td><td>SUBSTITUTE関数で半角に変換してからTRIM</td></tr><tr><td>改行（LF）</td><td>10</td><td><strong>できない</strong></td><td>CLEAN関数、またはSUBSTITUTE(A1,CHAR(10),&#8221;&#8221;)</td></tr><tr><td>タブ</td><td>9</td><td><strong>できない</strong></td><td>CLEAN関数、またはSUBSTITUTE(A1,CHAR(9),&#8221;&#8221;)</td></tr><tr><td>ノーブレークスペース（NBSP）</td><td>160</td><td><strong>できない</strong></td><td>SUBSTITUTE(A1,CHAR(160),&#8221;&#8221;)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Webページからコピーしたデータには、<a href="https://mashukabu.com/about-nbsp/">ノーブレークスペース</a>（CHAR(160)）が含まれていることがあります。見た目は通常のスペースと同じなのにTRIM関数で消えない場合は、この文字を疑ってみてください。</p>



<pre class="wp-block-code"><code>=TRIM(SUBSTITUTE(A1,CHAR(160),&quot; &quot;))</code></pre>



<p class="wp-block-paragraph">CHAR(160)を半角スペースに変換してからTRIM関数に渡すことで、ノーブレークスペースも除去できます。</p>



<h2 class="wp-block-heading"><span id="toc15">TRIM関数とCLEAN関数の違い</span></h2>



<p class="wp-block-paragraph">TRIM関数と<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>は、どちらも「不要な文字を消す」関数ですが、削除対象が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>TRIM関数</th><th>CLEAN関数</th></tr></thead><tbody><tr><td>削除対象</td><td><strong>余分な半角スペース</strong></td><td><strong>印刷できない制御文字</strong>（文字コード0〜31）</td></tr><tr><td>スペースの処理</td><td>前後削除 + 内部を1つに圧縮</td><td>スペースは削除しない</td></tr><tr><td>改行の削除</td><td>できない</td><td>できる（改行は文字コード10）</td></tr><tr><td>タブの削除</td><td>できない</td><td>できる（タブは文字コード9）</td></tr><tr><td>使う場面</td><td>スペースの整理</td><td>制御文字の除去</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">両方を同時に行いたい場合は、組み合わせて使うのがベストです。</p>



<pre class="wp-block-code"><code>=TRIM(CLEAN(A1))</code></pre>



<p class="wp-block-paragraph">CLEAN関数で制御文字を除去し、TRIM関数でスペースを整理する順番で使います。CSVや外部データの取り込み後には、このセットで処理しておくと安心です。</p>



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



<p class="wp-block-paragraph">TRIM関数自体はエラーが出にくい関数ですが、意図した結果にならないケースがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>スペースが消えない</td><td>全角スペースが含まれている</td><td>SUBSTITUTE関数で半角に変換してからTRIMを適用（上述の合わせ技を参照）</td></tr><tr><td>スペースが消えない</td><td>ノーブレークスペース（CHAR(160)）が含まれている</td><td><code>=TRIM(SUBSTITUTE(A1,CHAR(160)," "))</code> で対応</td></tr><tr><td>#VALUE!エラー</td><td>引数が指定されていない</td><td>文字列の引数は必須です。空にせずセル参照または文字列を指定してください</td></tr><tr><td>VLOOKUPが一致しない</td><td>TRIM後もまだ不一致</td><td><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a>で全角英数字を半角に統一してみてください</td></tr><tr><td>数値として認識されない</td><td>TRIM後の値が文字列のまま</td><td>TRIM関数の結果は文字列です。数値として使いたい場合は<code>=TRIM(A1)*1</code>や<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で変換してください</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>TRIM関数でスペースが消えないときは、<code>=CODE(LEFT(A1,1))</code> で先頭の文字コードを確認してみましょう。32（半角スペース）以外の値が返ってきたら、その文字コードに対応したSUBSTITUTE関数で処理できます。</p></blockquote>



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



<p class="wp-block-paragraph">TRIM関数は「文字列の余分な半角スペースを削除する」ための関数です。</p>



<ul class="wp-block-list"><li>前後のスペースをすべて削除し、内部の連続スペースを1つに圧縮する</li><li>引数は「文字列」の1つだけでシンプル</li><li>VLOOKUP前のデータ整形やCSVクレンジングに効果的</li><li>全角スペースには<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>、制御文字には<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>と組み合わせる</li><li><code>=TRIM(CLEAN(A1))</code> で制御文字とスペースを同時に処理できる</li></ul>



<p class="wp-block-paragraph">データの整形はVLOOKUPや集計の精度に直結します。外部データを取り込んだらまずTRIM関数で整えるクセをつけておくと、トラブルを未然に防げます。ぜひ活用してみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-vba-howto-use-trim/">VBA Trim関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li></ul>



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



<p class="wp-block-paragraph">Excel関数の一覧は下記の記事で確認できます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別一覧</a></li></ul>



<p class="wp-block-paragraph">エラー値が表示される場合は、下記の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-trim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのCONCAT関数の使い方｜複数の文字列をまとめて結合する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-concat/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-concat/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 24 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CONCATENATE]]></category>
		<category><![CDATA[CONCAT関数]]></category>
		<category><![CDATA[テキスト操作]]></category>
		<category><![CDATA[文字列結合]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2405</guid>

					<description><![CDATA[ExcelのCONCAT関数で複数の文字列やセル範囲をまとめて結合する方法を解説。&#038;演算子やCONCATENATEとの違い、TEXTJOINとの使い分けを比較表で整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで複数のセルの文字列を1つにまとめたい場面、よくありますよね。姓と名を結合したり、住所を1セルにまとめたり。そんなときに便利なのがCONCAT関数です。</p>



<p class="wp-block-paragraph">この記事では、CONCAT関数の基本から実務で使える活用パターンまで解説します。&#038;演算子やCONCATENATE関数との違いも整理しているので、使い分けに迷っている方はぜひ参考にしてみてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 複数のセルに分かれた文字列を1つにまとめたい<br>&#8211; &#038;演算子とCONCAT関数のどちらを使うか迷っている<br>&#8211; CONCATENATE関数との違いを知りたい</p></blockquote>




  <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">CONCAT関数とは？</a></li><li><a href="#toc2" tabindex="0">CONCAT関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">CONCAT関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">セルを個別に指定して結合する</a></li><li><a href="#toc7" tabindex="0">セル範囲を指定して結合する</a></li><li><a href="#toc8" tabindex="0">文字列を直接入力して結合する</a></li></ol></li><li><a href="#toc9" tabindex="0">CONCAT関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">姓と名を結合する（スペース区切り）</a></li><li><a href="#toc11" tabindex="0">住所をまとめて1セルに結合する</a></li><li><a href="#toc12" tabindex="0">日付に曜日を付けた文字列を作る</a></li><li><a href="#toc13" tabindex="0">区切り文字付きで複数セルを結合する</a></li></ol></li><li><a href="#toc14" tabindex="0">&#038;演算子との違い</a></li><li><a href="#toc15" tabindex="0">CONCATENATE関数との違い</a></li><li><a href="#toc16" tabindex="0">TEXTJOIN関数との使い分け</a></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">関連記事</a></li><li><a href="#toc20" tabindex="0">関数一覧</a></li><li><a href="#toc21" tabindex="0">エラー値についてのまとめ記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">CONCAT関数は、複数の文字列やセル範囲をまとめて1つの文字列に結合する関数です。読み方は「コンカット」で、英語の <strong>Concatenate（連結する）</strong> の略称が由来になっています。</p>



<p class="wp-block-paragraph">CONCAT関数は Excel 2019 / Microsoft 365 以降で使用できます。それ以前のバージョンでは、後述する<a href="https://mashukabu.com/excel-function-howto-use-concatenate/">CONCATENATE関数</a>を使ってください。</p>



<p class="wp-block-paragraph">CONCAT関数の最大の特徴は「セル範囲をまとめて指定できる」こと。たとえば A1:A5 のように範囲で指定すると、5つのセルの値をまとめて結合してくれます。</p>



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



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



<pre class="wp-block-code"><code>=CONCAT(テキスト1, [テキスト2], ...)</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>テキスト1</td><td>必須</td><td>結合したい文字列、セル参照、またはセル範囲</td></tr><tr><td>テキスト2, &#8230;</td><td>省略可</td><td>追加で結合したい文字列やセル範囲。最大253個まで指定可能</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数にはセル参照（A1）、セル範囲（A1:A5）、直接入力した文字列（&#8221;こんにちは&#8221;）のいずれも指定できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>結合結果の文字数上限</strong></p><p>結合した文字列が32,767文字（セルの文字数上限）を超えると #VALUE! エラーになります。通常の業務ではまず超えることはありませんが、大量データを結合する場合は注意してください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">セルを個別に指定して結合する</span></h3>



<p class="wp-block-paragraph">A1に「東京都」、B1に「渋谷区」と入力されている場合を考えてみましょう。</p>



<pre class="wp-block-code"><code>=CONCAT(A1, B1)</code></pre>



<p class="wp-block-paragraph">結果: 東京都渋谷区</p>



<p class="wp-block-paragraph">2つのセルの値がそのまま結合されます。間にスペースや区切り文字は入りません。</p>



<h3 class="wp-block-heading"><span id="toc7">セル範囲を指定して結合する</span></h3>



<p class="wp-block-paragraph">A1:A3に「Excel」「は」「便利」と入力されている場合、以下のように書けます。</p>



<pre class="wp-block-code"><code>=CONCAT(A1:A3)</code></pre>



<p class="wp-block-paragraph">結果: Excelは便利</p>



<p class="wp-block-paragraph">これがCONCAT関数の最大の強みです。&#038;演算子やCONCATENATE関数では1つずつ指定する必要があります。CONCAT関数なら範囲でまとめて指定できるので、数式がスッキリしますよね。</p>



<h3 class="wp-block-heading"><span id="toc8">文字列を直接入力して結合する</span></h3>



<p class="wp-block-paragraph">セル参照と文字列を組み合わせることもできます。A1に「田中」と入力されている場合を見てみましょう。</p>



<pre class="wp-block-code"><code>=CONCAT(&quot;名前: &quot;, A1, &quot;さん&quot;)</code></pre>



<p class="wp-block-paragraph">結果: 名前: 田中さん</p>



<p class="wp-block-paragraph">直接入力する文字列はダブルクォーテーション（&#8221;）で囲むのがポイントです。</p>



<h2 class="wp-block-heading"><span id="toc9">CONCAT関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">姓と名を結合する（スペース区切り）</span></h3>



<p class="wp-block-paragraph">A列に姓、B列に名が入っている場合、間にスペースを入れて結合してみましょう。</p>



<pre class="wp-block-code"><code>=CONCAT(A2, &quot; &quot;, B2)</code></pre>



<p class="wp-block-paragraph">結果: 田中 太郎</p>



<p class="wp-block-paragraph">間に入れたいスペースや文字を、引数として追加するだけでOKです。全角スペースを入れたい場合は <code>" "</code> を全角スペースに変えてください。</p>



<h3 class="wp-block-heading"><span id="toc11">住所をまとめて1セルに結合する</span></h3>



<p class="wp-block-paragraph">都道府県（A列）、市区町村（B列）、番地（C列）が別々のセルに入っている場合です。</p>



<pre class="wp-block-code"><code>=CONCAT(A2:C2)</code></pre>



<p class="wp-block-paragraph">結果: 東京都渋谷区1-2-3</p>



<p class="wp-block-paragraph">範囲指定を使えば、3つのセルをまとめて結合できます。列が増えても数式を変更する必要がありません。</p>



<h3 class="wp-block-heading"><span id="toc12">日付に曜日を付けた文字列を作る</span></h3>



<p class="wp-block-paragraph">A2に日付（例: 2026/3/16）が入っている場合、曜日付きの文字列を作ってみましょう。</p>



<pre class="wp-block-code"><code>=CONCAT(TEXT(A2, &quot;yyyy年m月d日&quot;), &quot;(&quot;, TEXT(A2, &quot;aaa&quot;), &quot;)&quot;)</code></pre>



<p class="wp-block-paragraph">結果: 2026年3月16日(月)</p>



<p class="wp-block-paragraph">ここでは<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>を使って日付を文字列に変換しています。日付をそのままCONCAT関数に渡すと、シリアル値（数値）が表示されてしまうので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc13">区切り文字付きで複数セルを結合する</span></h3>



<p class="wp-block-paragraph">A1:A4に「Excel」「Word」「PowerPoint」「Outlook」と入っている場合、カンマ区切りで結合したいこともありますよね。</p>



<p class="wp-block-paragraph">ただし、CONCAT関数には区切り文字を自動挿入する機能がありません。1つずつ区切り文字を指定する必要があります。</p>



<pre class="wp-block-code"><code>=CONCAT(A1, &quot;, &quot;, A2, &quot;, &quot;, A3, &quot;, &quot;, A4)</code></pre>



<p class="wp-block-paragraph">結果: Excel, Word, PowerPoint, Outlook</p>



<p class="wp-block-paragraph">セルが多いとこの書き方は大変です。区切り文字付きの結合には<a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a>が便利です。</p>



<h2 class="wp-block-heading"><span id="toc14">&#038;演算子との違い</span></h2>



<p class="wp-block-paragraph">文字列の結合というと <code>&</code>（アンパサンド）を使う方法もおなじみですよね。CONCAT関数との違いを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CONCAT関数</th><th>&#038;演算子</th></tr></thead><tbody><tr><td>セル範囲指定</td><td>=CONCAT(A1:A5) のように範囲指定可</td><td>A1&#038;A2&#038;A3&#038;A4&#038;A5 のように1つずつ指定</td></tr><tr><td>数式の見やすさ</td><td>セルが多いほどスッキリ書ける</td><td>セルが少ないときに手軽</td></tr><tr><td>対応バージョン</td><td>Excel 2019以降</td><td>すべてのバージョン</td></tr><tr><td>処理速度</td><td>大量データで若干有利</td><td>少量データなら差はない</td></tr><tr><td>区切り文字の挿入</td><td>引数で手動追加が必要</td><td>&#038;&#8221; &#8220;&#038;のように挟む</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">2〜3個のセルを結合するだけなら <code>&</code> が手軽です。セルが多い場合や範囲で指定したい場合はCONCAT関数が便利です。</p>



<p class="wp-block-paragraph"><strong>&#038;演算子の場合</strong></p>



<pre class="wp-block-code"><code>=A1&amp;&quot; &quot;&amp;A2&amp;&quot; &quot;&amp;A3&amp;&quot; &quot;&amp;A4&amp;&quot; &quot;&amp;A5</code></pre>



<p class="wp-block-paragraph"><strong>CONCAT関数の場合（範囲指定で簡潔）</strong></p>



<pre class="wp-block-code"><code>=CONCAT(A1:A5)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>使い分けの目安</strong></p><p>セルが3個以下なら &#038; 演算子、4個以上またはセル範囲ならCONCAT関数がおすすめです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc15">CONCATENATE関数との違い</span></h2>



<p class="wp-block-paragraph">CONCATENATE関数はCONCAT関数の前身にあたる関数です。Excel 2019以降ではCONCAT関数に置き換わりましたが、互換性のためにCONCATENATE関数も引き続き使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CONCAT関数</th><th><a href="https://mashukabu.com/excel-function-howto-use-concatenate/">CONCATENATE関数</a></th></tr></thead><tbody><tr><td>セル範囲指定</td><td>A1:A5 のように範囲指定可</td><td>不可（1つずつ指定）</td></tr><tr><td>対応バージョン</td><td>Excel 2019 / Microsoft 365 以降</td><td>すべてのバージョン</td></tr><tr><td>今後のサポート</td><td>推奨（後継関数）</td><td>互換性のため残存</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">違いは「セル範囲を指定できるかどうか」の1点です。CONCATENATE関数では <code>=CONCATENATE(A1,A2,A3)</code> と1つずつ指定する必要があります。CONCAT関数なら <code>=CONCAT(A1:A3)</code> で済むので、セル数が多いときほど差が出ます。</p>



<p class="wp-block-paragraph">新しくExcelを使うなら、CONCAT関数を使うのがおすすめです。</p>



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



<p class="wp-block-paragraph">区切り文字付きで結合したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a>が最適です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CONCAT関数</th><th><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a></th></tr></thead><tbody><tr><td>区切り文字</td><td>手動で挿入</td><td>第1引数で指定</td></tr><tr><td>空白セルの無視</td><td>不可（空白もそのまま結合）</td><td>第2引数で空白セルを無視可能</td></tr><tr><td>セル範囲指定</td><td>可</td><td>可</td></tr><tr><td>対応バージョン</td><td>Excel 2019以降</td><td>Excel 2019以降</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば、カンマ区切りで結合しつつ空白セルは無視したい場合です。</p>



<p class="wp-block-paragraph"><strong>CONCAT関数（空白もそのまま結合される）</strong></p>



<pre class="wp-block-code"><code>=CONCAT(A1, &quot;,&quot;, A2, &quot;,&quot;, A3)</code></pre>



<p class="wp-block-paragraph"><strong>TEXTJOIN関数（空白セルを自動スキップ）</strong></p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;,&quot;, TRUE, A1:A3)</code></pre>



<p class="wp-block-paragraph">TEXTJOIN関数のTRUEは「空白セルを無視する」設定です。区切り文字が不要で単純に結合するだけならCONCAT関数、区切り文字を入れたい・空白を無視したいならTEXTJOIN関数、と覚えておきましょう。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>結合結果が32,767文字を超えた</td><td>結合する範囲を分割する</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス、またはExcel 2016以前を使用</td><td>関数名を確認する。古いバージョンでは<a href="https://mashukabu.com/excel-function-howto-use-concatenate/">CONCATENATE関数</a>か&#038;演算子を使う</td></tr><tr><td>数値がそのまま表示される</td><td>日付やパーセントをCONCATに渡した</td><td><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>で書式を指定してから結合する</td></tr><tr><td>余分なスペースが入る</td><td>元のセルにスペースが含まれている</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で前後のスペースを除去してから結合する</td></tr><tr><td>結合結果に改行が混入する</td><td>元のセルに改行文字が含まれている</td><td><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>で改行を除去する</td></tr><tr><td>結合したのに計算できない</td><td>CONCAT関数の結果は文字列になる</td><td>計算に使いたい場合は結果にVALUE関数を適用して数値に変換する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>日付の結合でよくあるミス</strong></p><p>日付セルをそのままCONCAT関数に渡すと「46092」のようなシリアル値が表示されます。TEXT関数を使って <code>TEXT(A1, "yyyy/mm/dd")</code> のように文字列に変換してから結合しましょう。</p></blockquote>



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



<p class="wp-block-paragraph">CONCAT関数は複数の文字列やセル範囲をまとめて結合できる便利な関数です。</p>



<ul class="wp-block-list"><li><strong>セル範囲をまとめて指定</strong>できるのがCONCAT関数の強み</li><li>2〜3個のセルなら <strong>&#038; 演算子</strong> が手軽</li><li>区切り文字を入れたい場合は <strong>TEXTJOIN関数</strong> がおすすめ</li><li>日付を結合するときは <strong>TEXT関数</strong> で書式変換してから渡す</li><li>CONCATENATE関数の後継関数なので、新規作成ならCONCAT関数を使う</li></ul>



<p class="wp-block-paragraph">文字列の結合は実務で使う頻度が高い操作なので、場面に応じて使い分けてみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-concatenate/">CONCATENATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数の使い方</a></li></ul>



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



<p class="wp-block-paragraph">どちらの関数一覧からでも各関数の解説記事へアクセスできます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">【Excel】アルファベット順 関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">【Excel】機能別のエクセル関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order-pronunciation/">Excel関数の読み方一覧</a></li></ul>



<h3 class="wp-block-heading"><span id="toc21">エラー値についてのまとめ記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">エラー値についてのまとめ記事</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-concat/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのMATCH関数の使い方｜検索値の位置を取得する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-match/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-match/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 22 Jul 2022 07:21:50 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX MATCH]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[位置取得]]></category>
		<category><![CDATA[検索]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2416</guid>

					<description><![CDATA[ExcelのMATCH関数で範囲内から値の位置番号を取得する方法を解説。完全一致・近似値の照合の型や、INDEX関数との組み合わせパターン、VLOOKUPとの使い分けを整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「この値、表の何番目にあるんだろう？」と手作業で数えた経験はありませんか。データが数十行、数百行になると、目で追いかけるのは正直しんどいですよね。</p>



<p class="wp-block-paragraph">MATCH関数を使えば、範囲の中から値の位置番号を一発で取得できます。さらにINDEX関数と組み合わせると、VLOOKUPでは難しかった「左方向の検索」も自由自在です。</p>



<p class="wp-block-paragraph">この記事では、MATCH関数の基本から照合の型の使い分けまで解説していきます。INDEX+MATCHの黄金パターンやエラーの対処法も実例つきで紹介します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>指定した範囲の中から値が何番目にあるか知りたい</li><li>INDEX+MATCHの組み合わせをマスターしたい</li><li>VLOOKUPの左方向検索問題を解決したい</li></ul>




  <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">MATCH関数とは？</a></li><li><a href="#toc2" tabindex="0">MATCH関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">照合の型の詳細</a></li></ol></li><li><a href="#toc6" tabindex="0">MATCH関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">完全一致で位置を取得する（照合の型 0）</a></li><li><a href="#toc8" tabindex="0">以下の最大値で位置を取得する（照合の型 1）</a></li><li><a href="#toc9" tabindex="0">以上の最小値で位置を取得する（照合の型 -1）</a></li><li><a href="#toc10" tabindex="0">ワイルドカードを使った部分一致検索</a></li></ol></li><li><a href="#toc11" tabindex="0">INDEX+MATCH関数の黄金パターン</a><ol><li><a href="#toc12" tabindex="0">基本の書き方</a></li><li><a href="#toc13" tabindex="0">VLOOKUPの左方向検索問題を解決する</a></li><li><a href="#toc14" tabindex="0">行と列の両方をMATCHで検索する</a></li></ol></li><li><a href="#toc15" tabindex="0">MATCH関数の実務活用パターン</a><ol><li><a href="#toc16" tabindex="0">ランク分けの自動判定</a></li><li><a href="#toc17" tabindex="0">最終入力行の自動取得</a></li><li><a href="#toc18" tabindex="0">重複チェックでの活用</a></li><li><a href="#toc19" tabindex="0">IFERROR関数と組み合わせてエラーを防ぐ</a></li></ol></li><li><a href="#toc20" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc21" tabindex="0">VLOOKUP・XLOOKUP・INDEX+MATCHの違いと使い分け</a><ol><li><a href="#toc22" tabindex="0">どれを選べばいい？</a></li></ol></li><li><a href="#toc23" tabindex="0">まとめ</a><ol><li><a href="#toc24" tabindex="0">関連記事</a></li><li><a href="#toc25" tabindex="0">関数一覧</a></li><li><a href="#toc26" tabindex="0">エラー値について</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">MATCH関数は、指定した範囲の中から検索値を探し、その<strong>相対的な位置番号</strong>を返す関数です。読み方は「マッチ関数」で、英語の match（一致する）が語源です。</p>



<p class="wp-block-paragraph">たとえば、A1:A5に商品名が5つ入っているとします。「バナナ」の位置を調べると<strong>3</strong>が返ります。セルのアドレスではなく「範囲の先頭から数えて何番目か」を返すのがポイントです。</p>



<p class="wp-block-paragraph">MATCH関数は単体で使うこともありますが、<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>と組み合わせて使うケースが実務では圧倒的に多いです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MATCH関数はExcel 2007以降のすべてのバージョン、Microsoft 365、Googleスプレッドシートで使用できます。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=MATCH(検査値, 検査範囲, [照合の型])</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>検査値</td><td>必須</td><td>検索したい値を指定します。数値・文字列・セル参照が使えます</td></tr><tr><td>検査範囲</td><td>必須</td><td>検索対象の範囲を指定します。1行または1列の範囲のみ有効です</td></tr><tr><td>照合の型</td><td>省略可</td><td>検索の方法を 1, 0, -1 のいずれかで指定します。省略すると 1 になります</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">検査範囲には<strong>1行または1列</strong>しか指定できません。複数行かつ複数列の範囲を指定するとエラーになるので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc5">照合の型の詳細</span></h3>



<p class="wp-block-paragraph">照合の型は MATCH関数の動作を決める重要な引数です。3種類の指定方法があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>照合の型</th><th>動作</th><th>データの並び順</th><th>用途</th></tr></thead><tbody><tr><td>0（完全一致）</td><td>検査値と完全に一致する値を検索します</td><td>並び順は問いません</td><td>商品コード・名前など正確な値を探すとき</td></tr><tr><td>1（以下の最大値）</td><td>検査値以下の最大の値を検索します</td><td><strong>昇順に並べておく必要あり</strong></td><td>価格帯・ランク分けなど範囲で区切るとき</td></tr><tr><td>-1（以上の最小値）</td><td>検査値以上の最小の値を検索します</td><td><strong>降順に並べておく必要あり</strong></td><td>在庫数や得点の上限判定をするとき</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務で最も使うのは <strong>照合の型 0（完全一致）</strong> です。迷ったらまず 0 を指定しておけば間違いありません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>照合の型を省略すると 1（以下の最大値）になります。完全一致のつもりで省略すると意図しない結果になるので、明示的に 0 を書く習慣をつけてみてください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc7">完全一致で位置を取得する（照合の型 0）</span></h3>



<p class="wp-block-paragraph">商品リストから「バナナ」の位置を調べる例です。</p>



<p class="wp-block-paragraph">A列に商品名が入っているとき、次の数式で位置番号を取得できます。</p>



<pre class="wp-block-code"><code>=MATCH(&quot;バナナ&quot;, A1:A5, 0)</code></pre>



<p class="wp-block-paragraph">A1:A5が「りんご, みかん, バナナ, ぶどう, もも」なら、結果は <strong>3</strong> です。</p>



<p class="wp-block-paragraph">セル参照を使って検索値を指定することもできます。</p>



<pre class="wp-block-code"><code>=MATCH(D1, A1:A5, 0)</code></pre>



<p class="wp-block-paragraph">D1に入っている値をA1:A5から探して位置を返します。</p>



<h3 class="wp-block-heading"><span id="toc8">以下の最大値で位置を取得する（照合の型 1）</span></h3>



<p class="wp-block-paragraph">価格帯やランク分けに便利なのが照合の型 1 です。</p>



<p class="wp-block-paragraph">たとえばA1:A4に「0, 60, 70, 80」と昇順で入っているとします。得点が75のとき、次の数式を使います。</p>



<pre class="wp-block-code"><code>=MATCH(75, A1:A4, 1)</code></pre>



<p class="wp-block-paragraph">75以下の最大値は「70」なので、結果は <strong>3</strong>（3番目の位置）です。これを使えば得点に応じたランク分けが簡単にできます。</p>



<h3 class="wp-block-heading"><span id="toc9">以上の最小値で位置を取得する（照合の型 -1）</span></h3>



<p class="wp-block-paragraph">照合の型 -1 は降順データから検索するときに使います。</p>



<p class="wp-block-paragraph">A1:A4に「100, 80, 60, 40」と降順で入っている場合を考えます。</p>



<pre class="wp-block-code"><code>=MATCH(70, A1:A4, -1)</code></pre>



<p class="wp-block-paragraph">70以上の最小値は「80」なので、結果は <strong>2</strong> です。</p>



<h3 class="wp-block-heading"><span id="toc10">ワイルドカードを使った部分一致検索</span></h3>



<p class="wp-block-paragraph">照合の型 0 のときだけ、ワイルドカードが使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>ワイルドカード</th><th>意味</th><th>例</th></tr></thead><tbody><tr><td>*</td><td>任意の文字列（0文字以上）</td><td>&#8220;東京*&#8221; で「東京都」「東京支店」に一致</td></tr><tr><td>?</td><td>任意の1文字</td><td>&#8220;田?太郎&#8221; で「田中太郎」に一致</td></tr><tr><td>~</td><td>ワイルドカードのエスケープ</td><td>&#8220;~*&#8221; でアスタリスクそのものを検索</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=MATCH(&quot;東京*&quot;, A1:A10, 0)</code></pre>



<p class="wp-block-paragraph">「東京」で始まる最初の値の位置を返します。</p>



<h2 class="wp-block-heading"><span id="toc11">INDEX+MATCH関数の黄金パターン</span></h2>



<p class="wp-block-paragraph">MATCH関数が真価を発揮するのは、<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>との組み合わせです。INDEX関数は「行番号と列番号を指定して値を取り出す」関数です。ここにMATCH関数で取得した位置番号を渡すと、柔軟な検索ができるようになります。</p>



<h3 class="wp-block-heading"><span id="toc12">基本の書き方</span></h3>



<pre class="wp-block-code"><code>=INDEX(取り出す範囲, MATCH(検索値, 検索する範囲, 0))</code></pre>



<p class="wp-block-paragraph">具体例を見てみましょう。A列に商品コード、B列に商品名、C列に価格が入った表があるとします。</p>



<p class="wp-block-paragraph">商品コード「A003」の価格を取得するには、次のように書きます。</p>



<pre class="wp-block-code"><code>=INDEX(C1:C10, MATCH(&quot;A003&quot;, A1:A10, 0))</code></pre>



<p class="wp-block-paragraph">MATCH関数がA列から「A003」の位置を取得し、INDEX関数がC列の同じ行の値を返す仕組みです。</p>



<h3 class="wp-block-heading"><span id="toc13">VLOOKUPの左方向検索問題を解決する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>は便利な検索関数ですが、<strong>検索列より左側の列からは値を取得できない</strong>という制限があります。</p>



<p class="wp-block-paragraph">たとえば、A列に商品名、B列に商品コードが並んでいるとき、商品コードから商品名を調べたい場合です。VLOOKUPだと検索列（B列）の左にある商品名（A列）は取り出せません。</p>



<p class="wp-block-paragraph">INDEX+MATCHならこの制限がありません。</p>



<pre class="wp-block-code"><code>=INDEX(A1:A10, MATCH(&quot;A003&quot;, B1:B10, 0))</code></pre>



<p class="wp-block-paragraph">B列から「A003」の位置を取得し、A列（左側）の値を返しています。検索列と取得列の位置関係を気にしなくてよいのが大きなメリットです。</p>



<h3 class="wp-block-heading"><span id="toc14">行と列の両方をMATCHで検索する</span></h3>



<p class="wp-block-paragraph">INDEX関数に行番号と列番号の両方をMATCHで渡すと、クロス検索ができます。</p>



<pre class="wp-block-code"><code>=INDEX(B2:D10, MATCH(&quot;東京&quot;, A2:A10, 0), MATCH(&quot;4月&quot;, B1:D1, 0))</code></pre>



<p class="wp-block-paragraph">A列から「東京」の行位置を取得し、1行目から「4月」の列位置を取得します。交差するセルの値が結果です。大きな集計表から特定のデータを引き出すときに重宝します。</p>



<h2 class="wp-block-heading"><span id="toc15">MATCH関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc16">ランク分けの自動判定</span></h3>



<p class="wp-block-paragraph">得点に応じてランクを自動判定する例です。F列にランク境界値（0, 60, 70, 80, 90）を入れます。G列にランク名（E, D, C, B, A）を用意しておきます。</p>



<pre class="wp-block-code"><code>=INDEX(G1:G5, MATCH(B2, F1:F5, 1))</code></pre>



<p class="wp-block-paragraph">照合の型 1 で「得点以下の最大の境界値」の位置を取得し、対応するランク名を返します。IF関数をネストするより圧倒的にスッキリ書けます。</p>



<h3 class="wp-block-heading"><span id="toc17">最終入力行の自動取得</span></h3>



<p class="wp-block-paragraph">データの最後の行を自動で見つけたいときにも使えます。</p>



<pre class="wp-block-code"><code>=MATCH(9.99E+307, A:A, 1)</code></pre>



<p class="wp-block-paragraph">9.99E+307 はExcelで扱える最大の数値です。照合の型 1 で「最大値以下」を検索すると、数値データの最終行の位置が返ります。</p>



<p class="wp-block-paragraph">文字列データの場合は <a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a> などと組み合わせる方法もあります。</p>



<h3 class="wp-block-heading"><span id="toc18">重複チェックでの活用</span></h3>



<p class="wp-block-paragraph">同じ値が複数あるとき、MATCH関数は最初に見つかった位置を返します。この性質を利用して重複チェックに使えます。</p>



<pre class="wp-block-code"><code>=MATCH(A2, A:A, 0)&lt;&gt;ROW(A2)</code></pre>



<p class="wp-block-paragraph">MATCH関数が返す位置と現在の行番号が一致しない場合、その値は上のほうで既に出現しています。結果がTRUEなら重複データです。</p>



<h3 class="wp-block-heading"><span id="toc19">IFERROR関数と組み合わせてエラーを防ぐ</span></h3>



<p class="wp-block-paragraph">MATCH関数は検索値が見つからないと #N/A エラーを返します。<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲んでおくと安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(B1:B10, MATCH(D1, A1:A10, 0)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">検索値が見つからない場合に「該当なし」を表示します。</p>



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



<p class="wp-block-paragraph">MATCH関数で発生しやすいエラーと、その原因・対処法をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>検索値が範囲内に見つからない</td><td>値のスペルや全角半角を確認。IFERROR関数で囲む</td></tr><tr><td>#N/A</td><td>照合の型 1 で昇順になっていない</td><td>データを昇順に並べ替えるか、照合の型 0 に変更</td></tr><tr><td>#N/A</td><td>照合の型 -1 で降順になっていない</td><td>データを降順に並べ替えるか、照合の型 0 に変更</td></tr><tr><td>#N/A</td><td>文字列の前後にスペースが混入</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で空白を除去してから検索</td></tr><tr><td>#VALUE!</td><td>検査範囲が複数行かつ複数列</td><td>1行または1列の範囲に修正</td></tr><tr><td>#REF!</td><td>INDEX+MATCHで取得範囲がずれている</td><td>INDEX関数の範囲とMATCHの範囲の行数が一致しているか確認</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">#N/A エラーが最も多いトラブルです。「値が合っているはずなのに #N/A が出る」ときは、次の点をチェックしてみてください。</p>



<ul class="wp-block-list"><li>全角と半角が混在していないか（<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>やASC関数で統一）</li><li>数値が文字列として入力されていないか（セルの左上に緑の三角が出ていたら文字列格納の可能性）</li><li>前後に余計なスペースが入っていないか</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>LEN関数でセルの文字数を確認すると、見えないスペースが混入しているかどうかを判別できます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc21">VLOOKUP・XLOOKUP・INDEX+MATCHの違いと使い分け</span></h2>



<p class="wp-block-paragraph">検索関数はどれを使えばいいか迷いますよね。3つの主要な検索方法を比較してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>VLOOKUP</th><th>INDEX+MATCH</th><th>XLOOKUP</th></tr></thead><tbody><tr><td>検索方向</td><td>左端列のみ</td><td>自由（左右どちらも可）</td><td>自由（左右どちらも可）</td></tr><tr><td>列の追加・削除への強さ</td><td>列番号がずれる場合あり</td><td>列番号に依存しない</td><td>列番号に依存しない</td></tr><tr><td>近似値検索</td><td>第4引数で対応</td><td>照合の型 1 / -1 で対応</td><td>一致モードで対応</td></tr><tr><td>複数条件の検索</td><td>補助列が必要</td><td>配列数式で対応可</td><td>補助列が必要</td></tr><tr><td>対応バージョン</td><td>すべてのバージョン</td><td>すべてのバージョン</td><td>Microsoft 365 / Excel 2021以降</td></tr><tr><td>数式の読みやすさ</td><td>シンプル</td><td>やや長い</td><td>シンプル</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc22">どれを選べばいい？</span></h3>



<ul class="wp-block-list"><li><strong>シンプルに左から右へ検索したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>でOK</li><li><strong>左方向の検索が必要、または古いExcelを使っている</strong> → INDEX+MATCHが最適</li><li><strong>Microsoft 365 / Excel 2021を使っている</strong> → <a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>が最も便利</li></ul>



<p class="wp-block-paragraph">INDEX+MATCHは対応バージョンの広さと柔軟性が最大の強みです。XLOOKUPが使えない環境では、INDEX+MATCHを覚えておけば困ることはありません。</p>



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



<p class="wp-block-paragraph">MATCH関数は、範囲内の値の位置番号を取得する関数です。この記事で紹介したポイントを振り返ります。</p>



<ul class="wp-block-list"><li><strong>照合の型 0（完全一致）</strong> を基本にする。省略すると 1 になるので明示的に指定する</li><li><strong>INDEX+MATCHの組み合わせ</strong> で、VLOOKUPの左方向検索制限を解消できる</li><li><strong>#N/A エラー</strong> が出たら、全角半角・スペース混入・並び順を確認する</li><li>XLOOKUPが使えない環境では INDEX+MATCH が最強の検索パターン</li></ul>



<p class="wp-block-paragraph">まずは照合の型 0 の完全一致検索から試してみてください。INDEX+MATCHの組み合わせに慣れると、データ検索の幅がぐっと広がりますよ。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li></ul>



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



<p class="wp-block-paragraph">Excel関数の一覧は下記の記事でまとめています。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">【Excel】アルファベット順 関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">【Excel】機能別のエクセル関数一覧</a></li></ul>



<h3 class="wp-block-heading"><span id="toc26">エラー値について</span></h3>



<p class="wp-block-paragraph">Excelのエラー値の種類と対処法は、下記の記事で詳しく解説しています。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">【Excel】セルに表示されるエラーの種類と原因、対処方法を解説</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-match/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのDATEVALUE関数の使い方｜文字列の日付をシリアル値に変換する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-datevalue/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-datevalue/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 15 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CSV変換]]></category>
		<category><![CDATA[DATEVALUE関数]]></category>
		<category><![CDATA[シリアル値]]></category>
		<category><![CDATA[文字列変換]]></category>
		<category><![CDATA[日付変換]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2383</guid>

					<description><![CDATA[ExcelのDATEVALUE関数で文字列の日付をシリアル値に変換する方法を解説。CSVインポートで日付が文字列になったときの対処法から、VALUE関数・TEXT関数との使い分けまで実務例を交えて紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「CSVを取り込んだら日付が文字列になっていて、並べ替えも計算もできない&#8230;」そんな経験はありませんか。見た目は日付なのにExcelが日付として認識してくれないと、集計や期日管理でつまずきますよね。</p>



<p class="wp-block-paragraph">そんなときに使うのが<strong>DATEVALUE関数</strong>です。この記事では基本の書き方から、CSVデータの一括変換や和暦文字列の対処法まで、実務パターンをまとめて紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; CSVや他システムからの取り込みで日付が文字列になってしまった<br>&#8211; 文字列の日付を計算や並べ替えに使えるようにしたい<br>&#8211; DATEVALUE関数とVALUE関数の違いを整理したい</p></blockquote>




  <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">DATEVALUE関数とは？</a></li><li><a href="#toc2" tabindex="0">DATEVALUE関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">DATEVALUE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">文字列を直接指定して変換する</a></li><li><a href="#toc7" tabindex="0">セル参照で変換する</a></li><li><a href="#toc8" tabindex="0">さまざまな日付形式に対応する</a></li></ol></li><li><a href="#toc9" tabindex="0">DATEVALUE関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">CSVインポートで文字列になった日付を一括変換する</a></li><li><a href="#toc11" tabindex="0">&#038;で結合した日付文字列をシリアル値に戻す</a></li><li><a href="#toc12" tabindex="0">文字列の日付同士で日数差を計算する</a></li><li><a href="#toc13" tabindex="0">和暦の文字列を変換する</a></li><li><a href="#toc14" tabindex="0">TEXT関数で作った文字列を元に戻す</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">似た関数との違い・使い分け</a></li><li><a href="#toc17" tabindex="0">まとめ</a><ol><li><a href="#toc18" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph"><strong>DATEVALUE関数</strong>（読み方: デイトバリュー）は、文字列形式の日付をシリアル値に変換する関数です。英語の「date（日付）」+「value（値）」がそのまま関数名になっています。</p>



<p class="wp-block-paragraph">Excelでは日付を内部的に「シリアル値」という数値で管理しています。1900年1月1日を「1」として、1日ごとに1ずつ増える仕組みです。たとえば2025年4月1日のシリアル値は「45748」です。</p>



<p class="wp-block-paragraph">セルに <code>2025/4/1</code> と入力すると、通常はExcelが自動的にシリアル値として認識してくれます。ところがCSVインポートや&#038;での文字列結合などで「見た目は日付だけど中身は文字列」という状態になることがあります。</p>



<p class="wp-block-paragraph">DATEVALUE関数は、こうした文字列をシリアル値に変換してくれます。日付として計算や並べ替えに使えるようになりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>文字列かどうかを見分けるコツ</strong></p><p>セルの値が文字列になっていると、セルの左上に小さな緑の三角形（エラーインジケーター）が表示されることがあります。また、セルを選択して数式バーを見たとき、左寄せで表示されていれば文字列の可能性が高いです。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=DATEVALUE(日付文字列)</code></pre>



<p class="wp-block-paragraph">引数は1つだけで、<strong>必須</strong>です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>内容</th></tr></thead><tbody><tr><td><strong>日付文字列</strong></td><td>必須</td><td>日付を表す文字列を指定する。&#8221;2025/4/1&#8243; や &#8220;2025年4月1日&#8221; のようにExcelが日付として認識できる形式が必要</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>時刻を含む文字列（&#8221;2025/4/1 10:00&#8243;など）を渡した場合、時刻部分は無視されます。時刻も含めて変換したいときは、<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>を使ってください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">文字列を直接指定して変換する</span></h3>



<p class="wp-block-paragraph">もっともシンプルな使い方です。ダブルクォーテーションで囲んだ日付文字列を指定します。</p>



<pre class="wp-block-code"><code>=DATEVALUE(&quot;2025/4/1&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>45748</strong>（シリアル値）</p>



<p class="wp-block-paragraph">セルの表示形式が「標準」のままだと数値のまま表示されます。日付として見たい場合は、表示形式を「日付」に変更してください。</p>



<h3 class="wp-block-heading"><span id="toc7">セル参照で変換する</span></h3>



<p class="wp-block-paragraph">A1に文字列 <code>2025/4/1</code> が入っている場合、次のように書きます。</p>



<pre class="wp-block-code"><code>=DATEVALUE(A1)</code></pre>



<p class="wp-block-paragraph">結果: <strong>45748</strong>（シリアル値）</p>



<p class="wp-block-paragraph">CSVインポートで日付列が文字列になったとき、この形で隣の列に変換式を入れてオートフィルするのが定番のパターンです。</p>



<h3 class="wp-block-heading"><span id="toc8">さまざまな日付形式に対応する</span></h3>



<p class="wp-block-paragraph">DATEVALUE関数はExcelが日付として認識できる形式であれば変換できます。</p>



<pre class="wp-block-code"><code>=DATEVALUE(&quot;2025/4/1&quot;)       → 45748
=DATEVALUE(&quot;2025-4-1&quot;)       → 45748
=DATEVALUE(&quot;2025年4月1日&quot;)    → 45748
=DATEVALUE(&quot;April 1, 2025&quot;)  → 45748
=DATEVALUE(&quot;1-Apr-2025&quot;)     → 45748</code></pre>



<p class="wp-block-paragraph">スラッシュ区切り・ハイフン区切り・日本語表記・英語表記など、幅広い形式に対応しています。</p>



<h2 class="wp-block-heading"><span id="toc9">DATEVALUE関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">CSVインポートで文字列になった日付を一括変換する</span></h3>



<p class="wp-block-paragraph">他のシステムから出力したCSVファイルをExcelで開くと、日付列が文字列として取り込まれることがよくあります。</p>



<p class="wp-block-paragraph">A列に文字列の日付が入っているとします。B列に変換式を入れましょう。</p>



<pre class="wp-block-code"><code>=DATEVALUE(A2)</code></pre>



<p class="wp-block-paragraph">この式をB列にオートフィルすれば、一括変換できます。変換後のB列をコピーして「値のみ貼り付け」すれば、元のA列を置き換えることもできますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>tip</strong></p><p>変換後にB列を「値のみ貼り付け」でA列に上書きすれば、補助列を残さずにすみます。貼り付けた後はA列の表示形式を「日付」に変更するのを忘れずに。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">&#038;で結合した日付文字列をシリアル値に戻す</span></h3>



<p class="wp-block-paragraph">セルの値を<code>&</code>で結合すると、結果は文字列になります。日付として使いたい場合はDATEVALUE関数で変換しましょう。</p>



<p class="wp-block-paragraph">A1に「2025」、B1に「4」、C1に「1」が入っているとします。</p>



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



<p class="wp-block-paragraph">結果: <strong>45748</strong>（2025/4/1のシリアル値）</p>



<p class="wp-block-paragraph">ただしこのケースでは、<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>で <code>=DATE(A1,B1,C1)</code> と書くほうがシンプルです。DATEVALUEは「すでに日付形式の文字列が存在する」場面で使うのがベストです。</p>



<h3 class="wp-block-heading"><span id="toc12">文字列の日付同士で日数差を計算する</span></h3>



<p class="wp-block-paragraph">文字列のままでは引き算ができませんが、DATEVALUEで変換すれば計算できます。</p>



<p class="wp-block-paragraph">A1に <code>2025/3/1</code>（文字列）、B1に <code>2025/4/1</code>（文字列）が入っているとします。</p>



<pre class="wp-block-code"><code>=DATEVALUE(B1)-DATEVALUE(A1)</code></pre>



<p class="wp-block-paragraph">結果: <strong>31</strong>（日数差）</p>



<p class="wp-block-paragraph">期日管理や経過日数の計算で、元データが文字列のときに使えるパターンです。</p>



<h3 class="wp-block-heading"><span id="toc13">和暦の文字列を変換する</span></h3>



<p class="wp-block-paragraph">「令和7年4月1日」のような和暦文字列は、Excelの設定によってはDATEVALUEで直接変換できない場合があります。その場合はSUBSTITUTE関数で西暦に置き換えてから変換します。</p>



<pre class="wp-block-code"><code>=DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,&quot;年&quot;,&quot;/&quot;),&quot;月&quot;,&quot;/&quot;),&quot;日&quot;,&quot;&quot;))</code></pre>



<p class="wp-block-paragraph">A1が「2025年4月1日」なら「2025/4/1」に変換されてから、シリアル値になります。「令和」「平成」などの元号が含まれる場合は、元号を西暦年に置き換える追加処理が必要です。</p>



<h3 class="wp-block-heading"><span id="toc14">TEXT関数で作った文字列を元に戻す</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>はシリアル値を文字列に変換する関数で、DATEVALUE関数とは逆の操作になります。</p>



<pre class="wp-block-code"><code>=TEXT(A1, &quot;yyyy/mm/dd&quot;)   → &quot;2025/04/01&quot;（文字列）
=DATEVALUE(&quot;2025/04/01&quot;)  → 45748（シリアル値）</code></pre>



<p class="wp-block-paragraph">TEXT関数で書式を整えた結果をさらに計算に使いたくなったら、DATEVALUEで戻せることを覚えておくと便利です。</p>



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



<p class="wp-block-paragraph">DATEVALUE関数で発生するエラーは、ほとんどが引数の文字列に関する問題です。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE! エラーが出る</td><td>引数がExcelが認識できない日付形式</td><td>&#8220;2025/4/1&#8221; のようにExcelが解釈できる形式に修正する</td></tr><tr><td>#VALUE! エラーが出る</td><td>引数が空のセルを参照している</td><td>IF関数で空セルチェックを入れる: <code>=IF(A1="","",DATEVALUE(A1))</code></td></tr><tr><td>#VALUE! エラーが出る</td><td>セル内に余分なスペースがある</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>でスペースを除去: <code>=DATEVALUE(TRIM(A1))</code></td></tr><tr><td>5桁の数字が表示される</td><td>セルの表示形式が「標準」のまま</td><td>セルの表示形式を「日付」に変更する（DATEVALUE関数の正常な動作。シリアル値が返っている）</td></tr><tr><td>すでに日付のセルに使って同じ値が返る</td><td>参照先がすでにシリアル値（文字列ではない）</td><td>DATEVALUE関数は不要。そのセルはすでに日付として認識されている</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>DATEVALUE関数は「文字列を日付に変換する」関数です。すでにExcelが日付として認識しているセルに対して使う必要はありません。「文字列かどうか分からない」ときは、TYPE関数で確認できます。<code>=TYPE(A1)</code> が「2」なら文字列です。</p></blockquote>



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



<p class="wp-block-paragraph">文字列と日付を変換する関数はいくつかあります。目的に応じて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>目的</th><th>使い方の例</th></tr></thead><tbody><tr><td><strong>DATEVALUE</strong></td><td>文字列の日付をシリアル値に変換する</td><td><code>=DATEVALUE("2025/4/1")</code> → 45748</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a></strong></td><td>文字列を数値に変換する（日付・時刻・数値すべて対応）</td><td><code>=VALUE("2025/4/1")</code> → 45748</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a></strong></td><td>シリアル値を指定した書式の文字列に変換する</td><td><code>=TEXT(45748,"yyyy/mm/dd")</code> → &#8220;2025/04/01&#8221;</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a></strong></td><td>年・月・日の数値から日付を作成する</td><td><code>=DATE(2025,4,1)</code> → 2025/4/1</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-timevalue/">TIMEVALUE関数</a></strong></td><td>文字列の時刻をシリアル値に変換する</td><td><code>=TIMEVALUE("10:30")</code> → 0.4375</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>使い分けのポイント</strong></p>



<ul class="wp-block-list"><li>「文字列の日付を日付に変換したい」→ <strong>DATEVALUE関数</strong></li><li>「文字列の数値・日付・時刻を数値に変換したい」→ <strong>VALUE関数</strong>（より汎用的）</li><li>「日付を好きな書式の文字列にしたい」→ <strong>TEXT関数</strong>（DATEVALUEの逆操作）</li><li>「年・月・日を個別に指定して日付を作りたい」→ <strong>DATE関数</strong></li><li>「文字列の時刻を時刻に変換したい」→ <strong>TIMEVALUE関数</strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>DATEVALUEとVALUEの違い</strong></p><p>VALUE関数は日付文字列にも使えるため、多くの場面でDATEVALUE関数と同じ結果になります。ただしDATEVALUE関数は「日付文字列専用」なので、数式の意図が読み手に伝わりやすいのがメリットです。また、時刻を含む文字列ではVALUE関数は時刻部分もシリアル値に含めますが、DATEVALUEは日付部分のみを返します。</p></blockquote>



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



<p class="wp-block-paragraph">DATEVALUE関数は、文字列形式の日付をシリアル値に変換する関数です。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=DATEVALUE(日付文字列)</code> &#8212; 引数は1つだけ</li><li><strong>戻り値</strong>: 日付のシリアル値（表示形式を「日付」にすれば日付として見える）</li><li><strong>主な用途</strong>: CSVインポートで文字列になった日付の変換、&#038;結合した日付文字列の変換、文字列の日付同士の日数計算</li><li><strong>エラー対処</strong>: #VALUE! が出たら日付形式・空セル・余分なスペースを確認</li><li><strong>関連関数</strong>: <a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>（汎用変換）、<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>（逆操作）、<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>（年月日から作成）</li></ul>



<p class="wp-block-paragraph">CSVデータの取り込みや他システムとの連携では、日付が文字列になるトラブルはよくあります。DATEVALUEを知っておけばサッと対処できるので、覚えておいて損はないですよ。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-month/">MONTH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-day/">DAY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-timevalue/">TIMEVALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別のエクセル関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順のエクセル関数一覧</a></li><li><a href="https://mashukabu.com/excel-error-value-list/">エラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-datevalue/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのDAYS関数の使い方｜日数計算と実務活用を解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-days/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-days/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 13 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DATEDIF]]></category>
		<category><![CDATA[DAYS関数]]></category>
		<category><![CDATA[NETWORKDAYS]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[日付関数]]></category>
		<category><![CDATA[日数計算]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2385</guid>

					<description><![CDATA[ExcelのDAYS関数で2つの日付間の日数を求める方法を解説。引数の順番、TODAY関数との組み合わせ、納期管理や経過日数の実務例を紹介。引き算・DATEDIF・NETWORKDAYSとの使い分け比較表つき。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「2つの日付の間が何日あるか」を計算したいこと、ありますよね。引き算でもできますが、表示形式が日付のままになって数値として扱えなかったり、見た目が崩れたりと地味にハマるポイントがあります。</p>



<p class="wp-block-paragraph">そんなときに使いたいのが <strong>DAYS関数</strong> です。この記事では、DAYS関数の基本から実務での活用パターン、似た関数との使い分けまで解説します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 2つの日付の日数差を正確に求めたい<br>&#8211; 引き算とDAYS関数の違いがわからない<br>&#8211; DATEDIF関数やNETWORKDAYS関数との使い分けを知りたい</p></blockquote>




  <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">DAYS関数とは？</a></li><li><a href="#toc2" tabindex="0">ExcelのDAYS関数の書き方</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">DAYS関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">2つの日付の日数差を求める</a></li><li><a href="#toc7" tabindex="0">終了日が開始日より前の場合</a></li><li><a href="#toc8" tabindex="0">文字列の日付を指定する</a></li><li><a href="#toc9" tabindex="0">開始日を含めた日数を求める（+1問題）</a></li></ol></li><li><a href="#toc10" tabindex="0">実務での活用例</a><ol><li><a href="#toc11" tabindex="0">納期までの残り日数を表示する</a></li><li><a href="#toc12" tabindex="0">契約の残り日数を管理する</a></li><li><a href="#toc13" tabindex="0">プロジェクトの経過日数を計算する</a></li><li><a href="#toc14" tabindex="0">2つの日付列から一括で日数を計算する</a></li></ol></li><li><a href="#toc15" tabindex="0">DAYS関数・引き算・DATEDIF・NETWORKDAYSの使い分け</a><ol><li><a href="#toc16" tabindex="0">どれを使うべき？ 判断フロー</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">関連記事</a></li><li><a href="#toc20" tabindex="0">関数一覧</a></li><li><a href="#toc21" tabindex="0">エラー値についてのまとめ記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">DAYS関数は、2つの日付の間の日数を求める関数です。読み方は「デイズ」で、英語の <strong>Days（日数）</strong> がそのまま名前になっています。</p>



<p class="wp-block-paragraph">「開始日から終了日まで何日か」をシンプルに返してくれます。Excel 2013以降で使える関数です。</p>



<p class="wp-block-paragraph">たとえば、2026年1月1日から2026年3月31日までの日数は <strong>89日</strong> です。DAYS関数なら1つの数式でこの答えが出ます。</p>



<h2 class="wp-block-heading"><span id="toc2">ExcelのDAYS関数の書き方</span></h2>



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



<pre class="wp-block-code"><code>=DAYS(終了日, 開始日)</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>終了日</td><td>必須</td><td>期間の終わりの日付</td></tr><tr><td>開始日</td><td>必須</td><td>期間の始まりの日付</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数の順番に注意してください。<strong>終了日が先、開始日が後</strong> です。<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>は「開始日, 終了日」の順番なので、混同しないようにしましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>引数の覚え方</strong></p><p>「<strong>終了日 − 開始日</strong>」の引き算をイメージすると覚えやすいですよ。引かれる数（終了日）が先にくる、と考えてみてください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">2つの日付の日数差を求める</span></h3>



<p class="wp-block-paragraph">A1に「2026/1/1」、B1に「2026/3/31」と入っている場合を見てみましょう。</p>



<pre class="wp-block-code"><code>=DAYS(B1, A1)</code></pre>



<p class="wp-block-paragraph">結果: <strong>89</strong></p>



<p class="wp-block-paragraph">B1（終了日）からA1（開始日）を引いた日数が返ります。結果は整数なので、そのまま計算に使えます。</p>



<h3 class="wp-block-heading"><span id="toc7">終了日が開始日より前の場合</span></h3>



<p class="wp-block-paragraph">DAYS関数は、終了日が開始日より前でもエラーになりません。</p>



<pre class="wp-block-code"><code>=DAYS(&quot;2026/1/1&quot;, &quot;2026/3/31&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>-89</strong></p>



<p class="wp-block-paragraph">マイナスの値が返ります。「期限切れかどうか」の判定に使えるので、これは便利な仕様です。</p>



<h3 class="wp-block-heading"><span id="toc8">文字列の日付を指定する</span></h3>



<p class="wp-block-paragraph">DAYS関数はセル参照だけでなく、文字列で直接日付を指定することもできます。</p>



<pre class="wp-block-code"><code>=DAYS(&quot;2026/12/31&quot;, &quot;2026/1/1&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>364</strong></p>



<p class="wp-block-paragraph">文字列の日付は内部で自動的に日付データに変換されます。ただし、セル参照のほうが入力ミスを防げるのでおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc9">開始日を含めた日数を求める（+1問題）</span></h3>



<p class="wp-block-paragraph">DAYS関数は「終了日 − 開始日」の差を返します。つまり、<strong>開始日そのものは日数に含まれません</strong>。</p>



<p class="wp-block-paragraph">たとえば、1月1日から1月3日までの「滞在日数」を求めたい場合です。</p>



<pre class="wp-block-code"><code>=DAYS(&quot;2026/1/3&quot;, &quot;2026/1/1&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>2</strong></p>



<p class="wp-block-paragraph">1月1日・2日・3日の3日間を数えたいなら、結果に <strong>+1</strong> する必要があります。</p>



<pre class="wp-block-code"><code>=DAYS(&quot;2026/1/3&quot;, &quot;2026/1/1&quot;) + 1</code></pre>



<p class="wp-block-paragraph">結果: <strong>3</strong></p>



<p class="wp-block-paragraph">「当日を含むかどうか」は業務によって変わります。イベントの開催日数や旅行の宿泊数など、当日を含めるケースでは +1 を忘れないようにしてください。</p>



<h2 class="wp-block-heading"><span id="toc10">実務での活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc11">納期までの残り日数を表示する</span></h3>



<p class="wp-block-paragraph">TODAY関数と組み合わせると、納期までの残り日数をリアルタイムで表示できます。A2に納期が入っている場合です。</p>



<pre class="wp-block-code"><code>=DAYS(A2, TODAY())</code></pre>



<p class="wp-block-paragraph">TODAY関数はファイルを開くたびに当日の日付を返します。納期が過ぎるとマイナスになるので、期限切れの判定にも使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">契約の残り日数を管理する</span></h3>



<p class="wp-block-paragraph">契約終了日（B列）から今日までの残り日数を表示し、30日以内なら「更新間近」と表示する例です。</p>



<pre class="wp-block-code"><code>=IF(DAYS(B2, TODAY()) &lt;= 30, &quot;更新間近&quot;, DAYS(B2, TODAY()) &amp; &quot;日&quot;)</code></pre>



<p class="wp-block-paragraph">残り日数が30日以下になったら「更新間近」、それ以外なら「○○日」と表示されます。</p>



<h3 class="wp-block-heading"><span id="toc13">プロジェクトの経過日数を計算する</span></h3>



<p class="wp-block-paragraph">開始日（A列）から今日までの経過日数を求める場合です。</p>



<pre class="wp-block-code"><code>=DAYS(TODAY(), A2)</code></pre>



<p class="wp-block-paragraph">ここでは TODAY() が終了日の位置にきます。「今日 − 開始日」で経過日数を計算しているわけですね。</p>



<h3 class="wp-block-heading"><span id="toc14">2つの日付列から一括で日数を計算する</span></h3>



<p class="wp-block-paragraph">開始日（A列）と終了日（B列）が並んでいるリストで、C列に日数を一括表示する場合です。</p>



<pre class="wp-block-code"><code>=DAYS(B2, A2)</code></pre>



<p class="wp-block-paragraph">C2にこの数式を入力し、下方向にコピーすればリスト全体の日数を一気に計算できます。</p>



<h2 class="wp-block-heading"><span id="toc15">DAYS関数・引き算・DATEDIF・NETWORKDAYSの使い分け</span></h2>



<p class="wp-block-paragraph">Excelには日数を計算する方法がいくつかあります。それぞれの違いを表で整理しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>DAYS関数</th><th>引き算（B1-A1）</th><th><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a></th><th>NETWORKDAYS関数</th></tr></thead><tbody><tr><td>戻り値</td><td>日数（整数）</td><td>日数（※表示形式に注意）</td><td>年/月/日を指定可</td><td>営業日数</td></tr><tr><td>引数の順番</td><td>終了日, 開始日</td><td>任意</td><td>開始日, 終了日</td><td>開始日, 終了日</td></tr><tr><td>負の値</td><td>返る</td><td>返る</td><td>#NUM! エラー</td><td>返る</td></tr><tr><td>文字列日付の対応</td><td>自動変換</td><td>エラーになる場合あり</td><td>自動変換</td><td>自動変換</td></tr><tr><td>土日・祝日の除外</td><td>不可</td><td>不可</td><td>不可</td><td>可</td></tr><tr><td>対応バージョン</td><td>2013以降</td><td>すべて</td><td>すべて（非公式）</td><td>すべて</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">どれを使うべき？ 判断フロー</span></h3>



<p class="wp-block-paragraph">迷ったときは、以下の基準で選んでみてください。</p>



<ol class="wp-block-list"><li><strong>土日・祝日を除いた営業日数を求めたい</strong> → NETWORKDAYS関数</li><li><strong>年数や月数の単位で差を求めたい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a></li><li><strong>単純な日数差を求めたい</strong> → DAYS関数 or 引き算</li><li><strong>文字列日付を扱う可能性がある</strong> → DAYS関数（自動変換してくれる）</li><li><strong>Excel 2010以前の環境で使う</strong> → 引き算</li></ol>



<p class="wp-block-paragraph">DAYS関数と引き算は結果自体は同じです。ただし、引き算はセルの表示形式が「日付」のままだと正しい数値が表示されないことがあります。DAYS関数なら必ず整数が返るので、表示形式のトラブルを避けたいならDAYS関数がおすすめです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>DATEDIF関数の注意点</strong></p><p>DATEDIF関数は公式のサポートページに掲載されていない非公式関数です。動作に問題はありませんが、Excelの関数入力時に候補として表示されません。日数だけの計算ならDAYS関数を使うほうが安心です。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>日付として認識できない文字列を渡した</td><td>セル参照を使うか、「2026/1/1」のように正しい日付形式で入力する</td></tr><tr><td>#NUM!</td><td>日付の範囲外の数値を渡した</td><td>日付として有効な値かどうかを確認する</td></tr><tr><td>結果が日付のように表示される</td><td>セルの表示形式が「日付」になっている</td><td>セルの表示形式を「標準」または「数値」に変更する</td></tr><tr><td>期待と1日ズレる</td><td>開始日を含めて数えている前提だった</td><td>当日を含める場合は結果に +1 する</td></tr><tr><td>大きな数値が表示される</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>表示形式のトラブルを防ぐコツ</strong></p><p>DAYS関数の結果が「1900/3/30」のような日付で表示されたら、表示形式が原因です。セルを選択して <strong>Ctrl + 1</strong> → 「標準」を選べば正しい数値が表示されますよ。</p></blockquote>



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



<p class="wp-block-paragraph">DAYS関数は、2つの日付の日数差をシンプルに求められる関数です。</p>



<ul class="wp-block-list"><li><strong>=DAYS(終了日, 開始日)</strong> で日数を返す。引数は終了日が先</li><li>終了日が開始日より前なら <strong>マイナスの値</strong> が返る（エラーにならない）</li><li>TODAY関数と組み合わせれば <strong>残り日数のリアルタイム表示</strong> ができる</li><li>開始日を含めたい場合は結果に <strong>+1</strong> する</li><li>引き算と結果は同じだが、<strong>表示形式トラブルがない</strong>のがDAYS関数の強み</li></ul>



<p class="wp-block-paragraph">日付の引き算で表示が崩れて困った経験がある方は、DAYS関数に切り替えてみてください。数式の意味もわかりやすくなりますよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a>や<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数の使い方</a>もあわせてチェックすると、Excelの日付操作がもっとスムーズになります。<a href="https://mashukabu.com/excel-date-calculation-guide/">日付計算完全攻略記事</a>もぜひ参考にしてみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-date-calculation-guide/">Excelの日付計算完全攻略</a></li></ul>



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



<p class="wp-block-paragraph">どちらの関数一覧からでも各関数の解説記事へアクセスできます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">【Excel】アルファベット順 関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">【Excel】機能別のエクセル関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order-pronunciation/">Excel関数の読み方一覧</a></li></ul>



<h3 class="wp-block-heading"><span id="toc21">エラー値についてのまとめ記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">エラー値についてのまとめ記事</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-days/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのDATEDIF関数の使い方｜年齢・勤続年数を計算</title>
		<link>https://mashukabu.com/excel-function-howto-use-datedif/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-datedif/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 12 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DATEDIF関数]]></category>
		<category><![CDATA[DAYS関数]]></category>
		<category><![CDATA[EDATE関数]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[勤続年数]]></category>
		<category><![CDATA[年齢計算]]></category>
		<category><![CDATA[日付関数]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2376</guid>

					<description><![CDATA[ExcelのDATEDIF関数で年齢・勤続年数・経過月数を自動計算する方法を解説。6つの単位の違い、"MD"バグの回避策、DAYS/YEARFRACとの使い分け比較、スプレッドシートとの違いまで実務目線で網羅しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「この人は今何歳？」「入社から何年経った？」と計算したい場面、ありますよね。生年月日と今日の日付から年齢を出したいのに、ぴったりの関数が見つからない。</p>



<p class="wp-block-paragraph">そんなときに使えるのが <strong>DATEDIF関数</strong> です。この記事では、基本の書き方から6つの単位の違い、年齢・勤続年数の実務パターン、&#8221;MD&#8221;単位の既知バグと回避策まで解説します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 生年月日から年齢を自動計算したい<br>&#8211; 入社日から勤続年数を「○年○ヶ月」で表示したい<br>&#8211; DATEDIF関数の6つの単位の違いを知りたい<br>&#8211; &#8220;MD&#8221;のバグが不安で正しい回避策を知りたい</p></blockquote>




  <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">DATEDIF関数とは？</a><ol><li><a href="#toc2" tabindex="0">DATEDIF関数の読み方と意味</a></li><li><a href="#toc3" tabindex="0">非公開関数とは何か</a></li></ol></li><li><a href="#toc4" tabindex="0">DATEDIF関数の書き方</a><ol><li><a href="#toc5" tabindex="0">基本構文と3つの引数</a></li><li><a href="#toc6" tabindex="0">6つの単位の違い一覧</a></li></ol></li><li><a href="#toc7" tabindex="0">DATEDIF関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">年数を求める（単位 Y）</a></li><li><a href="#toc9" tabindex="0">月数を求める（単位 M）</a></li><li><a href="#toc10" tabindex="0">日数を求める（単位 D）</a></li><li><a href="#toc11" tabindex="0">端数の月・日を取り出す（YM/MD）</a></li></ol></li><li><a href="#toc12" tabindex="0">DATEDIF関数の実務活用パターン</a><ol><li><a href="#toc13" tabindex="0">年齢を自動計算する（TODAY関数との組み合わせ）</a></li><li><a href="#toc14" tabindex="0">勤続年数を「○年○ヶ月」で表示する</a></li><li><a href="#toc15" tabindex="0">契約の残り期間を表示する</a></li></ol></li><li><a href="#toc16" tabindex="0">&#8220;MD&#8221;単位の既知バグと回避策</a><ol><li><a href="#toc17" tabindex="0">どんな場合に不正確な値になるか</a></li><li><a href="#toc18" tabindex="0">代替式で正確に端数日数を求める方法</a></li></ol></li><li><a href="#toc19" tabindex="0">DATEDIF / DAYS / YEARFRAC 三者比較</a><ol><li><a href="#toc20" tabindex="0">3関数の特徴と適切な使い分け</a></li><li><a href="#toc21" tabindex="0">判断フロー｜何を計算したいかで関数を選ぶ</a></li></ol></li><li><a href="#toc22" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc23" tabindex="0">まとめ</a><ol><li><a href="#toc24" tabindex="0">関連記事</a></li><li><a href="#toc25" tabindex="0">関数一覧</a></li><li><a href="#toc26" tabindex="0">エラー値についてのまとめ記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">DATEDIF関数は、2つの日付の間の期間を <strong>年数・月数・日数</strong> で求めるExcelの関数です。</p>



<p class="wp-block-paragraph">ほかの日付関数との大きな違いは、「○年」「○ヶ月」と単位を選べる点です。年齢計算や勤続年数の算出にぴったりですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">DATEDIF関数の読み方と意味</span></h3>



<p class="wp-block-paragraph">読み方は「デイトディフ」です。<strong>Date（日付）+ Difference（差）</strong> が語源で、そのまま「日付の差」を意味します。</p>



<h3 class="wp-block-heading"><span id="toc3">非公開関数とは何か</span></h3>



<p class="wp-block-paragraph">DATEDIF関数は、Excelの <strong>非公開関数</strong> です。関数ダイアログや入力補完の候補に表示されません。</p>



<p class="wp-block-paragraph">もともとLotus 1-2-3という表計算ソフトとの互換性のために残された関数です。Excel 2000のヘルプでは公式に記載されていましたが、現在は通常の関数一覧から外されています。</p>



<p class="wp-block-paragraph">ただし、動作自体にはまったく問題ありません。すべてのバージョンのExcelで使えます。数式を手入力すれば普通に動きますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>廃止される心配はない？</strong></p><p>極めて低いと考えてよいでしょう。すべてのExcelバージョンで動作し、Microsoftのサポートページも存続しています。ただし公式サポート対象外なので、将来の仕様変更がゼロとは言い切れません。重要な業務で使う場合は、この点を頭に入れておいてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">DATEDIF関数の書き方</span></h2>



<h3 class="wp-block-heading"><span id="toc5">基本構文と3つの引数</span></h3>



<pre class="wp-block-code"><code>=DATEDIF(開始日, 終了日, 単位)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</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></tbody></table></figure>



<p class="wp-block-paragraph">引数の順番に注意してください。<strong>開始日が先、終了日が後</strong> です。<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>は「終了日, 開始日」と逆順なので、混同しないようにしましょう。</p>



<p class="wp-block-paragraph">開始日が終了日より後の日付だと <strong>#NUM! エラー</strong> になります。<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>のようにマイナスの値は返りません。</p>



<p class="wp-block-paragraph">日付はセル参照のほか、<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>で直接指定することもできます。</p>



<pre class="wp-block-code"><code>=DATEDIF(DATE(2020,4,1), DATE(2026,3,21), &quot;Y&quot;)</code></pre>



<p class="wp-block-paragraph">文字列で <code>"2020/4/1"</code> と書いても動きます。ただし<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>のほうが確実に日付として認識されるので安心です。</p>



<h3 class="wp-block-heading"><span id="toc6">6つの単位の違い一覧</span></h3>



<p class="wp-block-paragraph">DATEDIF関数の特徴は、第3引数の「単位」で結果を細かく指定できる点です。</p>



<figure class="wp-block-table"><table><thead><tr><th>単位</th><th>意味</th><th>2020/4/1 → 2026/3/21 の結果</th></tr></thead><tbody><tr><td>&#8220;Y&#8221;</td><td>期間の満年数</td><td>5</td></tr><tr><td>&#8220;M&#8221;</td><td>期間の総月数</td><td>71</td></tr><tr><td>&#8220;D&#8221;</td><td>期間の総日数</td><td>2182</td></tr><tr><td>&#8220;YM&#8221;</td><td>年を無視した端数の月数</td><td>11</td></tr><tr><td>&#8220;MD&#8221;</td><td>月と年を無視した端数の日数</td><td>20</td></tr><tr><td>&#8220;YD&#8221;</td><td>年を無視した通算日数</td><td>355</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">&#8220;Y&#8221; &#8220;M&#8221; &#8220;D&#8221; はそのまま年数・月数・日数を返します。</p>



<p class="wp-block-paragraph">&#8220;YM&#8221; &#8220;MD&#8221; &#8220;YD&#8221; は <strong>端数を取り出す</strong> ための単位です。たとえば「5年11ヶ月20日」のうち、&#8221;YM&#8221; は「11」の部分だけを返します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>&#8220;MD&#8221; には既知のバグがあります</strong></p><p>&#8220;MD&#8221; は一部の日付で不正確な値を返します。詳しくはこの記事の後半で解説しています。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc8">年数を求める（単位 Y）</span></h3>



<p class="wp-block-paragraph">A1に「2020/4/1」、B1に「2026/3/21」と入っている場合です。</p>



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



<p class="wp-block-paragraph">結果: <strong>5</strong></p>



<p class="wp-block-paragraph">開始日から終了日までの満年数が返ります。6年に満たないので「5」です。</p>



<h3 class="wp-block-heading"><span id="toc9">月数を求める（単位 M）</span></h3>



<p class="wp-block-paragraph">同じセルを使って月数を求めてみましょう。</p>



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



<p class="wp-block-paragraph">結果: <strong>71</strong></p>



<p class="wp-block-paragraph">2020年4月から2026年3月までの総月数です。</p>



<h3 class="wp-block-heading"><span id="toc10">日数を求める（単位 D）</span></h3>



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



<p class="wp-block-paragraph">結果: <strong>2182</strong></p>



<p class="wp-block-paragraph">総日数が返ります。日数だけなら<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>や引き算でも同じ結果になります。</p>



<h3 class="wp-block-heading"><span id="toc11">端数の月・日を取り出す（YM/MD）</span></h3>



<p class="wp-block-paragraph">「5年 <strong>11ヶ月</strong> 20日」の端数月を取り出すには &#8220;YM&#8221; を使います。</p>



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



<p class="wp-block-paragraph">結果: <strong>11</strong></p>



<p class="wp-block-paragraph">年を無視した端数の月数だけが返ります。</p>



<p class="wp-block-paragraph">同様に、端数の日数は &#8220;MD&#8221; で取り出せます。</p>



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



<p class="wp-block-paragraph">結果: <strong>20</strong></p>



<p class="wp-block-paragraph">ただし &#8220;MD&#8221; には既知のバグがあります。正確な端数日数が必要な場合は、後述の回避策を使ってください。</p>



<h2 class="wp-block-heading"><span id="toc12">DATEDIF関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc13">年齢を自動計算する（TODAY関数との組み合わせ）</span></h3>



<p class="wp-block-paragraph">人事・総務でよく使うのが年齢計算です。A2に生年月日が入っている場合、<a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=DATEDIF(A2, TODAY(), &quot;Y&quot;)</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>はファイルを開くたびに当日の日付を返します。この数式を入れておけば年齢が毎日自動で更新されますよ。</p>



<p class="wp-block-paragraph">たとえばA2が「1990/5/15」なら、2026年3月21日時点で <strong>35</strong> と表示されます。</p>



<h3 class="wp-block-heading"><span id="toc14">勤続年数を「○年○ヶ月」で表示する</span></h3>



<p class="wp-block-paragraph">入社日（A2）から今日までの勤続年数を「3年5ヶ月」のように表示する方法です。&#8221;Y&#8221; と &#8220;YM&#8221; を組み合わせます。</p>



<pre class="wp-block-code"><code>=DATEDIF(A2, TODAY(), &quot;Y&quot;) &amp; &quot;年&quot; &amp; DATEDIF(A2, TODAY(), &quot;YM&quot;) &amp; &quot;ヶ月&quot;</code></pre>



<p class="wp-block-paragraph">&#8220;Y&#8221; で年数、&#8221;YM&#8221; で端数の月数を取り出し、<code>&</code> で文字列連結しています。</p>



<p class="wp-block-paragraph">A2が「2022/10/1」なら「3年5ヶ月」のように表示されます。</p>



<p class="wp-block-paragraph">さらに日数まで含めた「○年○ヶ月○日」の表示も可能です。ただし &#8220;MD&#8221; にはバグがあるため、次の代替式を使ってください。</p>



<pre class="wp-block-code"><code>=DATEDIF(A2,TODAY(),&quot;Y&quot;)&amp;&quot;年&quot;&amp;DATEDIF(A2,TODAY(),&quot;YM&quot;)&amp;&quot;ヶ月&quot;&amp;(TODAY()-EDATE(A2,DATEDIF(A2,TODAY(),&quot;M&quot;)))&amp;&quot;日&quot;</code></pre>



<p class="wp-block-paragraph">日数部分で<a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a>を使い、&#8221;MD&#8221; のバグを回避しています。</p>



<h3 class="wp-block-heading"><span id="toc15">契約の残り期間を表示する</span></h3>



<p class="wp-block-paragraph">契約終了日（B2）までの残り期間を表示する例です。開始日に<a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>を指定します。</p>



<pre class="wp-block-code"><code>=DATEDIF(TODAY(), B2, &quot;Y&quot;) &amp; &quot;年&quot; &amp; DATEDIF(TODAY(), B2, &quot;YM&quot;) &amp; &quot;ヶ月&quot;</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>（今日）が開始日、B2（契約終了日）が終了日です。順番を逆にすると#NUM!エラーになるので注意してください。</p>



<h2 class="wp-block-heading"><span id="toc16">&#8220;MD&#8221;単位の既知バグと回避策</span></h2>



<h3 class="wp-block-heading"><span id="toc17">どんな場合に不正確な値になるか</span></h3>



<p class="wp-block-paragraph">&#8220;MD&#8221; は月末日をまたぐ特定の日付で、負の値や不正確な値を返します。Microsoftも公式に「MDの使用は推奨しない」と警告しています。</p>



<p class="wp-block-paragraph">具体的な問題例を見てみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>開始日</th><th>終了日</th><th>&#8220;MD&#8221; の結果</th><th>正しい値</th></tr></thead><tbody><tr><td>2016/1/31</td><td>2016/3/1</td><td><strong>-2</strong></td><td>1</td></tr><tr><td>2016/1/30</td><td>2016/3/1</td><td><strong>-1</strong></td><td>1</td></tr><tr><td>2016/3/31</td><td>2016/5/1</td><td><strong>0</strong></td><td>1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">1月31日から3月1日は1日の差のはずなのに、結果は「-2」です。このように月末付近の日付で計算が狂います。</p>



<p class="wp-block-paragraph">なお、&#8221;Y&#8221; &#8220;M&#8221; &#8220;YM&#8221; は基本的に安全です。ただし、うるう年が絡む特殊なケース（例: 2020/2/29 → 2021/2/28）では、&#8221;MD&#8221; 以外の単位でも予期しない値を返すことがあります。通常の日付ペアでは心配いりませんが、2月29日を含む計算は結果を確認しておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc18">代替式で正確に端数日数を求める方法</span></h3>



<p class="wp-block-paragraph">&#8220;MD&#8221; の代わりに、次の式を使えば正確な端数日数が求められます。</p>



<pre class="wp-block-code"><code>=B1 - EDATE(A1, DATEDIF(A1, B1, &quot;M&quot;))</code></pre>



<p class="wp-block-paragraph">仕組みはこうです。</p>



<ol class="wp-block-list"><li><code>DATEDIF(A1, B1, "M")</code> で完了した月数を求める</li><li><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a>で開始日をその月数分だけ進める</li><li>終了日との差が正確な端数日数になる</li></ol>



<p class="wp-block-paragraph">先ほどの問題例（2016/1/31 → 2016/3/1）で試すと、結果は正しく <strong>1</strong> になります。</p>



<p class="wp-block-paragraph">&#8220;MD&#8221; を使っている数式があれば、この代替式に置き換えることをおすすめします。</p>



<h2 class="wp-block-heading"><span id="toc19">DATEDIF / DAYS / YEARFRAC 三者比較</span></h2>



<h3 class="wp-block-heading"><span id="toc20">3関数の特徴と適切な使い分け</span></h3>



<p class="wp-block-paragraph">日付の差を求める関数は3つあります。それぞれ得意分野が違います。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>DATEDIF</th><th>DAYS</th><th>YEARFRAC</th></tr></thead><tbody><tr><td>返す値</td><td>年/月/日（6単位）</td><td>日数のみ</td><td>小数の年数</td></tr><tr><td>引数の順番</td><td>開始日, 終了日</td><td>終了日, 開始日</td><td>開始日, 終了日, 基準</td></tr><tr><td>公式関数か</td><td>いいえ（非公開）</td><td>はい（2013以降）</td><td>はい</td></tr><tr><td>年齢計算</td><td>最適（整数で正確）</td><td>不向き</td><td>うるう年で誤差あり</td></tr><tr><td>主な用途</td><td>年齢・勤続年数</td><td>日数差・残日数</td><td>利子・利回り計算</td></tr><tr><td>既知のバグ</td><td>MD単位</td><td>なし</td><td>なし</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>は日数を返す公式関数です。YEARFRAC関数は小数の年数を返し、財務計算で使われます。</p>



<h3 class="wp-block-heading"><span id="toc21">判断フロー｜何を計算したいかで関数を選ぶ</span></h3>



<ul class="wp-block-list"><li><strong>年齢や勤続年数を「○年○ヶ月」で出したい</strong> → DATEDIF関数</li><li><strong>日数の差だけをシンプルに求めたい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>または引き算</li><li><strong>マイナスの値がほしい（期限超過の判定）</strong> → <a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a></li><li><strong>利率や利回りの年数計算</strong> → YEARFRAC関数</li><li><strong>Excel 2010以前で日数を計算したい</strong> → DATEDIF関数または引き算</li></ul>



<p class="wp-block-paragraph">日数だけなら<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>が公式関数で安心です。年数や月数が必要になったらDATEDIF関数の出番、と覚えておきましょう。</p>



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



<p class="wp-block-paragraph">エラーが出たときは、次の表を参考にしてみてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#NUM!</td><td>開始日が終了日より後</td><td>日付の順番を確認する。古いほうが第1引数</td></tr><tr><td>#NUM!</td><td>単位の文字列が無効</td><td>&#8220;Y&#8221; &#8220;M&#8221; &#8220;D&#8221; &#8220;YM&#8221; &#8220;MD&#8221; &#8220;YD&#8221; のいずれかを指定する</td></tr><tr><td>#VALUE!</td><td>日付として認識できない値</td><td>セルが正しい日付データか確認する。文字列なら<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>を使う</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス</td><td>&#8220;DATEDIFF&#8221;（Fが2つ）は間違い。正しくは &#8220;DATEDIF&#8221;</td></tr><tr><td>入力補完に出ない</td><td>非公開関数のため</td><td>正常です。「=DATEDIF(」と手入力してください</td></tr><tr><td>結果が0になる</td><td>期間が単位に満たない</td><td>&#8220;Y&#8221; は満1年に達しないと0を返します。&#8221;M&#8221; や &#8220;D&#8221; で確認してみてください</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">DATEDIF関数は、2つの日付の期間を年数・月数・日数で求められる関数です。</p>



<ul class="wp-block-list"><li><strong>=DATEDIF(開始日, 終了日, 単位)</strong> で期間を計算する</li><li>6つの単位で <strong>年数(&#8220;Y&#8221;)・月数(&#8220;M&#8221;)・日数(&#8220;D&#8221;)</strong> を使い分けられる</li><li><strong>&#8220;YM&#8221;</strong> で端数の月数、<strong>&#8220;MD&#8221;</strong> で端数の日数を取り出せる</li><li><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>と組み合わせれば <strong>年齢や勤続年数が毎日自動更新</strong> される</li><li><strong>&#8220;MD&#8221; には既知のバグ</strong> がある。代替式 <code>=終了日-EDATE(開始日,DATEDIF(開始日,終了日,"M"))</code> を使おう</li><li>非公開関数だが <strong>全バージョンで動作</strong> し、廃止リスクは極めて低い</li><li>日数だけなら<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>、年数・月数ならDATEDIF関数</li></ul>



<p class="wp-block-paragraph">年齢計算や勤続年数の管理に、ぜひDATEDIF関数を活用してみてください。日付計算の関数を網羅的に知りたい方は、<a href="https://mashukabu.com/excel-date-calculation-guide/">Excelの日付計算を完全攻略</a>もあわせてチェックしてみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-date-calculation-guide/">Excelの日付計算を完全攻略</a></li></ul>



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



<p class="wp-block-paragraph">どちらの関数一覧からでも各関数の解説記事へアクセスできます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order-pronunciation/">Excel関数の読み方一覧</a></li></ul>



<h3 class="wp-block-heading"><span id="toc26">エラー値についてのまとめ記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">セルに表示されるエラーの種類と原因、対処方法</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-datedif/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
