<?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/%e3%83%88%e3%83%a9%e3%83%96%e3%83%ab%e5%af%be%e5%87%a6/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Mon, 08 Jun 2026 15:51:19 +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で時間の合計が24時間を超えると0時に戻る問題の解決法｜[h]:mm書式の使い方</title>
		<link>https://mashukabu.com/excel-time-sum-over-24-hours/</link>
					<comments>https://mashukabu.com/excel-time-sum-over-24-hours/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 15:51:19 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[SUMIF]]></category>
		<category><![CDATA[シリアル値]]></category>
		<category><![CDATA[トラブル対処]]></category>
		<category><![CDATA[勤怠管理]]></category>
		<category><![CDATA[時間計算]]></category>
		<category><![CDATA[書式設定]]></category>
		<category><![CDATA[表示形式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7859</guid>

					<description><![CDATA[Excelで時間の合計が24時間を超えると「25:30」ではなく「01:30」と表示されてしまう問題の解決方法を解説します。シリアル値の仕組みから「[h]:mm」書式設定の手順、SUMIFとの組み合わせ、時間→分・秒・小数時間の変換、マイナス時間「####」の対処までまとめて紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「月末に勤怠表で勤務時間を SUM したら、明らかに 100 時間以上あるはずなのに表示は『12:30』になっている……」と頭をかかえたことはありませんか。値そのものは合っているのに、見た目だけ24時間でリセットされたように見える不思議な現象です。</p>



<p class="wp-block-paragraph">これは Excel が時刻を「シリアル値」という小数で管理していることが原因です。書式設定をひとつ変えるだけで、25時間でも 100 時間でも正しい合計時間として表示できますよ。</p>



<p class="wp-block-paragraph">この記事では、Excelで時間の合計が24時間を超えると0時に戻ってしまう原因と、<code>[h]:mm</code> 書式での解決手順を紹介します。勤怠集計で役立つ SUMIF との組み合わせまでまとめて解説します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 勤怠表や工数表で時間を SUM したら表示がおかしくなった<br>&#8211; なぜ24時間で0に戻るのか仕組みから理解したい<br>&#8211; 時間を「分」や「小数時間」に変換して給与計算に使いたい<br>&#8211; マイナスの時間が「####」になって困っている</p></blockquote>




  <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">Excelで時間の合計が24時間を超えると0時に戻ってしまうのはなぜ？</a><ol><li><a href="#toc2" tabindex="0">原因はExcelの「シリアル値」の仕組み</a></li><li><a href="#toc3" tabindex="0">シリアル値と時刻表示の対応関係（早見表）</a></li><li><a href="#toc4" tabindex="0">24時間を超えても合計値そのものは正しい</a></li></ol></li><li><a href="#toc5" tabindex="0">解決方法：セルの書式設定で「[h]:mm」を指定する</a><ol><li><a href="#toc6" tabindex="0">操作手順（ステップ別）</a></li><li><a href="#toc7" tabindex="0">ショートカット（Ctrl+1）でセルの書式設定を開く</a></li><li><a href="#toc8" tabindex="0">設定が反映されない・元に戻るときのチェックポイント</a></li></ol></li><li><a href="#toc9" tabindex="0">知っておきたい時間書式コード4種の早見表</a><ol><li><a href="#toc10" tabindex="0">[h]:mm（24時間以上の合計時間）</a></li><li><a href="#toc11" tabindex="0">[h]:mm:ss（秒まで含む合計時間）</a></li><li><a href="#toc12" tabindex="0">[mm]（合計を「分」で表示）</a></li><li><a href="#toc13" tabindex="0">[ss]（合計を「秒」で表示）</a></li></ol></li><li><a href="#toc14" tabindex="0">SUMIF・SUMIFSとの組み合わせで条件付き時間集計</a><ol><li><a href="#toc15" tabindex="0">SUMIFで特定の社員だけ合計（勤怠集計の例）</a></li><li><a href="#toc16" tabindex="0">SUMIFSで複数条件（社員×期間）の集計</a></li><li><a href="#toc17" tabindex="0">集計結果を必ず「[h]:mm」書式にすること</a></li></ol></li><li><a href="#toc18" tabindex="0">時間を「分」「秒」「小数時間」に変換する方法</a><ol><li><a href="#toc19" tabindex="0">時間→小数時間（×24）給与計算の定番</a></li><li><a href="#toc20" tabindex="0">時間→分（×1440）</a></li><li><a href="#toc21" tabindex="0">時間→秒（×86400）</a></li></ol></li><li><a href="#toc22" tabindex="0">マイナスの時間が「####」になるときの対処法</a><ol><li><a href="#toc23" tabindex="0">原因：Excelはマイナスの時刻を表示できない</a></li><li><a href="#toc24" tabindex="0">解決策1：1904年日付システムに切り替える</a></li><li><a href="#toc25" tabindex="0">解決策2：IF関数で符号を判定して表示する</a></li><li><a href="#toc26" tabindex="0">解決策3：TEXT関数の書式コードで正負両方を指定する</a></li></ol></li><li><a href="#toc27" tabindex="0">よくあるトラブルとQ&#038;A</a><ol><li><a href="#toc28" tabindex="0">[h]:mmを設定しても表示が変わらない</a></li><li><a href="#toc29" tabindex="0">合計が0:00と表示される（時間として認識されていない）</a></li><li><a href="#toc30" tabindex="0">印刷したら時間表示が崩れる</a></li><li><a href="#toc31" tabindex="0">24時間ぴったり（24:00）と表示したいのに「0:00」になる</a></li></ol></li><li><a href="#toc32" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Excelで時間の合計が24時間を超えると0時に戻ってしまうのはなぜ？</span></h2>



<p class="wp-block-paragraph">まず原因から押さえておきましょう。仕組みがわかれば、再発もしっかり防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc2">原因はExcelの「シリアル値」の仕組み</span></h3>



<p class="wp-block-paragraph">Excel では時刻を内部的に「シリアル値」という小数で管理しています。1日（24時間）を「1」として、時刻を0以上1未満の小数で表す仕組みです。たとえば 12:00（正午）のシリアル値は「0.5」、6:00 は「0.25」になります。</p>



<p class="wp-block-paragraph">ここがポイントです。25時間という時間は内部的にシリアル値「1.0416&#8230;」として正しく保持されています。問題は<strong>表示形式</strong>にあります。Excel 標準の <code>h:mm</code> 書式は「1日（整数部分）を切り捨て、その日の時刻（小数部分）だけ表示する」ルールになっています。</p>



<p class="wp-block-paragraph">そのため <code>1.0416...</code> を <code>h:mm</code> で表示すると「1日と1時間」と解釈されます。整数1日が丸ごと切り捨てられて「01:00」と見えてしまうわけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力（合計時間）</th><th>シリアル値</th><th>h:mm 表示</th><th>[h]:mm 表示</th></tr></thead><tbody><tr><td>1時間</td><td>0.0416&#8230;</td><td>1:00</td><td>1:00</td></tr><tr><td>24時間</td><td>1</td><td>0:00</td><td>24:00</td></tr><tr><td>25時間</td><td>1.0416&#8230;</td><td>1:00</td><td>25:00</td></tr><tr><td>36時間30分</td><td>1.5208&#8230;</td><td>12:30</td><td>36:30</td></tr><tr><td>100時間</td><td>4.1666&#8230;</td><td>4:00</td><td>100:00</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">シリアル値と時刻表示の対応関係（早見表）</span></h3>



<p class="wp-block-paragraph">主な時刻とシリアル値の対応を覚えておくと、計算結果の検算にも使えて便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>時刻</th><th>シリアル値</th></tr></thead><tbody><tr><td>0:00</td><td>0</td></tr><tr><td>6:00</td><td>0.25</td></tr><tr><td>12:00</td><td>0.5</td></tr><tr><td>18:00</td><td>0.75</td></tr><tr><td>24:00</td><td>1（=翌日0:00と同じ）</td></tr><tr><td>48:00</td><td>2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-time/">Excel の TIME 関数</a>の記事でもシリアル値の仕組みを解説しています。合わせて読むとより理解が深まりますよ。</p>



<h3 class="wp-block-heading"><span id="toc4">24時間を超えても合計値そのものは正しい</span></h3>



<p class="wp-block-paragraph">安心していただきたいのは、<strong>セルに格納されている値そのものは正しい</strong>ということです。表示だけが24時間で巻き戻って見えているだけで、再計算や他の数式での参照には正しい値が使われます。</p>



<p class="wp-block-paragraph">確認したいときは、合計セルを選択して <code>Ctrl+1</code> で書式設定を開き「標準」を選んでみてください。シリアル値の生の数値（たとえば 4.1666&#8230;）が表示されます。値が壊れたわけではないと確認できますよ。</p>



<h2 class="wp-block-heading"><span id="toc5">解決方法：セルの書式設定で「[h]:mm」を指定する</span></h2>



<p class="wp-block-paragraph">それでは具体的な解決手順を見ていきましょう。<code>[h]:mm</code> という角括弧付きの書式コードを指定するだけです。24時間を超えた時間も累積した経過時間として表示できます。</p>



<h3 class="wp-block-heading"><span id="toc6">操作手順（ステップ別）</span></h3>



<p class="wp-block-paragraph">時間の合計を表示しているセルを選択して、次の手順で書式を変更します。</p>



<ol class="wp-block-list"><li>合計セルを選択する</li><li><code>Ctrl+1</code>（または右クリック → 「セルの書式設定」）でダイアログを開く</li><li>「表示形式」タブ → 「ユーザー定義」を選ぶ</li><li>「種類」の入力欄に <code>[h]:mm</code> と入力する</li><li>「OK」を押す</li></ol>



<p class="wp-block-paragraph">これで「25:30」「36:00」「100:00」のように、24時間を超える時間が正しく表示されますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>入力するのは半角の角括弧</strong></p><p><code>[h]:mm</code> の角括弧は<strong>半角</strong>で入力してください。<code>【h】:mm</code> や <code>［h］:mm</code> のような全角だと書式として認識されません。日本語入力モードがオンになっていないか確認しましょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">ショートカット（Ctrl+1）でセルの書式設定を開く</span></h3>



<p class="wp-block-paragraph"><code>Ctrl+1</code>（テンキーではなく通常の <code>1</code> キー）はセルの書式設定ダイアログを一発で開く定番ショートカットです。マウス操作より圧倒的に速いので、書式変更が多い人はぜひ覚えてください。</p>



<p class="wp-block-paragraph">複数のセルにまとめて適用したいときは、対象セル範囲を選択してから <code>Ctrl+1</code> を押せばOKです。</p>



<h3 class="wp-block-heading"><span id="toc8">設定が反映されない・元に戻るときのチェックポイント</span></h3>



<p class="wp-block-paragraph"><code>[h]:mm</code> を設定しても表示が変わらないときは、以下のポイントを確認してみてください。</p>



<ul class="wp-block-list"><li><strong>数値ではなく文字列として入力されている</strong>: セルの値が左揃えで表示されている場合、文字列扱いになっています。一度セルを削除して <code>9:30</code> のように半角コロン区切りで入力し直してください</li><li><strong>書式設定が別のセルに適用されている</strong>: 合計行ではなく明細行のセルに書式を当てていないか確認しましょう</li><li><strong>コピー貼り付けで書式が上書きされた</strong>: 別のセルからコピーした際、書式まで上書きされるとリセットされます。値だけを貼り付けたい場合は「形式を選択して貼り付け」→「値」を使いましょう</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>CSV出力した時間データは要注意</strong></p><p>勤怠システムからCSV出力した時間データは、Excelで開くと文字列のまま読み込まれることがあります。書式設定を変えても見た目が変わらない場合は、まず数値（時刻）として認識されているかを確認しましょう。<a href="https://mashukabu.com/excel-function-howto-use-timevalue/">TIMEVALUE関数</a>で文字列→時刻に変換する手もあります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">知っておきたい時間書式コード4種の早見表</span></h2>



<p class="wp-block-paragraph"><code>[h]:mm</code> 以外にも、目的別に使える時間書式コードがいくつかあります。覚えておくと給与計算や工数管理で重宝しますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>書式コード</th><th>用途</th><th>表示例（合計36時間30分のとき）</th></tr></thead><tbody><tr><td><code>[h]:mm</code></td><td>24時間以上の合計時間（時:分）</td><td><code>36:30</code></td></tr><tr><td><code>[h]:mm:ss</code></td><td>秒まで含む合計時間</td><td><code>36:30:00</code></td></tr><tr><td><code>[mm]</code></td><td>合計を「分」単位で表示</td><td><code>2190</code></td></tr><tr><td><code>[ss]</code></td><td>合計を「秒」単位で表示</td><td><code>131400</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc10">[h]:mm（24時間以上の合計時間）</span></h3>



<p class="wp-block-paragraph">もっとも使うシーンが多い書式です。月間の勤務時間合計やプロジェクトごとの工数集計など、24時間を超える時間を表示したいときの定番です。</p>



<h3 class="wp-block-heading"><span id="toc11">[h]:mm:ss（秒まで含む合計時間）</span></h3>



<p class="wp-block-paragraph">ストップウォッチで計測した作業時間や、コールセンターの対応時間集計など、秒単位の精度が必要な場面で使います。<code>[h]:mm</code> に <code>:ss</code> を付け足すだけです。</p>



<h3 class="wp-block-heading"><span id="toc12">[mm]（合計を「分」で表示）</span></h3>



<p class="wp-block-paragraph">合計時間を「2190分」のように分単位で見たいときに使います。1分あたりの単価で計算する場面で便利です。</p>



<p class="wp-block-paragraph"><code>mm</code> を角括弧で囲むのがポイントです。角括弧がないと「分の部分（30）」だけが表示されてしまいます。</p>



<h3 class="wp-block-heading"><span id="toc13">[ss]（合計を「秒」で表示）</span></h3>



<p class="wp-block-paragraph"><code>[mm]</code> の秒版です。API のレスポンスタイム集計や、計測機器から出力された時間データの正規化などで使います。</p>



<h2 class="wp-block-heading"><span id="toc14">SUMIF・SUMIFSとの組み合わせで条件付き時間集計</span></h2>



<p class="wp-block-paragraph">実務でよくあるのが「特定の社員だけ」「特定の日付範囲だけ」を集計したいケースです。時間データであっても <a href="https://mashukabu.com/excel-function-howto-use-sumif/">SUMIF 関数</a>や <a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS 関数</a>は通常通り動作するので、合わせて使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc15">SUMIFで特定の社員だけ合計（勤怠集計の例）</span></h3>



<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>5/1</td><td>山田</td><td>8:00</td></tr><tr><td>5/1</td><td>佐藤</td><td>7:30</td></tr><tr><td>5/2</td><td>山田</td><td>9:30</td></tr><tr><td>5/2</td><td>佐藤</td><td>8:00</td></tr><tr><td>5/3</td><td>山田</td><td>8:00</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">山田さんだけの合計時間を出したい場合は、次の数式を使います。</p>



<pre class="wp-block-code"><code>=SUMIF(B2:B6, &quot;山田&quot;, C2:C6)</code></pre>



<p class="wp-block-paragraph">結果はシリアル値「1.0625」（=25時間30分）が返ります。<strong>ここで重要なのは、結果セルに必ず <code>[h]:mm</code> 書式を設定すること</strong>です。既定の <code>h:mm</code> のままだと「01:30」と表示され、また同じ問題に戻ってしまいます。</p>



<h3 class="wp-block-heading"><span id="toc16">SUMIFSで複数条件（社員×期間）の集計</span></h3>



<p class="wp-block-paragraph">「山田さんの5月1日〜5月2日だけ」のように複数条件を指定したい場合は、SUMIFS を使います。</p>



<pre class="wp-block-code"><code>=SUMIFS(C2:C6, B2:B6, &quot;山田&quot;, A2:A6, &quot;&gt;=2026/5/1&quot;, A2:A6, &quot;&lt;=2026/5/2&quot;)</code></pre>



<p class="wp-block-paragraph">結果: 17時間30分（山田さんの5/1の8:00 + 5/2の9:30）</p>



<p class="wp-block-paragraph">SUMIFS は条件を何個でも追加できます。「特定の部署×特定の日付範囲×特定のプロジェクト」のような細かい集計にも対応できますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">集計結果を必ず「[h]:mm」書式にすること</span></h3>



<p class="wp-block-paragraph">SUMIF や SUMIFS で時間を集計するときの最大の落とし穴は、集計結果のセルにデフォルトの <code>h:mm</code> 書式が当たってしまうことです。</p>



<p class="wp-block-paragraph">集計式を入力したら、すぐに <code>Ctrl+1</code> で書式を <code>[h]:mm</code> に変更する癖をつけておきましょう。集計テンプレートを作成する際にも、合計行・小計行のセルを <code>[h]:mm</code> で揃えておくとミスを防げますよ。</p>



<h2 class="wp-block-heading"><span id="toc18">時間を「分」「秒」「小数時間」に変換する方法</span></h2>



<p class="wp-block-paragraph">時間データを給与計算や原価計算で使うときは、「2:30」のような時刻表示ではなく「2.5時間」や「150分」のような数値が必要になりますよね。シリアル値の仕組みを使えば、シンプルな掛け算で変換できます。</p>



<h3 class="wp-block-heading"><span id="toc19">時間→小数時間（×24）給与計算の定番</span></h3>



<p class="wp-block-paragraph">時給を掛けて給与を計算するとき、「小数時間」への変換が必要です。シリアル値に 24 を掛けるだけで変換できます。</p>



<pre class="wp-block-code"><code>=A2 * 24</code></pre>



<p class="wp-block-paragraph">たとえば A2 が「8:30」（=シリアル値 0.354166&#8230;）なら、結果は「8.5」になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>時刻</th><th>シリアル値</th><th>×24（小数時間）</th></tr></thead><tbody><tr><td>1:00</td><td>0.0416&#8230;</td><td>1</td></tr><tr><td>8:30</td><td>0.354166&#8230;</td><td>8.5</td></tr><tr><td>25:00</td><td>1.0416&#8230;</td><td>25</td></tr><tr><td>100:30</td><td>4.1875</td><td>100.5</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>給与計算の具体例</strong></p><p>月間勤務時間が 165:30、時給が 1,500 円のとき:  <br><code>=A1 <em> 24 </em> 1500</code> → 月給 248,250 円  <br>A1 セルには <code>[h]:mm</code> 書式で時間が入っている前提です。</p></blockquote>



<p class="wp-block-paragraph">変換後のセルは表示形式を「<strong>標準</strong>」または「<strong>数値</strong>」に変更してください。そのままだと、また時刻として表示されてしまいます。</p>



<h3 class="wp-block-heading"><span id="toc20">時間→分（×1440）</span></h3>



<p class="wp-block-paragraph">合計時間を分単位で出したい場合は、24 × 60 = 1440 を掛けます。</p>



<pre class="wp-block-code"><code>=A2 * 1440</code></pre>



<p class="wp-block-paragraph">8:30 → 510分（=8.5 × 60）に変換されます。</p>



<p class="wp-block-paragraph">先ほど紹介した <code>[mm]</code> 書式を使えば、計算を介さずに分表示できます。ただし <code>=A2 * 1440</code> で数値として出す方が、後続の計算で扱いやすいですよ。</p>



<h3 class="wp-block-heading"><span id="toc21">時間→秒（×86400）</span></h3>



<p class="wp-block-paragraph">秒単位への変換は 24 × 60 × 60 = 86400 を掛けます。</p>



<pre class="wp-block-code"><code>=A2 * 86400</code></pre>



<p class="wp-block-paragraph">API のレスポンスタイム集計や、計測機器から出力された時間データの正規化などで使います。</p>



<h2 class="wp-block-heading"><span id="toc22">マイナスの時間が「####」になるときの対処法</span></h2>



<p class="wp-block-paragraph">「退勤予定時刻 − 退勤実績時刻」のように引き算した結果がマイナスになると、Excel では <code>####</code> と表示されてしまいます。列幅が狭くて起きる <code>####</code> とは別問題で、こちらは Excel の仕様によるものです。</p>



<h3 class="wp-block-heading"><span id="toc23">原因：Excelはマイナスの時刻を表示できない</span></h3>



<p class="wp-block-paragraph">Excel は既定で「1900年日付システム」を使っており、シリアル値がマイナスになる時刻は表示できません。時刻もシリアル値で管理されているため、マイナスの時刻は <code>####</code> で代用されます。</p>



<p class="wp-block-paragraph">セルに格納されている値は計算に使えますが、見た目だけが <code>####</code> になります。</p>



<h3 class="wp-block-heading"><span id="toc24">解決策1：1904年日付システムに切り替える</span></h3>



<p class="wp-block-paragraph">ブック全体でマイナス時刻を扱いたい場合は、1904年日付システムへ切り替える方法があります。</p>



<ol class="wp-block-list"><li>「ファイル」 → 「オプション」を開く</li><li>左側のメニューから「詳細設定」を選ぶ</li><li>「次のブックを計算するとき」セクションの「<strong>1904年日付システムを使用する</strong>」にチェックを入れる</li><li>「OK」を押す</li></ol>



<p class="wp-block-paragraph">これでマイナスの時刻が <code>-1:30</code> のように表示されるようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>既存の日付データが4年ずれる副作用</strong></p><p>1904年日付システムへの切替はブック全体に影響します。既に入力済みの日付データがすべて4年と1日ずれて表示されます。新規ブックでない限り、基本的にはおすすめしません。次に紹介する IF関数を使った方法のほうが副作用がなく安全ですよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc25">解決策2：IF関数で符号を判定して表示する</span></h3>



<p class="wp-block-paragraph">ブック全体に影響を出さずにマイナス時刻を扱いたいなら、IF 関数で正負を判定して文字列として表示するのが安全です。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=A2, TEXT(B2-A2, &quot;h:mm&quot;), &quot;-&quot;&amp;TEXT(A2-B2, &quot;h:mm&quot;))</code></pre>



<p class="wp-block-paragraph">この数式は次のように動作します。</p>



<ul class="wp-block-list"><li>B2（退勤）が A2（出勤予定）以上なら、差分を「h:mm」形式で表示</li><li>それ以外（=マイナス）なら、絶対値を求めて頭に「-」を付けて表示</li></ul>



<p class="wp-block-paragraph">結果は文字列になるため、後の集計に使う場合は注意が必要です。集計用の数値が必要な場面では、別セルで <code>=B2-A2</code> の数値（マイナスのシリアル値）を保持しておき、表示用には IF + TEXT を使うのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc26">解決策3：TEXT関数の書式コードで正負両方を指定する</span></h3>



<p class="wp-block-paragraph">TEXT 関数の書式コードはセミコロンで区切ると、正の値・負の値の表示を別々に指定できます。</p>



<pre class="wp-block-code"><code>=TEXT(B2-A2, &quot;[h]:mm;-[h]:mm&quot;)</code></pre>



<p class="wp-block-paragraph"><code>[h]:mm;-[h]:mm</code> の前半が正の値の書式、セミコロン後の <code>-[h]:mm</code> が負の値の書式です。IF 関数より数式がシンプルになるのが利点です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>1904年日付システムが必要</strong></p><p>この数式は 1904年日付システムを有効にしているブックでのみ機能します。既定の 1900年日付システムではマイナスのシリアル値を保持できないため、B2-A2 がマイナスになった時点で <code>####</code> になります。マイナス時刻の扱いには解決策1との併用が前提です。</p></blockquote>



<p class="wp-block-paragraph">なお、列幅不足で <code>####</code> になるケースは Excel の表示形式とは別問題です。詳しくは <a href="https://mashukabu.com/excel-cell-sharp-display/">Excelのセルに「####」が表示される原因と直し方</a>の記事で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc27">よくあるトラブルとQ&#038;A</span></h2>



<p class="wp-block-paragraph">最後に、時間集計でつまずきやすいケースをまとめておきます。</p>



<h3 class="wp-block-heading"><span id="toc28">[h]:mmを設定しても表示が変わらない</span></h3>



<p class="wp-block-paragraph">セルに入っているデータが<strong>文字列</strong>として認識されている可能性が高いです。次の手順で確認しましょう。</p>



<ol class="wp-block-list"><li>該当セルを選択して、表示が左揃えになっていないか確認する（左揃え=文字列）</li><li>一度セルを削除し、<code>9:30</code> のように半角コロン区切りで入力し直す</li><li>それでもダメな場合は、<a href="https://mashukabu.com/excel-function-howto-use-timevalue/">TIMEVALUE関数</a>で文字列→時刻に変換する</li></ol>



<h3 class="wp-block-heading"><span id="toc29">合計が0:00と表示される（時間として認識されていない）</span></h3>



<p class="wp-block-paragraph">合計対象セルの一部に文字列が混ざっていると、SUM の結果が「0:00」になります。</p>



<p class="wp-block-paragraph">対処法として、<code>=SUMPRODUCT(TIMEVALUE(A2:A10))</code> のように文字列を時刻に変換してから集計する方法があります。あるいは、元データの入力ルールを見直してすべて時刻形式で入力し直すのが根本的な解決策です。</p>



<h3 class="wp-block-heading"><span id="toc30">印刷したら時間表示が崩れる</span></h3>



<p class="wp-block-paragraph"><code>[h]:mm:ss</code> のような長い書式を使っているとき、列幅が足りないと印刷時だけ <code>####</code> が表示されることがあります。</p>



<p class="wp-block-paragraph">印刷プレビューで確認してから、<code>Alt+H, O, I</code>（列幅自動調整）で対処してください。給与計算書のような毎月使うテンプレートでは、最大値（例: 200:00:00）が入っても収まる列幅をあらかじめ設定しておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc31">24時間ぴったり（24:00）と表示したいのに「0:00」になる</span></h3>



<p class="wp-block-paragraph">「24:00」と入力したいのに勝手に「0:00」になってしまうのは、Excel が「24:00 = 翌日 0:00」と解釈してしまうためです。</p>



<p class="wp-block-paragraph"><code>[h]:mm</code> 書式を当てた状態で、セルに <code>=1</code>（シリアル値1=24時間）と入力すると「24:00」と正しく表示されますよ。</p>



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



<p class="wp-block-paragraph">Excelで時間の合計が24時間を超えると0時に戻ってしまう問題と解決法を紹介しました。要点をおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>原因は Excel が時刻を「シリアル値（1日=1の小数）」で管理していること</li><li>既定の <code>h:mm</code> 書式は1日（整数部分）を切り捨てるため、24時間を超えた分が表示されない</li><li>解決策は <code>Ctrl+1</code> で書式を <code>[h]:mm</code> に変更すること</li><li><code>[h]:mm:ss</code> <code>[mm]</code> <code>[ss]</code> を使い分けると、秒単位や分単位の合計表示にも対応できる</li><li>SUMIF・SUMIFS と組み合わせるときも、結果セルに必ず <code>[h]:mm</code> を当てること</li><li>時間→小数時間は ×24、時間→分は ×1440、時間→秒は ×86400</li><li>マイナス時間の <code>####</code> は IF 関数 + TEXT 関数または 1904年日付システムで解決</li></ul>



<p class="wp-block-paragraph">勤怠管理や工数集計でこの問題に毎月ぶつかっている人は、テンプレート段階で合計セルに <code>[h]:mm</code> を仕込んでおくのがおすすめですよ。次の月末からは集計のたびに悩む時間がなくなって、本来の業務に集中できますね。</p>



<p class="wp-block-paragraph">時間関連の関数についてもっと知りたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-hour/">HOUR関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-minute/">MINUTE関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-second/">SECOND関数</a>の記事も合わせて読んでみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-time-sum-over-24-hours/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelで空白に見えるのにCOUNTBLANKで0になる・空白判定されない原因と対処法</title>
		<link>https://mashukabu.com/excel-blank-cell-not-counted/</link>
					<comments>https://mashukabu.com/excel-blank-cell-not-counted/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 15:51:16 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[COUNTBLANK]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[ISBLANK]]></category>
		<category><![CDATA[トラブル対処]]></category>
		<category><![CDATA[空白判定]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7857</guid>

					<description><![CDATA[Excelで空白に見えるのにCOUNTBLANKで0になる・ISBLANKがTRUEにならない問題の解決法を解説。空文字列・スペース・セル内改行・NBSPの5パターンと対処法、LEN/CODE関数による診断手順、TRIM/CLEAN/SUBSTITUTEを使った万能クレンジング式を紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「明らかに空白なのにCOUNTBLANKで0が返る」「ISBLANKがTRUEにならない」――そんな経験はありませんか。</p>



<p class="wp-block-paragraph">Excelの「空白」には、見た目では区別できない5つのパターンがあります。これを知らないまま集計すると、件数のズレや空白判定ミスが発生してしまいます。</p>



<p class="wp-block-paragraph">この記事では、空白に見えるのに空白判定されない5つの原因と、それぞれの対処法をまとめて紹介します。LEN関数とCODE関数を使った診断手順、判定数式の早見表、VBAでの一括クレンジングコードまで一気通貫で解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Excelで空白に見えるのにCOUNTBLANKで0になる5つの原因</a><ol><li><a href="#toc2" tabindex="0">原因1: 数式が返す空文字列（&#8221;&#8221;）</a></li><li><a href="#toc3" tabindex="0">原因2: 半角スペースや全角スペース</a></li><li><a href="#toc4" tabindex="0">原因3: セル内改行（Alt+Enter）だけが入っている</a></li><li><a href="#toc5" tabindex="0">原因4: ハードスペース（NBSP / Chr(160)）</a></li><li><a href="#toc6" tabindex="0">原因5: 文字列として入力された見えない文字</a></li></ol></li><li><a href="#toc7" tabindex="0">「本当の空白」と「見た目だけの空白」の違いを理解する</a><ol><li><a href="#toc8" tabindex="0">ISBLANKは「中身が完全に何もない」だけTRUE</a></li><li><a href="#toc9" tabindex="0">COUNTBLANKは「ISBLANK + 空文字列」もカウント対象</a></li><li><a href="#toc10" tabindex="0">COUNTAは「空文字列を返す数式」も非空とみなす</a></li><li><a href="#toc11" tabindex="0">判定基準の違いを一覧表で整理</a></li></ol></li><li><a href="#toc12" tabindex="0">原因を特定する3つの診断手順</a><ol><li><a href="#toc13" tabindex="0">手順1: LEN関数で文字数を表示する</a></li><li><a href="#toc14" tabindex="0">手順2: CODE関数で先頭1文字の文字コードを確認する</a></li><li><a href="#toc15" tabindex="0">手順3: 数式バーで実体を直接見る</a></li></ol></li><li><a href="#toc16" tabindex="0">原因別の対処法</a><ol><li><a href="#toc17" tabindex="0">対処1: 数式の空文字列&#8221;&#8221;を消すには</a></li><li><a href="#toc18" tabindex="0">対処2: スペースを削除するTRIM関数</a></li><li><a href="#toc19" tabindex="0">対処3: 改行を削除するCLEAN関数</a></li><li><a href="#toc20" tabindex="0">対処4: NBSPを削除するSUBSTITUTE関数</a></li><li><a href="#toc21" tabindex="0">対処5: 一括クレンジングする組み合わせ式</a></li></ol></li><li><a href="#toc22" tabindex="0">空白判定数式の早見表</a><ol><li><a href="#toc23" tabindex="0">5パターン × 5判定数式のクロス表</a></li><li><a href="#toc24" tabindex="0">状況別の推奨判定式</a></li><li><a href="#toc25" tabindex="0">空白セルの件数を正しく数える</a></li></ol></li><li><a href="#toc26" tabindex="0">VBAで不可視空白を一括クレンジングするコード</a><ol><li><a href="#toc27" tabindex="0">選択範囲の全セルから不可視空白を除去するマクロ</a></li><li><a href="#toc28" tabindex="0">実行時の注意点</a></li></ol></li><li><a href="#toc29" tabindex="0">よくあるトラブルとQ&#038;A</a><ol><li><a href="#toc30" tabindex="0">TRIMを使っても空白が消えない</a></li><li><a href="#toc31" tabindex="0">フィルターで「空白セル」が出てこない</a></li><li><a href="#toc32" tabindex="0">数式バーには何も見えないのにISBLANKでFALSEになる</a></li><li><a href="#toc33" tabindex="0">COUNTBLANKが想定より多くカウントされる</a></li><li><a href="#toc34" tabindex="0">列幅が狭いと「####」と表示される</a></li></ol></li><li><a href="#toc35" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Excelで空白に見えるのにCOUNTBLANKで0になる5つの原因</span></h2>



<p class="wp-block-paragraph">最初に、空白に見えるのに空白扱いされない5つのパターンを整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>パターン</th><th>中身</th><th>文字コード</th><th>主な発生源</th></tr></thead><tbody><tr><td>① 空文字列</td><td><code>""</code>（長さ0の文字列）</td><td>–</td><td><code>=IF(...,"OK","")</code> のような数式</td></tr><tr><td>② 半角スペース</td><td>スペース1個以上</td><td>32</td><td>手入力・前処理ミス</td></tr><tr><td>③ 全角スペース</td><td>スペース1個以上</td><td>12288</td><td>日本語入力モードでの誤入力</td></tr><tr><td>④ セル内改行</td><td>LF</td><td>10</td><td>Alt+Enter による改行</td></tr><tr><td>⑤ NBSP（ハードスペース）</td><td>ノーブレークスペース</td><td>160</td><td>Webサイトからのコピペ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">それぞれ詳しく見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc2">原因1: 数式が返す空文字列（&#8221;&#8221;）</span></h3>



<p class="wp-block-paragraph">もっとも頻発するのが、数式が返す空文字列です。</p>



<p class="wp-block-paragraph"><code>=IF(A1>0,"OK","")</code> のように「該当しないときは空白を表示したい」という設計で広く使われています。このセルは見た目には何もないものの、内部的には「長さ0の文字列」が入っている状態です。</p>



<p class="wp-block-paragraph"><code>""</code> は数式の結果として表示が空に見えるだけで、セルそのものは「空ではない」状態です。</p>



<h3 class="wp-block-heading"><span id="toc3">原因2: 半角スペースや全角スペース</span></h3>



<p class="wp-block-paragraph">セルに半角スペース <code>" "</code> や全角スペース <code>"　"</code> が1つでも入っていると、それは「文字が入っている」状態になります。</p>



<p class="wp-block-paragraph">手入力でうっかり入力したり、CSV取り込み時に余分なスペースが付いてきたりと、発生源は多岐にわたります。同僚から受け取ったデータに混ざっていることも珍しくありません。</p>



<p class="wp-block-paragraph">半角スペースは文字コード32、全角スペースは文字コード12288です。どちらも見た目は「何もないように見える」状態です。</p>



<h3 class="wp-block-heading"><span id="toc4">原因3: セル内改行（Alt+Enter）だけが入っている</span></h3>



<p class="wp-block-paragraph">セル内で <code>Alt+Enter</code> を押すと改行（LF・文字コード10）が挿入されます。</p>



<p class="wp-block-paragraph">文字を入れずに改行だけ入力してしまうと、セルは空白に見えても改行コードが残っている状態です。</p>



<p class="wp-block-paragraph">特に住所欄や備考欄でセル内改行を活用するワークブックに多いパターンで、見た目では絶対に判別できません。</p>



<h3 class="wp-block-heading"><span id="toc5">原因4: ハードスペース（NBSP / Chr(160)）</span></h3>



<p class="wp-block-paragraph">NBSP（Non-Breaking Space・文字コード160）は「改行で区切られない特殊なスペース」です。</p>



<p class="wp-block-paragraph">Webサイトの表をコピペしたり、Wordから貼り付けたりしたデータに頻繁に混入します。見た目は半角スペースとまったく同じですが、TRIM関数で除去できないので非常に厄介です。</p>



<h3 class="wp-block-heading"><span id="toc6">原因5: 文字列として入力された見えない文字</span></h3>



<p class="wp-block-paragraph">タブ文字（文字コード9）やキャリッジリターン（文字コード13）など、ASCII制御文字が紛れているケースもあります。</p>



<p class="wp-block-paragraph">これも見た目では判別できず、原因2〜4と同じく「空白に見えるが文字データが入っている」状態を作ります。</p>



<h2 class="wp-block-heading"><span id="toc7">「本当の空白」と「見た目だけの空白」の違いを理解する</span></h2>



<p class="wp-block-paragraph">5つのパターンを知ったところで、なぜCOUNTBLANKとISBLANKで結果が変わるのか整理します。判定基準の違いを確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc8">ISBLANKは「中身が完全に何もない」だけTRUE</span></h3>



<p class="wp-block-paragraph">ISBLANK関数は、対象のセルが「真の空白」のときだけTRUEを返します。</p>



<p class="wp-block-paragraph">数式の結果として <code>""</code> を返しているセルや、スペース・改行が入っているセルは、すべてFALSE扱いです。「本当に何も入っていない」セルだけを抽出したいときに使う関数だと覚えておいてください。</p>



<p class="wp-block-paragraph">詳しい仕様は <a href="https://mashukabu.com/excel-function-howto-use-isblank/">ExcelのISBLANK関数の使い方</a> で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc9">COUNTBLANKは「ISBLANK + 空文字列」もカウント対象</span></h3>



<p class="wp-block-paragraph">COUNTBLANKの判定はISBLANKより少し広めです。「真の空白」と「<code>=""</code> を返している数式セル」の両方をカウント対象として扱います。</p>



<p class="wp-block-paragraph">つまり原因1（空文字列）はCOUNTBLANKの対象内、原因2〜5（スペース・改行・NBSP）は対象外という挙動です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Microsoft公式のCOUNTBLANK関数仕様でも、「空のセルの数を返す」と説明されつつ、<code>""</code> を返す数式セルも含まれることが明記されています。<br>出典: <a href="https://support.microsoft.com/ja-jp/office/countblank-関数-6a92d772-675c-4bee-b346-24af6bd3ac22">COUNTBLANK 関数</a></p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">COUNTAは「空文字列を返す数式」も非空とみなす</span></h3>



<p class="wp-block-paragraph">COUNTAは「空白以外のセルの数」を数える関数です。<code>""</code> を返す数式セルも「空白ではない」と扱う点に注意が必要です。</p>



<p class="wp-block-paragraph">真の空白だけを除外し、それ以外（空文字列も含む）はすべてカウントする、というのがCOUNTAの仕様です。</p>



<h3 class="wp-block-heading"><span id="toc11">判定基準の違いを一覧表で整理</span></h3>



<p class="wp-block-paragraph">代表的な5パターンと、5つの判定方法の組み合わせを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>セルの状態</th><th>ISBLANK</th><th>COUNTBLANK</th><th>COUNTA</th><th><code>=A1=""</code></th><th>LEN(A1)=0</th></tr></thead><tbody><tr><td>① 真の空白</td><td>TRUE</td><td>カウント</td><td>非カウント</td><td>TRUE</td><td>TRUE</td></tr><tr><td>② 空文字列 <code>""</code></td><td>FALSE</td><td>カウント</td><td>カウント</td><td>TRUE</td><td>TRUE</td></tr><tr><td>③ 半角スペース</td><td>FALSE</td><td>非カウント</td><td>カウント</td><td>FALSE</td><td>FALSE</td></tr><tr><td>④ 全角スペース</td><td>FALSE</td><td>非カウント</td><td>カウント</td><td>FALSE</td><td>FALSE</td></tr><tr><td>⑤ 改行のみ Chr(10)</td><td>FALSE</td><td>非カウント</td><td>カウント</td><td>FALSE</td><td>FALSE</td></tr><tr><td>⑥ NBSP Chr(160)</td><td>FALSE</td><td>非カウント</td><td>カウント</td><td>FALSE</td><td>FALSE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この表を見ると、「自分はどの判定基準で数えたいのか」を意識することの重要性が見えてきます。</p>



<h2 class="wp-block-heading"><span id="toc12">原因を特定する3つの診断手順</span></h2>



<p class="wp-block-paragraph">「空白に見えるけど中身が分からない」セルにぶつかったとき、まずやるべき診断手順を3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc13">手順1: LEN関数で文字数を表示する</span></h3>



<p class="wp-block-paragraph">もっともシンプルな診断方法が、<a href="https://mashukabu.com/excel-function-howto-use-len/">ExcelのLEN関数の使い方</a> を使った文字数チェックです。</p>



<p class="wp-block-paragraph">空いている列に次の数式を入れます。</p>



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



<p class="wp-block-paragraph">返ってくる値の意味は次の通りです。</p>



<ul class="wp-block-list"><li><code>0</code>: 真の空白、または <code>""</code> を返す数式</li><li><code>1</code> 以上: 何か文字（スペース・改行・NBSP含む）が入っている</li></ul>



<p class="wp-block-paragraph">LEN関数が「0以外」を返したら、見えない何かがそのセルに入っているサインです。次の手順2に進みましょう。</p>



<h3 class="wp-block-heading"><span id="toc14">手順2: CODE関数で先頭1文字の文字コードを確認する</span></h3>



<p class="wp-block-paragraph">LEN関数で「0以外」が返ったセルに対して、次は <a href="https://mashukabu.com/excel-function-howto-use-code/">ExcelのCODE関数の使い方</a> で先頭1文字の文字コードを取得します。</p>



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



<p class="wp-block-paragraph">返ってきた数値で、何が入っているかが分かります。</p>



<figure class="wp-block-table"><table><thead><tr><th>戻り値</th><th>正体</th></tr></thead><tbody><tr><td>9</td><td>タブ</td></tr><tr><td>10</td><td>改行（LF）</td></tr><tr><td>13</td><td>キャリッジリターン</td></tr><tr><td>32</td><td>半角スペース</td></tr><tr><td>160</td><td>NBSP（ハードスペース）</td></tr><tr><td>12288</td><td>全角スペース</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば <code>160</code> が返ってきたら、原因はNBSPだと一発で特定できます。</p>



<h3 class="wp-block-heading"><span id="toc15">手順3: 数式バーで実体を直接見る</span></h3>



<p class="wp-block-paragraph">少しアナログな方法ですが、診断対象のセルを選択し、数式バーをクリックしてカーソルを置く方法も有効です。</p>



<p class="wp-block-paragraph">矢印キーで左右にカーソルを動かすと、改行やスペースが1文字ずつ存在するのが感覚的に分かります。改行（Alt+Enter）の場合は、カーソルが「下の行」に移動するため、改行の存在をすぐに確認できます。</p>



<h2 class="wp-block-heading"><span id="toc16">原因別の対処法</span></h2>



<p class="wp-block-paragraph">原因が特定できたら、それぞれに合った対処法で空白を整えていきます。</p>



<h3 class="wp-block-heading"><span id="toc17">対処1: 数式の空文字列&#8221;&#8221;を消すには</span></h3>



<p class="wp-block-paragraph">数式が <code>""</code> を返しているセルを「真の空白」にするには、数式そのものを削除するしかありません。</p>



<p class="wp-block-paragraph">ただし、集計だけが目的なら次のような工夫で対応できます。</p>



<ul class="wp-block-list"><li>COUNTBLANK で数える → <code>""</code> も空白扱いなので問題なし</li><li>ISBLANK で判定 → <code>=OR(ISBLANK(A1), A1="")</code> のように複合条件にする</li><li>LEN で判定 → <code>=LEN(A1)=0</code> を使う</li></ul>



<p class="wp-block-paragraph">「数式の出力を空白として扱いたい」という設計なら、COUNTBLANKやLEN=0で対応するのが現実的です。</p>



<h3 class="wp-block-heading"><span id="toc18">対処2: スペースを削除するTRIM関数</span></h3>



<p class="wp-block-paragraph">半角スペースや全角スペースを除去するには、<a href="https://mashukabu.com/excel-function-howto-use-trim/">ExcelのTRIM関数の使い方</a> が便利です。</p>



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



<p class="wp-block-paragraph">TRIM関数は「前後のスペース」と「文字間の連続スペース」を取り除きます。半角・全角どちらにも対応していて、データクレンジングの定番関数です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>TRIM関数はNBSP（文字コード160）を除去できません。半角スペース（32）・全角スペース（12288）が対象で、NBSPには別の対処が必要です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc19">対処3: 改行を削除するCLEAN関数</span></h3>



<p class="wp-block-paragraph">セル内改行（Chr(10)）や、その他のASCII制御文字を除去するには <a href="https://mashukabu.com/excel-function-howto-use-clean/">ExcelのCLEAN関数の使い方</a> が便利です。</p>



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



<p class="wp-block-paragraph">CLEAN関数は、印刷できない制御文字（ASCII 0〜31）をまとめて消してくれます。改行・タブ・キャリッジリターンに対応しているので、CSV取り込み時のクレンジングにも役立ちます。</p>



<h3 class="wp-block-heading"><span id="toc20">対処4: NBSPを削除するSUBSTITUTE関数</span></h3>



<p class="wp-block-paragraph">NBSP（Chr(160)）はTRIMでもCLEANでも除去できません。専用に <a href="https://mashukabu.com/excel-function-howto-use-substitute/">ExcelのSUBSTITUTE関数の使い方</a> を使って置換します。</p>



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



<p class="wp-block-paragraph"><code>CHAR(160)</code> でNBSPを表現し、空文字列に置き換えるという発想です。Webからコピペしたデータの前処理で必須のテクニックです。</p>



<h3 class="wp-block-heading"><span id="toc21">対処5: 一括クレンジングする組み合わせ式</span></h3>



<p class="wp-block-paragraph">5つのパターンをまとめて処理する万能クレンジング式が、次の3つの関数の組み合わせです。</p>



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



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



<ol class="wp-block-list"><li>SUBSTITUTE で NBSP を除去</li><li>CLEAN で改行・タブなどの制御文字を除去</li><li>TRIM で半角・全角スペースを除去</li></ol>



<p class="wp-block-paragraph">この順序にすることで、NBSPを先に消してから他の空白も除去できます。漏れなく不可視文字を取り除けるので覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc22">空白判定数式の早見表</span></h2>



<p class="wp-block-paragraph">「自分の目的にはどの数式を使えばいいのか」を、早見表で整理します。</p>



<h3 class="wp-block-heading"><span id="toc23">5パターン × 5判定数式のクロス表</span></h3>



<p class="wp-block-paragraph">各判定式で、5パターンがどう扱われるかを再掲します。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>推奨数式</th></tr></thead><tbody><tr><td>真の空白だけ判定</td><td><code>=ISBLANK(A1)</code></td></tr><tr><td>真の空白 + 空文字列を空白扱い</td><td><code>=LEN(A1)=0</code> または <code>=A1=""</code></td></tr><tr><td>真の空白 + 空文字列 + スペースのみを空白扱い</td><td><code>=LEN(TRIM(A1))=0</code></td></tr><tr><td>真の空白 + 空文字列 + 改行も含めて空白扱い</td><td><code>=LEN(TRIM(CLEAN(A1)))=0</code></td></tr><tr><td>真の空白 + 空文字列 + すべての不可視文字を空白扱い</td><td><code>=LEN(TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160),""))))=0</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc24">状況別の推奨判定式</span></h3>



<ul class="wp-block-list"><li>「未入力チェックだけしたい」: <code>=ISBLANK(A1)</code></li><li>「数式の空白も含めて未入力扱いしたい」: <code>=LEN(A1)=0</code></li><li>「コピペデータのクレンジングで空白判定したい」: <code>=LEN(TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160),""))))=0</code></li></ul>



