<?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>OCT2HEX &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/oct2hex/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:23:46 +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>OCT2HEX &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのOCT2HEX関数の使い方｜8進→16進数変換</title>
		<link>https://mashukabu.com/spreadsheet-oct2hex-function/</link>
					<comments>https://mashukabu.com/spreadsheet-oct2hex-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 14:26:55 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[16進数]]></category>
		<category><![CDATA[8進数]]></category>
		<category><![CDATA[OCT2HEX]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[基数変換]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6329</guid>

					<description><![CDATA[GoogleスプレッドシートのOCT2HEX関数の使い方を解説。8進数を16進数に変換する基本構文から、桁数指定によるゼロ埋め、ARRAYFORMULAでの一括変換、Linuxパーミッションの16進記録、負の数（2の補数）の扱い、#NUM!エラーの対処法、HEX2OCTでの逆変換まで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「サーバーのパーミッション値（755とか644）を、ドキュメントに合わせて16進数表記で揃えて記録したい&#8230;」</p>



<p class="wp-block-paragraph">スプレッドシートで権限管理台帳やレジスタ設定の記録を扱っていると、8進数のままでは桁が揃わなかったり、ドキュメントの16進表記と並べたときに見比べづらかったりして困りますよね。電卓で1件ずつ変換するのは、件数が増えると現実的ではありません。</p>



<p class="wp-block-paragraph">そんなときに役立つのがGoogleスプレッドシートのOCT2HEX関数です。8進数の文字列を指定するだけで、16進数のテキストに変換してくれますよ。</p>



<p class="wp-block-paragraph">桁数引数を指定すれば、左ゼロ埋めで「002」「01F」のように見た目を揃えられます。Excelとも互換性があるため、ファイルをやり取りする現場でも安心ですね。</p>



<p class="wp-block-paragraph">この記事では、OCT2HEX関数の基本から桁数引数によるゼロ埋め・ARRAYFORMULAでの一括変換・負の数の扱い・エラー対処法まで解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">OCT2HEX関数とは？</a><ol><li><a href="#toc2" tabindex="0">関数名の由来</a></li><li><a href="#toc3" tabindex="0">OCT2HEX関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">OCT2HEX関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">第1引数：変換する8進数</a></li><li><a href="#toc8" tabindex="0">第2引数：桁数（任意）</a></li></ol></li><li><a href="#toc9" tabindex="0">8進数と16進数の対応表</a></li><li><a href="#toc10" tabindex="0">OCT2HEX関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">直接入力で変換する</a></li><li><a href="#toc12" tabindex="0">セル参照で変換する</a></li></ol></li><li><a href="#toc13" tabindex="0">桁数引数でゼロ埋めする</a><ol><li><a href="#toc14" tabindex="0">4桁にゼロ埋めする</a></li><li><a href="#toc15" tabindex="0">桁数比較表</a></li></ol></li><li><a href="#toc16" tabindex="0">ARRAYFORMULAで一括変換する</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">戻り値はテキスト型（計算前にHEX2DECが必要）</a><ol><li><a href="#toc20" tabindex="0">SUMで合計したい場合</a></li><li><a href="#toc21" tabindex="0">VLOOKUPの検索値として使う場合</a></li></ol></li><li><a href="#toc22" tabindex="0">負の数の変換（30ビット2の補数）</a><ol><li><a href="#toc23" tabindex="0">負の数の仕組み</a></li></ol></li><li><a href="#toc24" tabindex="0">エラーの種類と対処法</a><ol><li><a href="#toc25" tabindex="0">#NUM! エラー</a></li><li><a href="#toc26" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc27" tabindex="0">エラー対処：IFERRORで包む</a></li><li><a href="#toc28" tabindex="0">エラー防止：正規表現で事前チェック</a></li></ol></li><li><a href="#toc29" tabindex="0">実務での応用例</a><ol><li><a href="#toc30" tabindex="0">Linuxパーミッションを16進記録する</a></li><li><a href="#toc31" tabindex="0">メモリアドレス・レジスタ値の整形</a></li><li><a href="#toc32" tabindex="0">既存16進マスタとの突合検索</a></li></ol></li><li><a href="#toc33" tabindex="0">OCT2HEX関数とExcelの互換性</a></li><li><a href="#toc34" tabindex="0">OCT2シリーズ3関数の比較</a></li><li><a href="#toc35" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc36" tabindex="0">Q1. OCT2HEXの結果を計算に使えないのはなぜですか？</a></li><li><a href="#toc37" tabindex="0">Q2. 8進数の「77」を直接書いたら #NUM! や予期しない値が返るのはなぜですか？</a></li><li><a href="#toc38" tabindex="0">Q3. OCT2HEXとDEC2HEX、どちらを使うべきですか？</a></li></ol></li><li><a href="#toc39" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">OCT2HEX関数（読み方: オクト・ツー・ヘックス）は、<strong>8進数を16進数のテキストに変換するエンジニアリング関数</strong>です。Googleスプレッドシートに標準搭載されていて、追加設定なしで使えます。</p>



<p class="wp-block-paragraph">8進数は0〜7の数字（合計8種類）で数値を表す方法です。一方の16進数は0〜9とA〜Fの16種類で表します。8進数3桁は10進数を経由しないと16進数に変換しづらいため、関数で一発変換できると便利ですよ。</p>



<p class="wp-block-paragraph">たとえば <code>=OCT2HEX("17")</code> と入力すると、結果は「F」です。8進数の「17」（1×8+7=15）が16進数のF（15）と一致するとわかります。</p>



<h3 class="wp-block-heading"><span id="toc2">関数名の由来</span></h3>



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



<ul class="wp-block-list"><li><strong>OCT</strong> = Octal（オクタル、8進数）</li><li><strong>2</strong> = to（〜へ）</li><li><strong>HEX</strong> = Hexadecimal（ヘキサデシマル、16進数）</li></ul>



<p class="wp-block-paragraph">つまり「OCTからHEXへ」、8進数を16進数に変換するという意味がそのまま名前になっています。逆変換の<a href="https://mashukabu.com/spreadsheet-hex2oct-function/">HEX2OCT関数</a>とセットで覚えると便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">OCT2HEX関数でできること</span></h3>



<p class="wp-block-paragraph">OCT2HEX関数の特徴をまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>8進数を16進数のテキストに変換する</li><li>変換できる範囲は -536,870,912〜536,870,911（30ビット符号付き整数）</li><li><strong>桁数引数を指定して左ゼロ埋めができる</strong>（<a href="https://mashukabu.com/spreadsheet-oct2dec-function/">OCT2DEC関数</a>と異なる）</li><li><strong>戻り値はテキスト型</strong>（文字列）→ 計算するには HEX2DEC で数値化が必要</li><li>ExcelのOCT2HEX関数と仕様が同じで、ファイル共有でもそのまま動作する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>OCT2HEX関数は逆変換のHEX2OCT関数（16進→8進）とペアで使います。また、姉妹関数の<a href="https://mashukabu.com/spreadsheet-oct2bin-function/">OCT2BIN関数</a>（8進→2進）や<a href="https://mashukabu.com/spreadsheet-oct2dec-function/">OCT2DEC関数</a>（8進→10進）と合わせて、基数変換セットとして覚えておくと便利ですよ。</p></blockquote>



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



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



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



<p class="wp-block-paragraph">カッコの中に、変換したい8進数と、必要なら桁数を指定します。桁数は省略可能です。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の説明</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>16進数に変換したい8進数（最大10文字）。-536,870,912〜536,870,911 に相当する値のみ有効</td></tr><tr><td>桁数</td><td>任意</td><td>結果の桁数（1〜10）。省略時は最小桁数。負の数では無視される</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">桁数を指定すると、結果の文字数が足りない場合に左に「0」を埋めて揃えてくれますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">第1引数：変換する8進数</span></h3>



<p class="wp-block-paragraph">数値に指定できるのは、次の条件を満たす値です。</p>



<ul class="wp-block-list"><li>0〜7のみで構成された文字列（8や9は不可）</li><li>最大10文字（30ビット）まで</li><li>変換結果が -536,870,912〜536,870,911 の範囲に収まるもの</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>OCT2HEX関数の引数には「8進数の文字列」または「8進数が入ったセル参照」を指定します。<code>=OCT2HEX(077)</code> のように先頭ゼロ付きの数値を直接書くと、スプレッドシートが先頭ゼロを落としてしまう場合があります。<code>=OCT2HEX("077")</code> のようにダブルクォートで文字列として指定するのが安全ですよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc8">第2引数：桁数（任意）</span></h3>



<p class="wp-block-paragraph">桁数には1〜10の整数を指定できます。指定しない場合は、結果に必要な最小桁数で返ります。</p>



<ul class="wp-block-list"><li>結果の桁数より大きい値を指定 → 左ゼロ埋めで揃える</li><li>結果の桁数より小さい値を指定 → #NUM! エラー</li><li>負の数の変換時 → 桁数指定は無視され、常に10桁で返る</li></ul>



<p class="wp-block-paragraph">ドキュメントで「002」「01F」のように見た目を揃えたい場面で活躍しますよ。</p>



<h2 class="wp-block-heading"><span id="toc9">8進数と16進数の対応表</span></h2>



<p class="wp-block-paragraph">OCT2HEX関数の動きをイメージしやすくするため、よく使われる8進数の対応を表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>8進数</th><th>16進数</th><th>10進数</th><th>備考</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td><td>ゼロ</td></tr><tr><td>7</td><td>7</td><td>7</td><td>1桁の最大値（8進数も16進数も同じ）</td></tr><tr><td>10</td><td>8</td><td>8</td><td>2桁目に繰り上がり</td></tr><tr><td>17</td><td>F</td><td>15</td><td>16進数の1桁最大</td></tr><tr><td>20</td><td>10</td><td>16</td><td>16進数の2桁目に繰り上がり</td></tr><tr><td>77</td><td>3F</td><td>63</td><td>8進数の2桁最大</td></tr><tr><td>100</td><td>40</td><td>64</td><td>8²</td></tr><tr><td>755</td><td>1ED</td><td>493</td><td>Linuxパーミッション例</td></tr><tr><td>777</td><td>1FF</td><td>511</td><td>8進数の3桁最大（全権限）</td></tr><tr><td>3777777777</td><td>1FFFFFFF</td><td>536,870,911</td><td>正の最大値</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">8進数3桁が16進数では2〜3桁になります。OCT2HEXの戻り値は最小桁数なので、左ゼロ埋めしたい場合は第2引数を活用しましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc11">直接入力で変換する</span></h3>



<p class="wp-block-paragraph">もっともシンプルな使い方から見ていきましょう。</p>



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



<p class="wp-block-paragraph">結果は「7」です。8進数の「7」は16進数でも7なので、そのままの値が返ります。</p>



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



<p class="wp-block-paragraph">結果は「8」です。8進数の「10」は10進数で8、それが16進数でも8に当たります。</p>



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



<p class="wp-block-paragraph">結果は「1ED」です。8進数の「755」は10進数で493、それを16進数にすると1×256+14×16+13で1EDになります。</p>



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



<p class="wp-block-paragraph">実務では、セルに入っている8進数を変換する場面が多いです。A2に「644」が入っている場合は次のように書きます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



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



<p class="wp-block-paragraph">結果は「1A4」です。6×64+4×8+4=420、これを16進数にすると1A4ですね。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-oct2hex-function/02_formula_oct2hex-basic.png/">_images/spreadsheet-oct2hex-function/02_formula_oct2hex-basic.png</a></p>



<figure class="wp-block-table"><table><thead><tr><th>A列: 8進数</th><th>B列: 数式</th><th>結果（16進数）</th></tr></thead><tbody><tr><td>7</td><td>=OCT2HEX(A2)</td><td>7</td></tr><tr><td>10</td><td>=OCT2HEX(A3)</td><td>8</td></tr><tr><td>17</td><td>=OCT2HEX(A4)</td><td>F</td></tr><tr><td>100</td><td>=OCT2HEX(A5)</td><td>40</td></tr><tr><td>755</td><td>=OCT2HEX(A6)</td><td>1ED</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-oct2hex-function/03_result_oct2hex-basic.png/">_images/spreadsheet-oct2hex-function/03_result_oct2hex-basic.png</a></p>



<h2 class="wp-block-heading"><span id="toc13">桁数引数でゼロ埋めする</span></h2>



<p class="wp-block-paragraph">第2引数を指定すると、結果の桁数を強制的に揃えられます。台帳やドキュメント上で見た目を統一したいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">4桁にゼロ埋めする</span></h3>



<pre class="wp-block-code"><code>=OCT2HEX(&quot;17&quot;, 4)</code></pre>



<p class="wp-block-paragraph">結果は「000F」です。本来は1桁の「F」ですが、左に「0」を3つ埋めて4桁に揃えています。</p>



<pre class="wp-block-code"><code>=OCT2HEX(&quot;755&quot;, 4)</code></pre>



<p class="wp-block-paragraph">結果は「01ED」です。3桁の「1ED」の左に「0」を1つ追加して4桁に整えています。</p>



<h3 class="wp-block-heading"><span id="toc15">桁数比較表</span></h3>



<p class="wp-block-paragraph">同じ8進数に対して、桁数指定を変えた結果を比較してみます。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>=OCT2HEX(&#8220;7&#8221;)</td><td>7</td></tr><tr><td>=OCT2HEX(&#8220;7&#8221;, 2)</td><td>07</td></tr><tr><td>=OCT2HEX(&#8220;7&#8221;, 4)</td><td>0007</td></tr><tr><td>=OCT2HEX(&#8220;755&#8221;)</td><td>1ED</td></tr><tr><td>=OCT2HEX(&#8220;755&#8221;, 4)</td><td>01ED</td></tr><tr><td>=OCT2HEX(&#8220;755&#8221;, 8)</td><td>000001ED</td></tr></tbody></table></figure>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_oct2hex-digits.png" alt="04 result oct2hex digits" /></figure>



<p class="wp-block-paragraph">メモリアドレス表記（4桁・8桁）に揃えたい場合に使い分けると便利ですね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>桁数を結果より小さく指定すると #NUM! エラーになります。<code>=OCT2HEX("777", 1)</code> は16進数で「1FF」（3桁）になるため、桁数1を指定するとエラーです。安全に揃えたい場合は、想定される最大桁数より大きめの値を指定しておきましょう。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">ARRAYFORMULAで一括変換する</span></h2>



<p class="wp-block-paragraph">スプレッドシートならではの強みが、ARRAYFORMULA関数との組み合わせです。複数のセルをまとめて変換できますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">基本の一括変換</span></h3>



<pre class="wp-block-code"><code>=ARRAYFORMULA(OCT2HEX(A2:A10))</code></pre>



<p class="wp-block-paragraph">A2からA10までの8進数データを、1つの数式で一気に16進数に変換できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: 8進数</th><th>B列: 結果</th></tr></thead><tbody><tr><td>7</td><td>7</td></tr><tr><td>10</td><td>8</td></tr><tr><td>100</td><td>40</td></tr><tr><td>755</td><td>1ED</td></tr><tr><td>777</td><td>1FF</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式はB2セルに1つだけ書けば、B10まで自動的に展開されますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">桁数を揃えて一括変換</span></h3>



<p class="wp-block-paragraph">桁数引数も配列の中で使えます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(OCT2HEX(A2:A10, 4))</code></pre>



<p class="wp-block-paragraph">A2:A10 のすべての8進数を、左ゼロ埋めで4桁に揃えて変換します。台帳の見た目を一気に整えたい場面で重宝しますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: 8進数</th><th>B列: 4桁ゼロ埋め結果</th></tr></thead><tbody><tr><td>7</td><td>0007</td></tr><tr><td>10</td><td>0008</td></tr><tr><td>100</td><td>0040</td></tr><tr><td>755</td><td>01ED</td></tr><tr><td>777</td><td>01FF</td></tr></tbody></table></figure>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_result_oct2hex-arrayformula.png" alt="05 result oct2hex arrayformula" /></figure>



<h2 class="wp-block-heading"><span id="toc19">戻り値はテキスト型（計算前にHEX2DECが必要）</span></h2>



<p class="wp-block-paragraph">OCT2HEX関数の注意点が、戻り値が<strong>テキスト（文字列）型</strong>である点です。同じシリーズの<a href="https://mashukabu.com/spreadsheet-oct2dec-function/">OCT2DEC関数</a>が数値型を返すのとは対照的ですよ。</p>



<p class="wp-block-paragraph">16進数には「A〜F」のアルファベットが含まれるため、そもそも数値として扱えません。そのため計算や集計に使うには、いったん<a href="https://mashukabu.com/spreadsheet-hex2dec-function/">HEX2DEC関数</a>で10進数に戻す必要があります。</p>



<h3 class="wp-block-heading"><span id="toc20">SUMで合計したい場合</span></h3>



<pre class="wp-block-code"><code>=SUM(ARRAYFORMULA(HEX2DEC(OCT2HEX(A2:A10))))</code></pre>



<p class="wp-block-paragraph">OCT2HEX → HEX2DEC とつなぐことで、テキストで返ってきた16進数を10進数の数値に戻して合計しています。</p>



<p class="wp-block-paragraph">ただし、最初から計算が目的なら<a href="https://mashukabu.com/spreadsheet-oct2dec-function/">OCT2DEC関数</a>を使うほうがシンプルですよ。</p>



<pre class="wp-block-code"><code>=SUM(ARRAYFORMULA(OCT2DEC(A2:A10)))</code></pre>



<p class="wp-block-paragraph">こちらは1関数で済みます。OCT2HEXは「16進数の見た目で記録したい」「ドキュメントの表記に合わせたい」場面で選ぶ関数だと覚えておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc21">VLOOKUPの検索値として使う場合</span></h3>



<p class="wp-block-paragraph">16進数のIDで管理されているマスタを検索する場面では、テキスト型のままVLOOKUPに渡せます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(OCT2HEX(A2, 4), アドレスマスタ!A:B, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">A2の8進数を4桁ゼロ埋めの16進数に変換し、マスタ表を検索しています。マスタ側の16進数表記と桁数を揃えるのがポイントですよ。</p>



<h2 class="wp-block-heading"><span id="toc22">負の数の変換（30ビット2の補数）</span></h2>



<p class="wp-block-paragraph">OCT2HEX関数で負の数に相当する8進数を変換すると、30ビットの2の補数表現で16進数が返されます。</p>



<h3 class="wp-block-heading"><span id="toc23">負の数の仕組み</span></h3>



<p class="wp-block-paragraph">8進数の最上位1桁が4以上（4・5・6・7）の場合、最上位ビットが1となり負の数として解釈されます。結果は10桁の16進数で返り、最上位は「F」「E」などになりますよ。</p>



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



<p class="wp-block-paragraph">結果は「FFFFFFFF」（10桁）です。30ビットすべてが1で、10進数では -1 を表します。</p>



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



<p class="wp-block-paragraph">結果は「E0000000」（10桁）です。OCT2HEXで扱える最小値（-536,870,912）に当たります。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力（8進数）</th><th>結果（16進数）</th><th>10進数換算</th></tr></thead><tbody><tr><td>7777777777</td><td>FFFFFFFF</td><td>-1</td></tr><tr><td>7777777533</td><td>FFFFFF5B</td><td>-165</td></tr><tr><td>4000000000</td><td>E0000000</td><td>-536,870,912</td></tr><tr><td>3777777777</td><td>1FFFFFFF</td><td>536,870,911（正の最大）</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>負の数の変換では、桁数引数を指定しても無視されます。常に10桁の16進数（左がF・Eなど）で返ることを覚えておきましょう。通常のパーミッション解析では正の数しか扱わないため、この挙動を意識する場面は限定的ですよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc24">エラーの種類と対処法</span></h2>



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



<p class="wp-block-paragraph">次のいずれかに当てはまると #NUM! エラーになります。</p>



<ul class="wp-block-list"><li>0〜7以外の文字を含む8進数を指定した（8、9、A〜Fなど）</li><li>入力が10文字を超えた</li><li>結果が桁数引数より長い</li><li>桁数引数が0以下、または10より大きい</li></ul>



<pre class="wp-block-code"><code>=OCT2HEX(&quot;89&quot;)        → #NUM!（8と9は8進数では無効）
=OCT2HEX(&quot;12345678901&quot;) → #NUM!（11文字は範囲外）
=OCT2HEX(&quot;777&quot;, 1)    → #NUM!（結果1FFは3桁、桁数1では収まらない）</code></pre>



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



<p class="wp-block-paragraph">引数に数値や論理値など、文字列でない型を直接指定した場合に #VALUE! エラーになる場合があります。セル参照では基本的に発生しません。</p>



<h3 class="wp-block-heading"><span id="toc27">エラー対処：IFERRORで包む</span></h3>



<p class="wp-block-paragraph">変換対象のデータが信頼できない場合は、IFERRORで包んでおくと安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(OCT2HEX(A2, 4), &quot;変換エラー&quot;)</code></pre>



<p class="wp-block-paragraph">A2に無効な8進数が入っていた場合でも、「変換エラー」と表示して処理が止まりません。</p>



<h3 class="wp-block-heading"><span id="toc28">エラー防止：正規表現で事前チェック</span></h3>



<p class="wp-block-paragraph">大量データを処理する前に、8進数として有効かどうかを確認しておくと安心です。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;^[0-7]+$&quot;)</code></pre>



<p class="wp-block-paragraph">TRUEならOCT2HEXで変換できる可能性が高いです。8や9を含む入力を事前にはじけますよ。</p>



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



<p class="wp-block-paragraph">OCT2HEX関数は、ドキュメントや既存システムの表記が「16進数」で統一されている現場で特に重宝します。代表的なユースケースを3つ紹介しますね。</p>



<h3 class="wp-block-heading"><span id="toc30">Linuxパーミッションを16進記録する</span></h3>



<p class="wp-block-paragraph">サーバーの権限管理台帳をスプレッドシートで運用していると、<code>chmod 755</code> や <code>chmod 644</code> といった<strong>8進数表記</strong>のままドキュメントに残すか、組み込み系の設定レジスタに合わせて<strong>16進数表記</strong>で残すかで悩む場面があります。</p>



<p class="wp-block-paragraph">OCT2HEXを使えば、入力は使い慣れた8進数のまま、保存・表示は16進数という運用に切り替えられますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>サーバー名</th><th>パーミッション（8進）</th><th>数式</th><th>記録値（16進）</th></tr></thead><tbody><tr><td>web-01</td><td>755</td><td>=OCT2HEX(B2, 3)</td><td>1ED</td></tr><tr><td>web-02</td><td>644</td><td>=OCT2HEX(B3, 3)</td><td>1A4</td></tr><tr><td>api-01</td><td>600</td><td>=OCT2HEX(B4, 3)</td><td>180</td></tr><tr><td>db-01</td><td>750</td><td>=OCT2HEX(B5, 3)</td><td>1E8</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">桁数引数に「3」を指定して、すべて3桁に揃えています。組み込み機器の設定ドキュメントとセル比較するときも、見た目が同じ桁数で並んで見やすいですよ。</p>



<h3 class="wp-block-heading"><span id="toc31">メモリアドレス・レジスタ値の整形</span></h3>



<p class="wp-block-paragraph">組み込み開発や低レイヤの設定では、メモリアドレスを<strong>4桁・8桁の16進数</strong>で表記する慣習があります。元データが8進数で渡された場合、OCT2HEXの第2引数で桁数を固定すれば、そのままドキュメント形式に揃えられますよ。</p>



<pre class="wp-block-code"><code>=OCT2HEX(&quot;177&quot;, 4)</code></pre>



<p class="wp-block-paragraph">結果は「007F」です。8進数の「177」（10進数で127）を、4桁ゼロ埋めの16進数で表示しています。</p>



<pre class="wp-block-code"><code>=OCT2HEX(&quot;3777&quot;, 8)</code></pre>



<p class="wp-block-paragraph">結果は「000007FF」です。32ビットアドレスを意識した8桁表記に整形されています。</p>



<p class="wp-block-paragraph">レビュー用の設定一覧表で「ADDR_0007F」のように検索しやすい形にしておくと、コードコメントとも対応がとりやすくなりますね。</p>



<h3 class="wp-block-heading"><span id="toc32">既存16進マスタとの突合検索</span></h3>



<p class="wp-block-paragraph">16進数のIDで管理されているマスタ表（デバイスID・センサーIDなど）に対して、フィールドから集めた8進数ログを突き合わせる場面でも活躍します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(OCT2HEX(A2, 4), デバイスマスタ!A:C, 3, FALSE)</code></pre>



<p class="wp-block-paragraph">A2に入っている8進数のセンサーIDを4桁ゼロ埋めの16進数に変換し、デバイスマスタの3列目（機器名など）を引いてきています。マスタ側の表記桁数と一致させるのがポイントですよ。</p>



<p class="wp-block-paragraph">10進数のIDを16進数のマスタにぶつけたい場合は、代わりに<a href="https://mashukabu.com/spreadsheet-dec2hex-function/">DEC2HEX関数</a>を使うとシンプルです。元データの基数に応じて関数を使い分けましょう。</p>



<h2 class="wp-block-heading"><span id="toc33">OCT2HEX関数とExcelの互換性</span></h2>



<p class="wp-block-paragraph">GoogleスプレッドシートのOCT2HEX関数は、ExcelのOCT2HEX関数と仕様が同じです。構文・引数・変換ルール・エラー条件のすべてが一致しています。</p>



<p class="wp-block-paragraph">ExcelファイルをGoogleスプレッドシートで開いた場合でも、OCT2HEX関数はそのまま動作します。逆にスプレッドシートで作成した数式をExcelで開いても問題ありませんよ。</p>



<p class="wp-block-paragraph">Excel側の使い方を確認したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-oct2hex/">ExcelのOCT2HEX関数</a>の記事も参考にしてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc34">OCT2シリーズ3関数の比較</span></h2>



<p class="wp-block-paragraph">OCTシリーズの変換関数（OCT2から始まる）を比較すると、変換先と戻り値の型が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>変換先</th><th>有効範囲（10進数換算）</th><th>桁数引数</th><th>戻り値型</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-oct2bin-function/">OCT2BIN</a></td><td>2進数</td><td>-512〜511</td><td>あり</td><td>テキスト</td></tr><tr><td>OCT2HEX</td><td>16進数</td><td>-536,870,912〜536,870,911</td><td>あり</td><td>テキスト</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-oct2dec-function/">OCT2DEC</a></td><td>10進数</td><td>-536,870,912〜536,870,911</td><td><strong>なし</strong></td><td><strong>数値</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">OCT2HEXとOCT2BINは桁数引数で見た目を揃えられる代わりに、戻り値はテキスト型です。OCT2DECだけが桁数引数を持たず、戻り値は数値型で計算にそのまま使えますよ。</p>



<p class="wp-block-paragraph">「ドキュメントに合わせて整形したい」ならOCT2HEX、「集計や検索に使いたい」ならOCT2DECと、目的で使い分けましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc36">Q1. OCT2HEXの結果を計算に使えないのはなぜですか？</span></h3>



<p class="wp-block-paragraph">OCT2HEX関数の戻り値が<strong>テキスト型（文字列）</strong>だからです。16進数には「A〜F」のアルファベットが混ざるため、そもそも数値として直接扱えません。</p>



<p class="wp-block-paragraph">合計や平均などの計算をしたい場合は、<a href="https://mashukabu.com/spreadsheet-hex2dec-function/">HEX2DEC関数</a>で10進数に戻してから演算します。たとえば <code>=SUM(ARRAYFORMULA(HEX2DEC(OCT2HEX(A2:A10))))</code> のようにつなぐと、テキストの16進数を数値化してから合計できますよ。</p>



<p class="wp-block-paragraph">最初から集計目的なら、戻り値が数値型の<a href="https://mashukabu.com/spreadsheet-oct2dec-function/">OCT2DEC関数</a>を使うほうがシンプルです。OCT2HEXは「16進数の見た目でドキュメントに残したい」場面で選ぶ関数だと覚えておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc37">Q2. 8進数の「77」を直接書いたら #NUM! や予期しない値が返るのはなぜですか？</span></h3>



<p class="wp-block-paragraph">数値として書いた「77」は10進数の77として解釈されるからです。OCT2HEXに渡したい場合は、<strong>ダブルクォートで文字列</strong>として <code>=OCT2HEX("77")</code> のように指定するのが正解ですよ。</p>



<p class="wp-block-paragraph">特に <code>=OCT2HEX(077)</code> のように先頭ゼロを付けて入力すると、スプレッドシートが先頭ゼロを落として「77」（10進数解釈）として扱う場合があります。文字列指定にしておけば、桁構成が崩れず安定して動きますよ。</p>



<p class="wp-block-paragraph">セル参照（<code>=OCT2HEX(A2)</code>）でも、A2セルが文字列形式で「077」と入っていれば問題なく動作します。データ取り込み時に書式設定を「書式なしテキスト」にしておくと安心ですね。</p>



<h3 class="wp-block-heading"><span id="toc38">Q3. OCT2HEXとDEC2HEX、どちらを使うべきですか？</span></h3>



<p class="wp-block-paragraph">入力データの基数で選びます。<strong>8進数を持っているならOCT2HEX、10進数を持っているなら<a href="https://mashukabu.com/spreadsheet-dec2hex-function/">DEC2HEX関数</a></strong>を使いましょう。</p>



<p class="wp-block-paragraph">両者は構文も対応範囲も似ていますが、10進数で「755」と入力した値をOCT2HEXに渡すと<strong>8進数の755（10進数で493）</strong>として解釈されてしまいます。意図せず大きく異なる結果になるため、元データが何進数なのかを必ず確認してから関数を選んでくださいね。</p>



<p class="wp-block-paragraph">迷ったときは、まず元データを10進数に正規化してから<a href="https://mashukabu.com/spreadsheet-dec2hex-function/">DEC2HEX関数</a>で揃える方法がトラブルを避けやすいですよ。</p>



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



<p class="wp-block-paragraph">OCT2HEX関数は、8進数を16進数のテキストに変換するエンジニアリング関数です。</p>



<ul class="wp-block-list"><li>基本構文: <code>=OCT2HEX(数値, [桁数])</code></li><li>有効範囲: -536,870,912〜536,870,911（正: 0〜3777777777）</li><li>桁数引数で左ゼロ埋め可能（負の数では無視）</li><li>戻り値はテキスト型 → 計算するには<a href="https://mashukabu.com/spreadsheet-hex2dec-function/">HEX2DEC関数</a>で数値化が必要</li><li>Linuxパーミッションの16進記録・メモリアドレス整形・16進マスタとのVLOOKUP検索などの実務で活躍</li></ul>



<p class="wp-block-paragraph"><code>=OCT2HEX("755", 4)</code> → 01ED のように、桁数を揃えてドキュメントの表記にぴったり合わせられるのがOCT2HEXの強みですよ。</p>



<p class="wp-block-paragraph">逆変換には<a href="https://mashukabu.com/spreadsheet-hex2oct-function/">HEX2OCT関数</a>を使います。また姉妹関数の<a href="https://mashukabu.com/spreadsheet-oct2bin-function/">OCT2BIN関数</a>（8進→2進）や<a href="https://mashukabu.com/spreadsheet-oct2dec-function/">OCT2DEC関数</a>（8進→10進）、さらに10進数側の<a href="https://mashukabu.com/spreadsheet-dec2hex-function/">DEC2HEX関数</a>・16進数の数値化に使う<a href="https://mashukabu.com/spreadsheet-hex2dec-function/">HEX2DEC関数</a>と組み合わせることで、さまざまな基数変換をスプレッドシート上で完結できますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-oct2hex-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのOCT2HEX関数｜8進数を16進数に変換する方法とエラー対策</title>
		<link>https://mashukabu.com/excel-function-howto-use-oct2hex/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-oct2hex/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 10 Aug 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[16進数]]></category>
		<category><![CDATA[8進数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[OCT2HEX]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[進数変換]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2526</guid>

					<description><![CDATA[ExcelのOCT2HEX関数で8進数を16進数に変換する方法を解説。構文・桁数指定による0埋め・負の数（2の補数）の扱い・#NUM!エラーの原因と対処法・HEX2OCT関数での逆変換まで網羅します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「8進数のデータを16進数に変換したいけど、手計算は大変&#8230;」</p>



<p class="wp-block-paragraph">Excelで8進数から16進数への変換が必要になる場面は意外とあります。手計算だと一度10進数を経由する必要があり、ミスしやすいですよね。</p>



<p class="wp-block-paragraph">そんなときに便利なのが<strong>OCT2HEX関数</strong>です。8進数を入力するだけで、16進数に一発変換してくれます。桁数を揃える機能もあるので、データの見た目を統一したいときにも役立ちます。</p>



<p class="wp-block-paragraph">この記事では、OCT2HEX関数の使い方からエラー対策、逆変換や関連関数との使い分けまで解説します。</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のOCT2HEX関数とは？読み方と概要</a><ol><li><a href="#toc2" tabindex="0">読み方と「OCT→HEX」の意味</a></li><li><a href="#toc3" tabindex="0">どんな場面で使う？</a></li></ol></li><li><a href="#toc4" tabindex="0">OCT2HEX関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">第1引数：数値</a></li><li><a href="#toc6" tabindex="0">第2引数：桁数（省略可）</a></li><li><a href="#toc7" tabindex="0">入力できる値の範囲</a></li></ol></li><li><a href="#toc8" tabindex="0">OCT2HEX関数の使い方（基本例）</a><ol><li><a href="#toc9" tabindex="0">基本的な変換例</a></li><li><a href="#toc10" tabindex="0">桁数を指定して0埋めする方法</a></li><li><a href="#toc11" tabindex="0">負の数（補数表現）を変換する場合</a></li></ol></li><li><a href="#toc12" tabindex="0">OCT2HEX関数のエラーと対処法</a><ol><li><a href="#toc13" tabindex="0">#NUM!エラー</a></li><li><a href="#toc14" tabindex="0">#VALUE!エラー</a></li><li><a href="#toc15" tabindex="0">IFERROR関数でエラーを処理する方法</a></li></ol></li><li><a href="#toc16" tabindex="0">HEX2OCT関数との逆変換の使い分け</a></li><li><a href="#toc17" tabindex="0">関連する進数変換関数との使い分け</a><ol><li><a href="#toc18" tabindex="0">OCT2BIN・OCT2DECとの比較</a></li><li><a href="#toc19" tabindex="0">16進数・10進数からの変換関数</a></li><li><a href="#toc20" tabindex="0">Excelの進数変換関数一覧（全12関数）</a></li></ol></li><li><a href="#toc21" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのOCT2HEX関数とは？読み方と概要</span></h2>



<p class="wp-block-paragraph">OCT2HEX関数は、<strong>8進数を16進数に変換するExcelの関数</strong>です。</p>



<p class="wp-block-paragraph">8進数は0から7までの数字で数を表す方法です。16進数は0から9とAからFの16種類の文字で数を表します。</p>



<p class="wp-block-paragraph">OCT2HEX関数を使えば、この変換を自動で行えます。</p>



<h3 class="wp-block-heading"><span id="toc2">読み方と「OCT→HEX」の意味</span></h3>



<p class="wp-block-paragraph">読み方は「オクタル・ツー・ヘキサデシマル」です。</p>



<ul class="wp-block-list"><li><strong>OCT</strong> = Octal（オクタル、8進数）</li><li><strong>2</strong> = to（〜へ）</li><li><strong>HEX</strong> = Hexadecimal（ヘキサデシマル、16進数）</li></ul>



<p class="wp-block-paragraph">つまり「8進数から16進数へ」という意味です。関数名がそのまま機能を表しています。</p>



<h3 class="wp-block-heading"><span id="toc3">どんな場面で使う？</span></h3>



<p class="wp-block-paragraph">OCT2HEX関数は、次のような場面で使います。</p>



<ul class="wp-block-list"><li>Unixファイルパーミッション（755など）を16進数形式で記録する</li><li>IoTセンサーや通信機器の8進数データを16進数に変換する</li><li>メモリアドレスやカラーコードの形式に合わせて変換する</li><li>進数変換の学習や検算に使う</li></ul>



<p class="wp-block-paragraph">特にメモリアドレスの表記変換は実務でよくある用途です。</p>



<p class="wp-block-paragraph">対応バージョンは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応状況</th></tr></thead><tbody><tr><td>Excel 2007以降</td><td>標準搭載（そのまま使える）</td></tr><tr><td>Excel 2003以前</td><td>分析ツールアドインの有効化が必要</td></tr><tr><td>Microsoft 365</td><td>対応（Windows / Mac / Web）</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>現在使われているほとんどのExcelで、追加設定なしで利用できます。</p></blockquote>



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



<p class="wp-block-paragraph">基本構文は次のとおりです。</p>



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



<p class="wp-block-paragraph">引数は「数値」と「桁数」の2つです。桁数は省略できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>数値</td><td>必須</td><td>16進数に変換したい8進数を指定する</td></tr><tr><td>桁数</td><td>任意</td><td>結果の文字数を指定する。省略すると最小桁数で表示</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">第1引数：数値</span></h3>



<p class="wp-block-paragraph">数値には、8進数として有効な値を指定します。指定ルールは次のとおりです。</p>



<ul class="wp-block-list"><li>使える文字は「0」から「7」のみ</li><li>最大10桁（10文字）まで指定できる</li><li>直接入力でもセル参照でも指定できる</li></ul>



<p class="wp-block-paragraph">0から7以外の文字を含めるとエラーになります。「8」「9」「A」などは8進数では使えません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>最上位ビット（10桁目）は符号ビットです。最上位桁が4以上の場合は負の数として扱われます。これは2の補数（コンピュータで負の数を表す仕組み）による表現です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc6">第2引数：桁数（省略可）</span></h3>



<p class="wp-block-paragraph">桁数を指定すると、結果の文字数を揃えられます。不足分は先頭に「0」が追加されます。</p>



<pre class="wp-block-code"><code>=OCT2HEX(100, 4)</code></pre>



<p class="wp-block-paragraph">結果は「0040」です。省略した場合は「40」とだけ表示されます。</p>



<p class="wp-block-paragraph">桁数の指定ルールは次のとおりです。</p>



<ul class="wp-block-list"><li>正の整数で指定する</li><li>小数を指定した場合は小数点以下が切り捨てられる</li><li>結果の桁数より小さい値を指定すると#NUM!エラー</li><li><strong>負の数を変換した場合は桁数に関係なく10桁で返される</strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>桁数指定は表を作るときに便利です。「桁数: 4」を指定すれば、「7」も「0007」と表示できますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">入力できる値の範囲</span></h3>



<p class="wp-block-paragraph">OCT2HEX関数が扱える値の範囲は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>区分</th><th>8進数の範囲</th><th>16進数での値</th><th>10進数での値</th></tr></thead><tbody><tr><td>正の数</td><td>0 〜 3777777777</td><td>0 〜 1FFFFFFF</td><td>0 〜 536,870,911</td></tr><tr><td>負の数</td><td>4000000000 〜 7777777777</td><td>FFE0000000 〜 FFFFFFFFFF</td><td>-536,870,912 〜 -1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">正の数は最上位桁が0〜3、負の数は最上位桁が4〜7です。この範囲外の値を指定すると#NUM!エラーになります。</p>



<h2 class="wp-block-heading"><span id="toc8">OCT2HEX関数の使い方（基本例）</span></h2>



<h3 class="wp-block-heading"><span id="toc9">基本的な変換例</span></h3>



<p class="wp-block-paragraph">まずはシンプルな例からです。セルに直接入力してみましょう。</p>



<pre class="wp-block-code"><code>=OCT2HEX(53)</code></pre>



<p class="wp-block-paragraph">結果は「2B」です。8進数の53は、16進数の2Bに対応します。</p>



<p class="wp-block-paragraph">変換の仕組みを確認しておきましょう。まず8進数を10進数に変換し、それを16進数にします。</p>



<figure class="wp-block-table"><table><thead><tr><th>ステップ</th><th>計算</th><th>結果</th></tr></thead><tbody><tr><td>8進数 → 10進数</td><td>5×8 + 3 = 43</td><td>43</td></tr><tr><td>10進数 → 16進数</td><td>43 = 2×16 + 11(B)</td><td>2B</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この変換を途中の10進数を挟まずにワンステップで処理してくれるのがOCT2HEX関数の便利なところです。</p>



<p class="wp-block-paragraph">セル参照も使えます。A1に「100」（8進数）が入っているとします。</p>



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



<p class="wp-block-paragraph">結果は「40」です。8進数の100は10進数で64、16進数では40です。</p>



<p class="wp-block-paragraph">なお、8進数から一度10進数に変換したい場合は<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>を使います。</p>



<p class="wp-block-paragraph">よく使う変換例をまとめておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力（8進数）</th><th>出力（16進数）</th><th>10進数での値</th></tr></thead><tbody><tr><td>1</td><td>1</td><td>1</td></tr><tr><td>7</td><td>7</td><td>7</td></tr><tr><td>10</td><td>8</td><td>8</td></tr><tr><td>17</td><td>F</td><td>15</td></tr><tr><td>20</td><td>10</td><td>16</td></tr><tr><td>100</td><td>40</td><td>64</td></tr><tr><td>144</td><td>64</td><td>100</td></tr><tr><td>777</td><td>1FF</td><td>511</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc10">桁数を指定して0埋めする方法</span></h3>



<p class="wp-block-paragraph">桁数を指定すると、結果の表示を揃えられます。</p>



<pre class="wp-block-code"><code>=OCT2HEX(7, 4)</code></pre>



<p class="wp-block-paragraph">結果は「0007」です。4桁になるように先頭に「0」が追加されます。</p>



<p class="wp-block-paragraph">桁数指定はデータの一覧表を作るときに便利です。桁数がバラバラだと見づらいですよね。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>説明</th></tr></thead><tbody><tr><td>=OCT2HEX(1, 4)</td><td>0001</td><td>4桁に揃える</td></tr><tr><td>=OCT2HEX(100, 4)</td><td>0040</td><td>4桁に揃える</td></tr><tr><td>=OCT2HEX(777, 8)</td><td>000001FF</td><td>8桁に揃える</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>桁数を揃えておくと、VLOOKUP関数やFILTER関数での照合もしやすくなります。データ管理の観点でも桁数指定はおすすめです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">負の数（補数表現）を変換する場合</span></h3>



<p class="wp-block-paragraph">OCT2HEX関数は「2の補数」表現にも対応しています。</p>



<p class="wp-block-paragraph">2の補数とは、コンピュータで負の数を表す仕組みです。8進数の最上位桁が4以上の場合、負の数として扱われます。</p>



<pre class="wp-block-code"><code>=OCT2HEX(7777777777)</code></pre>



<p class="wp-block-paragraph">結果は「FFFFFFFFFF」です。8進数の7777777777は、10進数では-1に対応します。出力は10桁の16進数です。</p>



<pre class="wp-block-code"><code>=OCT2HEX(7777777533)</code></pre>



<p class="wp-block-paragraph">結果は「FFFFFFFF5B」です。これは10進数で-165に対応します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>負の数を入力するときは8進数の2の補数形式で指定します。「-」記号を付けるとエラーになりますのでご注意ください。</p></blockquote>



<p class="wp-block-paragraph">負の数の代表的な変換例です。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力（8進数）</th><th>出力（16進数）</th><th>10進数での値</th></tr></thead><tbody><tr><td>7777777777</td><td>FFFFFFFFFF</td><td>-1</td></tr><tr><td>7777777776</td><td>FFFFFFFFFE</td><td>-2</td></tr><tr><td>7777777760</td><td>FFFFFFFFF0</td><td>-16</td></tr><tr><td>4000000000</td><td>FFE0000000</td><td>-536,870,912</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">負の数の場合は桁数を指定しても常に10桁で返されます。桁数引数は無視されるので注意してください。</p>



<h2 class="wp-block-heading"><span id="toc12">OCT2HEX関数のエラーと対処法</span></h2>



<p class="wp-block-paragraph">OCT2HEX関数で発生するエラーと対処法を表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>数式の例</th><th>対処法</th></tr></thead><tbody><tr><td>#NUM!</td><td>0〜7以外の文字を含む</td><td>=OCT2HEX(89)</td><td>0〜7の数字だけで構成する</td></tr><tr><td>#NUM!</td><td>11桁以上（10文字超）の数値を指定した</td><td>=OCT2HEX(77777777777)</td><td>数値は10桁以内にする</td></tr><tr><td>#NUM!</td><td>桁数に負の数を指定した</td><td>=OCT2HEX(100, -1)</td><td>桁数は正の整数で指定する</td></tr><tr><td>#NUM!</td><td>結果が指定桁数を超える</td><td>=OCT2HEX(777, 1)</td><td>桁数を大きくするか省略する</td></tr><tr><td>#VALUE!</td><td>桁数に数値以外を指定した</td><td>=OCT2HEX(100, &#8220;A&#8221;)</td><td>桁数には数値を指定する</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">#NUM!エラーは4つのパターンで発生します。</p>



<p class="wp-block-paragraph"><strong>パターン1: 8進数以外の値を入力した</strong></p>



<pre class="wp-block-code"><code>=OCT2HEX(89)</code></pre>



<p class="wp-block-paragraph">「8」「9」は8進数では使えない文字です。この数式は#NUM!エラーになります。入力値が0〜7の数字だけか確認しましょう。</p>



<p class="wp-block-paragraph"><strong>パターン2: 数値が10桁を超えている</strong></p>



<pre class="wp-block-code"><code>=OCT2HEX(77777777777)</code></pre>



<p class="wp-block-paragraph">OCT2HEX関数が処理できる数値は最大10桁（10文字）です。11桁以上の8進数を入力すると#NUM!エラーになります。入力値が10桁以内か確認しましょう。</p>



<p class="wp-block-paragraph"><strong>パターン3: 桁数に負の数を指定した</strong></p>



<pre class="wp-block-code"><code>=OCT2HEX(100, -1)</code></pre>



<p class="wp-block-paragraph">桁数は正の整数で指定する必要があります。負の数を指定すると#NUM!エラーです。</p>



<p class="wp-block-paragraph"><strong>パターン4: 結果が指定した桁数に収まらない</strong></p>



<pre class="wp-block-code"><code>=OCT2HEX(777, 1)</code></pre>



<p class="wp-block-paragraph">8進数の777は16進数で「1FF」（3桁）です。桁数を1に指定すると収まりません。桁数を3以上にするか、省略すれば解消します。</p>



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



<p class="wp-block-paragraph">#VALUE!エラーは、桁数引数に数値として解釈できない値を指定した場合に発生します。</p>



<pre class="wp-block-code"><code>=OCT2HEX(100, &quot;ABC&quot;)</code></pre>



<p class="wp-block-paragraph">この数式は#VALUE!エラーになります。桁数には数値を指定してください。</p>



<h3 class="wp-block-heading"><span id="toc15">IFERROR関数でエラーを処理する方法</span></h3>



<p class="wp-block-paragraph">大量のデータを一括変換するときは、エラーが混ざると困りますよね。IFERROR関数（エラー時に代わりの値を返す関数）と組み合わせれば、エラー表示を回避できます。</p>



<pre class="wp-block-code"><code>=IFERROR(OCT2HEX(A1), &quot;変換エラー&quot;)</code></pre>



<p class="wp-block-paragraph">この数式なら、A1の値が不正でもエラー表示にはなりません。「変換エラー」という文字列が代わりに表示されます。</p>



<p class="wp-block-paragraph">空文字を返したい場合は次のように書きます。</p>



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



<p class="wp-block-paragraph">エラーのセルが空白になるので、見た目がすっきりします。</p>



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



<p class="wp-block-paragraph">OCT2HEX関数の逆方向の変換を行うのが<a href="https://mashukabu.com/excel-function-howto-use-hex2oct/">HEX2OCT関数</a>です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>変換方向</th><th>引数</th></tr></thead><tbody><tr><td><strong>OCT2HEX</strong></td><td>8進数 → 16進数</td><td>数値, [桁数]（2つ）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-hex2oct/">HEX2OCT</a></td><td>16進数 → 8進数</td><td>数値, [桁数]（2つ）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">両方を組み合わせると、変換の検算ができます。</p>



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



<p class="wp-block-paragraph">A1の8進数を16進数に変換し、再び8進数に戻します。元の値と一致すれば変換が正しいと確認できます。</p>



<p class="wp-block-paragraph">逆方向の検算もやってみましょう。</p>



<pre class="wp-block-code"><code>=OCT2HEX(HEX2OCT(B1))</code></pre>



<p class="wp-block-paragraph">B1の16進数を8進数に変換し、再び16進数に戻します。こちらも元の値と一致すればOKです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>大量の変換データがあるときは、隣の列に検算用の数式を入れておくと安心です。元の値と一致しない行があれば、入力ミスをすぐに見つけられますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc17">関連する進数変換関数との使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc18">OCT2BIN・OCT2DECとの比較</span></h3>



<p class="wp-block-paragraph">8進数を変換する関数は3つあります。変換先が異なるだけで、入力ルールは共通です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>変換先</th><th>桁数引数</th><th>出力例（入力: 53）</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-oct2bin/">OCT2BIN</a></td><td>2進数</td><td>あり</td><td>101011</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC</a></td><td>10進数</td><td><strong>なし</strong></td><td>43</td></tr><tr><td><strong>OCT2HEX</strong></td><td>16進数</td><td>あり</td><td>2B</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは<strong>OCT2DECだけ桁数引数がない</strong>点です。10進数には「0埋め」の概念がないためです。</p>



<p class="wp-block-paragraph">同じ8進数「53」を3つの関数で変換すると次のようになります。</p>



<pre class="wp-block-code"><code>=OCT2BIN(53)   → 101011
=OCT2DEC(53)   → 43
=OCT2HEX(53)   → 2B</code></pre>



<p class="wp-block-paragraph">3つの関数を並べれば、1つの8進数を複数の進数で一覧表示できます。</p>



<h3 class="wp-block-heading"><span id="toc19">16進数・10進数からの変換関数</span></h3>



<p class="wp-block-paragraph">16進数からの変換が必要な場合は、以下の関数を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>変換方向</th><th>用途</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-hex2dec/">HEX2DEC</a></td><td>16進数 → 10進数</td><td>16進数データを通常の数値に戻す</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-hex2bin/">HEX2BIN</a></td><td>16進数 → 2進数</td><td>16進数をビット列で確認する</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-hex2oct/">HEX2OCT</a></td><td>16進数 → 8進数</td><td>OCT2HEXの逆変換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">10進数からの変換が必要な場合は、以下の関数を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>変換方向</th><th>用途</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-dec2bin/">DEC2BIN</a></td><td>10進数 → 2進数</td><td>通常の数値を2進数で表示</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-dec2oct/">DEC2OCT</a></td><td>10進数 → 8進数</td><td>通常の数値を8進数で表示</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-dec2hex/">DEC2HEX</a></td><td>10進数 → 16進数</td><td>通常の数値を16進数で表示</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば、8進数データをまず10進数にしてから16進数に変換したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-dec2hex/">DEC2HEX関数</a>を組み合わせることもできます。ただし、OCT2HEX関数なら1つの数式で直接変換できるので、通常はOCT2HEXを使うほうが効率的です。</p>



<h3 class="wp-block-heading"><span id="toc20">Excelの進数変換関数一覧（全12関数）</span></h3>



<p class="wp-block-paragraph">Excelには進数変換関数が全部で12個あります。関数名の命名規則は「変換元の略称 + 2 + 変換先の略称」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>変換方向</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bin2dec/">BIN2DEC</a></td><td>2進数 → 10進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bin2oct/">BIN2OCT</a></td><td>2進数 → 8進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bin2hex/">BIN2HEX</a></td><td>2進数 → 16進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-oct2bin/">OCT2BIN</a></td><td>8進数 → 2進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC</a></td><td>8進数 → 10進数</td></tr><tr><td><strong>OCT2HEX</strong> ※この記事</td><td>8進数 → 16進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-dec2bin/">DEC2BIN</a></td><td>10進数 → 2進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-dec2oct/">DEC2OCT</a></td><td>10進数 → 8進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-dec2hex/">DEC2HEX</a></td><td>10進数 → 16進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-hex2bin/">HEX2BIN</a></td><td>16進数 → 2進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-hex2dec/">HEX2DEC</a></td><td>16進数 → 10進数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-hex2oct/">HEX2OCT</a></td><td>16進数 → 8進数</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">OCT2HEX関数は、8進数を16進数に変換する関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=OCT2HEX(数値, [桁数])</code> で、桁数は省略可能</li><li>入力は0〜7の数字で構成された8進数（最大10桁）</li><li>正の数は3777777777（10進数で536,870,911）まで変換できる</li><li>桁数を指定すると先頭に0を追加して表示を揃えられる</li><li>負の数は2の補数形式で指定し、結果は常に10桁</li><li>#NUM!エラーは「8進数以外の文字」「10桁超」「桁数に負の数」「桁数不足」が原因</li><li>#VALUE!エラーは桁数に数値以外を指定した場合に発生</li><li>逆変換には<a href="https://mashukabu.com/excel-function-howto-use-hex2oct/">HEX2OCT関数</a>を使う</li><li>Excel 2007以降で標準搭載。アドイン不要</li></ul>



<p class="wp-block-paragraph">まずは <code>=OCT2HEX(53)</code> で「2B」が返ることを試してみてください。</p>



<p class="wp-block-paragraph">進数変換の他の関数も使いたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>（8進数→10進数）や<a href="https://mashukabu.com/excel-function-howto-use-dec2hex/">DEC2HEX関数</a>（10進数→16進数）もあわせてチェックしてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-oct2hex/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