<h3 class="wp-block-heading"><span id="toc25">空白セルの件数を正しく数える</span></h3>



<p class="wp-block-paragraph">スペースや改行も含めた「実質空白」の件数を数えたいときは、次の数式が便利です。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(--(LEN(TRIM(CLEAN(SUBSTITUTE(A1:A10,CHAR(160),&quot;&quot;))))=0))</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-countblank/">ExcelのCOUNTBLANK関数の使い方</a> や <a href="https://mashukabu.com/excel-function-howto-use-counta/">ExcelのCOUNTA関数の使い方</a> と組み合わせれば、用途別の正確な件数が出せます。</p>



<h2 class="wp-block-heading"><span id="toc26">VBAで不可視空白を一括クレンジングするコード</span></h2>



<p class="wp-block-paragraph">大量のデータを一気に整えたいときは、VBAでマクロを組むのが効率的です。</p>



<h3 class="wp-block-heading"><span id="toc27">選択範囲の全セルから不可視空白を除去するマクロ</span></h3>



<p class="wp-block-paragraph">選択範囲にこのコードを実行すると、5パターンの不可視空白がすべて削除されます。</p>



<pre class="wp-block-code"><code>Sub CleanBlanks()

    Dim rng As Range   '--- 範囲ループ用 ---
    Dim v As String    '--- 一時保持文字列 ---

    For Each rng In Selection
        If VarType(rng.Value) = vbString Then
            v = rng.Value
            v = Replace(v, Chr(160), &quot;&quot;)  '--- NBSPを削除 ---
            v = Replace(v, Chr(10), &quot;&quot;)   '--- LF（改行）を削除 ---
            v = Replace(v, Chr(13), &quot;&quot;)   '--- CRを削除 ---
            v = Replace(v, Chr(9), &quot;&quot;)    '--- タブを削除 ---
            v = Trim(v)                   '--- 前後の半角スペースを削除 ---

            If v = &quot;&quot; Then
                rng.ClearContents          '--- 完全に空にして真の空白へ ---
            Else
                rng.Value = v
            End If
        End If
    Next rng

    MsgBox &quot;クレンジング完了&quot;

End Sub</code></pre>



<p class="wp-block-paragraph">VBAの空白削除関連は <a href="https://mashukabu.com/excel-vba-string-trim-summary/">ExcelVBA 空白削除まとめ</a> でもまとめて解説しています。応用したい方は併せてご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc28">実行時の注意点</span></h3>



<ul class="wp-block-list"><li><code>VarType</code> で文字列セルのみ判定しているので、数式セルや数値セルはスキップされます</li><li>全角スペースは <code>Trim</code> では除去されません。除去したい場合は <code>v = Replace(v, "　", "")</code> を追加してください</li><li>元データを残したい場合は、実行前にシートをコピーしておくことをおすすめします</li></ul>



<h2 class="wp-block-heading"><span id="toc29">よくあるトラブルとQ&#038;A</span></h2>



<p class="wp-block-paragraph">最後に、現場でよく聞かれる質問にQ&#038;A形式で答えていきます。</p>



<h3 class="wp-block-heading"><span id="toc30">TRIMを使っても空白が消えない</span></h3>



<p class="wp-block-paragraph">→ 原因はNBSP（文字コード160）の可能性が高いです。CODE関数で文字コードを確認してください。160が返ってきたら <code>=SUBSTITUTE(A1, CHAR(160), "")</code> で置換します。</p>



<h3 class="wp-block-heading"><span id="toc31">フィルターで「空白セル」が出てこない</span></h3>



<p class="wp-block-paragraph">→ Excelのオートフィルターは「空白セル」をISBLANK基準で判定します。そのため <code>""</code> を返す数式セルや、スペースの入ったセルはヒットしません。</p>



<p class="wp-block-paragraph">先に万能クレンジング式 <code>=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160),"")))</code> を作業列に作成し、その結果が空のセルをフィルターしてください。</p>



<h3 class="wp-block-heading"><span id="toc32">数式バーには何も見えないのにISBLANKでFALSEになる</span></h3>



<p class="wp-block-paragraph">→ Chr(160) や Chr(10) などの不可視文字が入っている可能性があります。LEN関数で文字数を確認し、0以外ならCODE関数で文字コードを特定してください。</p>



<h3 class="wp-block-heading"><span id="toc33">COUNTBLANKが想定より多くカウントされる</span></h3>



<p class="wp-block-paragraph">→ <code>=IF(...,"...","")</code> のような空文字列を返す数式セルがCOUNTBLANKに含まれているからです。真の空白だけ数えたいときは <code>=SUMPRODUCT(--ISBLANK(A1:A10))</code> を使ってください。</p>



<h3 class="wp-block-heading"><span id="toc34">列幅が狭いと「####」と表示される</span></h3>



<p class="wp-block-paragraph">→ こちらは空白判定とは別の問題です。列幅不足のときに発生します。詳細は <a href="https://mashukabu.com/excel-cell-sharp-display/">Excelのセルに「####」が表示される原因と直し方</a> で解説しています。</p>



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



<p class="wp-block-paragraph">Excelで「空白に見えるのにCOUNTBLANKで0になる」原因は、次の5つに集約されます。</p>



<ol class="wp-block-list"><li>数式が返す空文字列 <code>""</code></li><li>半角スペース・全角スペース</li><li>セル内改行（Alt+Enter）</li><li>ハードスペース（NBSP / Chr(160)）</li><li>その他の制御文字（タブ・キャリッジリターンなど）</li></ol>



<p class="wp-block-paragraph">これらの正体を見抜くには、LEN関数で文字数を測り、CODE関数で文字コードを特定するのが鉄則です。</p>



<p class="wp-block-paragraph">対処は原因別に使い分けます。</p>



<ul class="wp-block-list"><li>空文字列 → 集計式の側で <code>LEN=0</code> 判定</li><li>スペース → TRIM</li><li>改行・制御文字 → CLEAN</li><li>NBSP → SUBSTITUTE + CHAR(160)</li><li>一括クレンジング → <code>=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160),"")))</code></li></ul>



<p class="wp-block-paragraph">VBAを使えば、選択範囲の不可視空白をまとめて掃除することもできます。</p>



<p class="wp-block-paragraph">「明らかに空白なのに件数が合わない」と感じたら、まずはLEN関数で文字数チェック。そこから先は今回紹介した手順で、原因を一つずつ潰していきましょう。</p>



<p class="wp-block-paragraph">データクレンジングの基本としてとても役立つ知識なので、ぜひブックマークしてご活用ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-blank-cell-not-counted/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
