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

					<description><![CDATA[GoogleスプレッドシートのDEC2OCT関数の使い方を解説。10進数を8進数に変換する基本から、桁数指定（ゼロ埋め）、Linuxパーミッション（chmod）管理への活用、負の数の扱い、エラー対処法まで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「Linuxのファイル権限（chmod）を10進数で管理しているけど、8進数表記に変換するのが面倒&#8230;」</p>



<p class="wp-block-paragraph">システム管理やサーバー設定の仕事をスプレッドシートで記録していると、10進数と8進数を行き来したい場面が出てきます。たとえば <code>chmod 755</code> の「755」は8進数表記で、これを10進数の権限値に変換するといった作業が必要になることがありますよね。</p>



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



<p class="wp-block-paragraph">Excelとも互換性があるため、他のメンバーとファイルをやり取りする現場でも安心して使えますね。</p>



<p class="wp-block-paragraph">この記事では、DEC2OCT関数の基本から桁数指定・Linuxパーミッション管理・エラー対処法まで解説します。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">DEC2OCT関数とは？</a><ol><li><a href="#toc2" tabindex="0">関数名の由来</a></li><li><a href="#toc3" tabindex="0">DEC2OCT関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">DEC2OCT関数の書き方（構文と引数）</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引数：変換する10進数</a></li><li><a href="#toc8" tabindex="0">第2引数：桁数（省略可）</a></li></ol></li><li><a href="#toc9" tabindex="0">10進数と8進数の対応表</a></li><li><a href="#toc10" tabindex="0">DEC2OCT関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">直接入力で変換する</a></li><li><a href="#toc12" tabindex="0">セル参照で変換する</a></li><li><a href="#toc13" tabindex="0">ARRAYFORMULAで一括変換する</a></li></ol></li><li><a href="#toc14" tabindex="0">桁数を指定して出力する（ゼロ埋め）</a><ol><li><a href="#toc15" tabindex="0">3桁固定フォーマット出力</a></li></ol></li><li><a href="#toc16" tabindex="0">実務活用例：Linuxファイルパーミッション管理</a><ol><li><a href="#toc17" tabindex="0">chmod値の一覧表を作る</a></li><li><a href="#toc18" tabindex="0">権限ビットから8進数への変換</a></li></ol></li><li><a href="#toc19" tabindex="0">負の数の変換（2の補数・30ビット）</a><ol><li><a href="#toc20" tabindex="0">負の数の変換例</a></li><li><a href="#toc21" tabindex="0">8進数の2の補数の読み方</a></li></ol></li><li><a href="#toc22" tabindex="0">エラーの種類と対処法</a><ol><li><a href="#toc23" tabindex="0">#NUM! エラー</a></li><li><a href="#toc24" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc25" tabindex="0">エラー対処：IFERRORで包む</a></li></ol></li><li><a href="#toc26" tabindex="0">DEC2OCT関数とExcelの互換性</a></li><li><a href="#toc27" tabindex="0">DECシリーズ3関数の比較</a></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



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



<p class="wp-block-paragraph">8進数は0〜7の数字（合計8種類）で数値を表す方法です。10進数の「7」は8進数でも「7」ですが、「8」は8進数で「10」に繰り上がります。</p>



<p class="wp-block-paragraph">Linuxのファイルパーミッション（アクセス権限）の設定では、8進数が広く使われています。<code>chmod 755</code> の「755」が3桁の8進数で、所有者・グループ・その他のユーザーそれぞれに「読み取り(4)+書き込み(2)+実行(1)」の組み合わせを1〜7の数字で表したものです。DEC2OCT関数を使えば、10進数の権限値を8進数のchmod値に変換できますよ。</p>



<p class="wp-block-paragraph">たとえば <code>=DEC2OCT(58, 3)</code> と入力すると、結果は「072」です。10進数の58が8進数では72であることと、3桁にゼロ埋めされることがわかります。</p>



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



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



<ul class="wp-block-list"><li><strong>DEC</strong> = Decimal（デシマル、10進数）</li><li><strong>2</strong> = to（〜へ）</li><li><strong>OCT</strong> = Octal（オクタル、8進数）</li></ul>



<p class="wp-block-paragraph">つまり「DECからOCTへ」、10進数を8進数に変換するという意味がそのまま名前になっています。逆変換のOCT2DEC関数とセットで覚えると便利ですよ。</p>



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



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



<ul class="wp-block-list"><li>10進数を8進数の文字列に変換する</li><li>変換できる範囲は -536,870,912〜536,870,911（30ビット符号付き整数）</li><li>桁数を指定して先頭にゼロ埋めできる</li><li>負の数は2の補数（30ビット）で返される</li><li>ExcelのDEC2OCT関数と仕様が同じで、ファイル共有でもそのまま動作する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>DEC2OCT関数は<a href="https://mashukabu.com/spreadsheet-dec2bin-function/">DEC2BIN関数</a>（10進→2進）や<a href="https://mashukabu.com/spreadsheet-dec2hex-function/">DEC2HEX関数</a>（10進→16進）と同じ「DECシリーズ」の関数です。変換先の基数だけが違うので、一度覚えると他の変換関数も使いやすくなりますよ。</p></blockquote>



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



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



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



<p class="wp-block-paragraph">カッコの中に、変換したい10進数と、必要に応じて桁数を指定します。桁数は省略できますよ。</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>8進数に変換したい10進数。-536,870,912〜536,870,911の範囲で指定する</td></tr><tr><td>桁数</td><td>任意</td><td>結果の最小文字数（1〜10）。省略すると必要最小限の桁数で返される</td></tr></tbody></table></figure>



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



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



<ul class="wp-block-list"><li>-536,870,912以上 536,870,911以下の整数（30ビット符号付き整数の範囲）</li><li>直接入力でもセル参照でもOK</li><li>小数を指定した場合は切り捨てて処理される</li><li>範囲外は #NUM! エラー</li></ul>



<p class="wp-block-paragraph">DEC2BINが-512〜511の狭い範囲なのに対して、DEC2OCTは約5億という広い範囲を扱えます。</p>



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



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



<ul class="wp-block-list"><li>1〜10の範囲で指定する</li><li>結果の桁数より小さい値を指定すると #NUM! エラー</li><li>0や負の値を指定するとエラーになる</li><li><strong>負の数を変換した場合、桁数指定は無視されて常に10桁で返される</strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>DEC2OCT関数の戻り値は数値ではなく「文字列」です。そのまま計算に使おうとすると文字列として扱われます。8進数を10進数に戻して計算したい場合はOCT2DEC関数を使ってくださいね。</p></blockquote>



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



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



<figure class="wp-block-table"><table><thead><tr><th>10進数</th><th>8進数（DEC2OCT）</th><th>備考</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>&nbsp;</td></tr><tr><td>7</td><td>7</td><td>8進数最大の1桁</td></tr><tr><td>8</td><td>10</td><td>8進数の繰り上がり</td></tr><tr><td>64</td><td>100</td><td>8^2</td></tr><tr><td>100</td><td>144</td><td>1×64 + 4×8 + 4</td></tr><tr><td>255</td><td>377</td><td>3×64 + 7×8 + 7</td></tr><tr><td>493</td><td>755</td><td>chmod 755の10進数</td></tr><tr><td>420</td><td>644</td><td>chmod 644の10進数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">8進数は「8の累乗の足し算」で値が決まります。右から順に1、8、64、512&#8230;と位が重みを持つイメージですね。</p>



<p class="wp-block-paragraph">たとえば10進数の「493」は、7×64 + 5×8 + 5 = 448+40+5 で、8進数にすると <code>755</code> になります。Linuxのchmodで「755」として設定する値の正体がこれですよ。</p>



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



<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>



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



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



<pre class="wp-block-code"><code>=DEC2OCT(8)</code></pre>



<p class="wp-block-paragraph">結果は「10」です。10進数の8は、8進数では「8の位が1、1の位が0」で <code>10</code> になります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_dec2oct-basic.png" alt="02 formula dec2oct basic" /></figure>



<pre class="wp-block-code"><code>=DEC2OCT(255)</code></pre>



<p class="wp-block-paragraph">結果は「377」です。255 = 3×64 + 7×8 + 7 の計算から、8進数では「377」になります。</p>



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



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



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



<p class="wp-block-paragraph">結果は「755」です。Linuxのchmod 755に相当する8進数値が求められます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_dec2oct-basic.png" alt="03 result dec2oct basic" /></figure>



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



<p class="wp-block-paragraph">スプレッドシートならではの強みが、ARRAYFORMULA関数との組み合わせです。</p>



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



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



<figure class="wp-block-table"><table><thead><tr><th>A列: 10進数</th><th>B列: 数式</th><th>結果</th></tr></thead><tbody><tr><td>8</td><td>=ARRAYFORMULA(DEC2OCT(A2:A6))</td><td>10</td></tr><tr><td>64</td><td>↓</td><td>100</td></tr><tr><td>100</td><td>↓</td><td>144</td></tr><tr><td>255</td><td>↓</td><td>377</td></tr><tr><td>493</td><td>↓</td><td>755</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc14">桁数を指定して出力する（ゼロ埋め）</span></h2>



<p class="wp-block-paragraph">DEC2OCT関数の第2引数「桁数」を使うと、出力の文字数を揃えられます。chmod管理表など桁を統一したい場面で便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc15">3桁固定フォーマット出力</span></h3>



<p class="wp-block-paragraph">Linuxのchmod値は3桁の8進数で表すのが慣習です。DEC2OCTで3桁固定にしておくと、管理表が読みやすくなります。</p>



<pre class="wp-block-code"><code>=DEC2OCT(58, 3)</code></pre>



<p class="wp-block-paragraph">結果は「072」です。桁数を省略すると「72」とだけ表示されますが、3を指定したことで先頭に「0」が追加されました。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>用途</th></tr></thead><tbody><tr><td>=DEC2OCT(8, 3)</td><td>010</td><td>3桁固定</td></tr><tr><td>=DEC2OCT(58, 3)</td><td>072</td><td>公式ドキュメントの例</td></tr><tr><td>=DEC2OCT(255, 3)</td><td>377</td><td>3桁で収まる</td></tr><tr><td>=DEC2OCT(493, 3)</td><td>755</td><td>chmod 755相当</td></tr></tbody></table></figure>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>chmod値は0〜777（10進数で0〜511）の範囲に収まるので、3桁固定で問題なく揃えられます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">実務活用例：Linuxファイルパーミッション管理</span></h2>



<p class="wp-block-paragraph">DEC2OCT関数の最も実用的な活用例が、Linuxファイルパーミッション（chmod）の管理です。サーバー設定やインフラ管理をスプレッドシートで記録している場合に役立ちます。</p>



<h3 class="wp-block-heading"><span id="toc17">chmod値の一覧表を作る</span></h3>



<p class="wp-block-paragraph">Linuxのchmodは3桁の8進数で、所有者・グループ・その他の各権限（読取=4、書込=2、実行=1の合計）を指定します。よく使う設定を変換表にまとめると、設定時の確認がスムーズになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>設定内容</th><th>10進数</th><th>chmod（8進数）</th></tr></thead><tbody><tr><td>所有者のみ全権限</td><td>448</td><td>=DEC2OCT(448, 3) → 700</td></tr><tr><td>通常のWebファイル</td><td>420</td><td>=DEC2OCT(420, 3) → 644</td></tr><tr><td>通常のWebディレクトリ</td><td>493</td><td>=DEC2OCT(493, 3) → 755</td></tr><tr><td>全員に全権限</td><td>511</td><td>=DEC2OCT(511, 3) → 777</td></tr><tr><td>全員に読取のみ</td><td>292</td><td>=DEC2OCT(292, 3) → 444</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">権限ビットから8進数への変換</span></h3>



<p class="wp-block-paragraph">各権限（読取=4、書込=2、実行=1）の合計を10進数で管理しているデータがある場合、次の計算でchmod値を求められます。</p>



<pre class="wp-block-code"><code>=(所有者権限値)*64 + (グループ権限値)*8 + (その他権限値)
=DEC2OCT(結果, 3)</code></pre>



<p class="wp-block-paragraph">たとえば所有者=rwx(7)、グループ=r-x(5)、その他=r-x(5)の場合:</p>



<pre class="wp-block-code"><code>=7*64 + 5*8 + 5 → 493
=DEC2OCT(493, 3) → 755</code></pre>



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



<p class="wp-block-paragraph">DEC2OCT関数で負の数を変換すると、30ビット（10桁8進数）の2の補数表現が返されます。</p>



<h3 class="wp-block-heading"><span id="toc20">負の数の変換例</span></h3>



<pre class="wp-block-code"><code>=DEC2OCT(-100)</code></pre>



<p class="wp-block-paragraph">結果は「7777777634」（10桁）です。</p>



<pre class="wp-block-code"><code>=DEC2OCT(-1)</code></pre>



<p class="wp-block-paragraph">結果は「7777777777」（10桁すべて7）です。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>備考</th></tr></thead><tbody><tr><td>=DEC2OCT(-1)</td><td>7777777777</td><td>10桁固定（全ビット1）</td></tr><tr><td>=DEC2OCT(-100)</td><td>7777777634</td><td>10桁固定</td></tr><tr><td>=DEC2OCT(-536870912)</td><td>4000000000</td><td>負の最小値</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>負の数の変換では、第2引数の桁数指定は無視されます。常に10桁で返されるため、3桁を指定しても10桁の結果になりますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc21">8進数の2の補数の読み方</span></h3>



<p class="wp-block-paragraph">先頭の8進数が「4」以上なら負の数を表しています。30ビットの符号付き整数として、先頭ビット（最上位ビット）が1なら負の数です。</p>



<ul class="wp-block-list"><li>正の数: 先頭が0〜3（最大 3777777777）</li><li>負の数: 先頭が4〜7（最小 4000000000）</li></ul>



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



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



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



<ul class="wp-block-list"><li>数値が範囲外（-536,870,912 未満または 536,870,911 超）</li><li>桁数に 0 以下の値を指定した</li><li>桁数に結果の桁数より少ない値を指定した</li></ul>



<pre class="wp-block-code"><code>=DEC2OCT(600000000)   → #NUM!（範囲外）
=DEC2OCT(255, 2)      → #NUM!（255の8進は&quot;377&quot;で3桁、2桁は不足）</code></pre>



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



<p class="wp-block-paragraph">数値や桁数に数値型でない値（文字列など）を直接指定すると #VALUE! エラーになります。</p>



<pre class="wp-block-code"><code>=DEC2OCT(&quot;abc&quot;)    → #VALUE!
=DEC2OCT(255, &quot;a&quot;) → #VALUE!</code></pre>



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



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



<pre class="wp-block-code"><code>=IFERROR(DEC2OCT(A2, 3), &quot;エラー&quot;)</code></pre>



<p class="wp-block-paragraph">A2に範囲外の値や文字列が入っていた場合でも、「エラー」と表示して処理が止まりません。</p>



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



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



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



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



<p class="wp-block-paragraph">DECシリーズの3関数を比較すると、変換先と扱える範囲が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>変換先</th><th>有効範囲（正）</th><th>負の数桁数</th><th>主な用途</th></tr></thead><tbody><tr><td>DEC2BIN</td><td>2進数</td><td>0〜511</td><td>10桁</td><td>ビットフラグ・IPアドレス</td></tr><tr><td>DEC2OCT</td><td>8進数</td><td>0〜536,870,911</td><td>10桁</td><td>Linuxパーミッション（chmod）</td></tr><tr><td>DEC2HEX</td><td>16進数</td><td>0〜549,755,813,887</td><td>10桁</td><td>カラーコード・メモリアドレス</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">DEC2OCTはDEC2BINの約100万倍の範囲を扱えます。chmod値（最大511）は余裕でカバーできますよ。</p>



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



<p class="wp-block-paragraph">DEC2OCT関数は、10進数を8進数に変換するエンジニアリング関数です。</p>



<ul class="wp-block-list"><li>基本構文: <code>=DEC2OCT(数値, [桁数])</code></li><li>有効範囲: -536,870,912〜536,870,911</li><li>桁数を指定するとゼロ埋めで出力できる</li><li>負の数は常に10桁（30ビット2の補数）で返される</li><li>Linuxのchmod（ファイルパーミッション）管理で特に活用される</li></ul>



<p class="wp-block-paragraph"><code>=DEC2OCT(493, 3)</code> のようにchmod値（10進数）を3桁の8進数に変換するパターンは、サーバー設定管理表で重宝しますよ。</p>



<p class="wp-block-paragraph">逆変換にはOCT2DEC関数を使います。またDEC2BINや<a href="https://mashukabu.com/spreadsheet-dec2hex-function/">DEC2HEX関数</a>と組み合わせれば、さまざまな基数変換をスプレッドシート上で完結できますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-dec2oct-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのDEC2OCT関数の使い方｜10進数を8進数に変換する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-dec2oct/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-dec2oct/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 12 Aug 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[10進数]]></category>
		<category><![CDATA[8進数]]></category>
		<category><![CDATA[DEC2OCT]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[進数変換]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2536</guid>

					<description><![CDATA[ExcelのDEC2OCT関数で10進数を8進数に変換する方法を解説。構文・引数のルール、桁数指定のゼロ埋め、負の数の2の補数表現、#NUM!・#VALUE!エラーの対処法、chmod権限変換ワークフロー、BASE関数との使い分けまで網羅します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「10進数を8進数に変換したいけど、手計算は面倒&#8230;」</p>



<p class="wp-block-paragraph">Excelには、そんな変換を一発で行える関数があります。それがDEC2OCT関数です。</p>



<p class="wp-block-paragraph">Linuxのファイル権限（chmod）やプログラミングで、8進数が必要になる場面は意外とあります。でも手計算で変換するのは桁数が増えると大変ですよね。</p>



<p class="wp-block-paragraph">この記事では、ExcelのDEC2OCT関数の使い方を基本から解説します。桁数指定のゼロ埋め、エラー対策、chmodパーミッション変換ワークフローまで網羅しますよ。</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のDEC2OCT関数とは？読み方と基本概要</a><ol><li><a href="#toc2" tabindex="0">読み方と意味</a></li><li><a href="#toc3" tabindex="0">どんなときに使うか</a></li></ol></li><li><a href="#toc4" tabindex="0">DEC2OCT関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">変換できる数値の範囲（-536,870,912〜536,870,911）</a></li><li><a href="#toc8" tabindex="0">なぜDEC2BINより範囲が格段に広いのか</a></li><li><a href="#toc9" tabindex="0">対応バージョン一覧</a></li></ol></li><li><a href="#toc10" tabindex="0">DEC2OCT関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">シンプルな変換例（0〜536,870,911）</a></li><li><a href="#toc12" tabindex="0">負の数の変換（2の補数表現）</a></li><li><a href="#toc13" tabindex="0">桁数を指定してゼロ埋めする</a></li></ol></li><li><a href="#toc14" tabindex="0">DEC2OCT関数のよくあるエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">#NUM!エラー：範囲外と桁数の問題</a></li><li><a href="#toc16" tabindex="0">#VALUE!エラー：文字列・空白セルの混入</a></li><li><a href="#toc17" tabindex="0">エラーパターン早見表</a></li><li><a href="#toc18" tabindex="0">IFERRORと組み合わせてエラー回避</a></li></ol></li><li><a href="#toc19" tabindex="0">536,870,911を超える値を8進数に変換するテクニック</a><ol><li><a href="#toc20" tabindex="0">BASE関数を使う方法（Microsoft 365 / Excel 2013以降）</a></li><li><a href="#toc21" tabindex="0">分割結合で対応する方法</a></li></ol></li><li><a href="#toc22" tabindex="0">実用例：chmodパーミッション変換ワークフロー</a><ol><li><a href="#toc23" tabindex="0">権限ビットの仕組み</a></li><li><a href="#toc24" tabindex="0">権限値の計算と変換</a></li><li><a href="#toc25" tabindex="0">代表的なchmod値の早見表</a></li><li><a href="#toc26" tabindex="0">Excel上で権限計算シートを作る</a></li></ol></li><li><a href="#toc27" tabindex="0">OCT2DEC関数で逆変換する（8進数→10進数）</a><ol><li><a href="#toc28" tabindex="0">往復変換で検算する</a></li><li><a href="#toc29" tabindex="0">DEC2OCTとOCT2DECの仕様比較</a></li></ol></li><li><a href="#toc30" tabindex="0">DEC系3関数を比較する（DEC2BIN・DEC2OCT・DEC2HEX）</a><ol><li><a href="#toc31" tabindex="0">変換先・有効範囲・主な用途の比較表</a></li><li><a href="#toc32" tabindex="0">どの関数を選ぶか</a></li></ol></li><li><a href="#toc33" tabindex="0">進数変換関数の全体マップ（全12関数）</a></li><li><a href="#toc34" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



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



<p class="wp-block-paragraph">10進数は私たちが普段使っている0〜9の数字で表す方法です。一方、8進数は「0」〜「7」の8種類の数字で数を表します。8進数はLinuxのファイル権限やプログラミングで使われています。</p>



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



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



<p class="wp-block-paragraph">読み方は「デック・ツー・オクト」です。</p>



<ul class="wp-block-list"><li><strong>DEC</strong> = Decimal（デシマル、10進数）</li><li><strong>2</strong> = to（〜へ）</li><li><strong>OCT</strong> = Octal（オクタル、8進数）</li></ul>



<p class="wp-block-paragraph">つまり「10進数から8進数へ」という意味です。Excelの進数変換関数はすべてこの命名規則に従います。たとえば<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>なら「8進数から10進数へ」です。関数名がそのまま機能を表しているので覚えやすいですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">どんなときに使うか</span></h3>



<p class="wp-block-paragraph">DEC2OCT関数は次のような場面で活躍します。</p>



<ul class="wp-block-list"><li>Linuxのファイル権限（chmod）を8進数で確認・管理したいとき</li><li>プログラミングで8進数リテラルの値を調べたいとき</li><li>情報処理試験の勉強で進数変換を練習したいとき</li><li>10進数と8進数の対応表を作りたいとき</li></ul>



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



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



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



<p class="wp-block-paragraph">引数は2つあります。必須なのは「数値」だけです。</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>8進数に変換したい10進数の整数</td></tr><tr><td>桁数</td><td>任意</td><td>結果の文字数を指定。先頭をゼロで埋める</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>引数1：数値（必須）</strong></p>



<p class="wp-block-paragraph">8進数に変換したい10進数の整数を指定します。セル参照でも直接入力でもOKです。小数を指定した場合は、小数点以下が切り捨てられます。</p>



<p class="wp-block-paragraph"><strong>引数2：桁数（省略可）</strong></p>



<p class="wp-block-paragraph">結果の文字数（桁数）を整数で指定します。省略すると、変換に必要な最小限の桁数で返されます。指定すると、先頭にゼロを埋めて桁数を揃えてくれますよ。</p>



<p class="wp-block-paragraph">たとえば <code>=DEC2OCT(58)</code> は「72」です。<code>=DEC2OCT(58, 3)</code> なら「072」になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>桁数に小数を指定した場合は、小数点以下が切り捨てられます。0以下の値を指定すると#NUM!エラーになります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">変換できる数値の範囲（-536,870,912〜536,870,911）</span></h3>



<p class="wp-block-paragraph">変換できる数値の範囲は <strong>-536,870,912から536,870,911</strong> です。これは30ビット（10桁）の符号付き整数で表現できる範囲です。2の29乗=536,870,912が根拠になっています。</p>



<ul class="wp-block-list"><li><strong>正の最大値</strong>: 536,870,911 → 3777777777（10桁）</li><li><strong>負の最小値</strong>: -536,870,912 → 4000000000（10桁）</li></ul>



<p class="wp-block-paragraph">範囲外の数値を指定すると#NUM!エラーになります。</p>



<h3 class="wp-block-heading"><span id="toc8">なぜDEC2BINより範囲が格段に広いのか</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-dec2bin/">DEC2BIN関数</a>の入力範囲は-512〜511です。一方、DEC2OCT関数は約±5億まで扱えます。</p>



<p class="wp-block-paragraph">この差は桁数あたりの情報量の違いによるものです。2進数は1桁で1ビットですが、8進数は1桁で3ビットを表せます。どちらも最大10桁ですが、表現できるビット数が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>1桁あたりのビット数</th><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>1ビット</td><td>10桁</td><td>10ビット</td><td>-512〜511</td></tr><tr><td><strong>DEC2OCT</strong></td><td>3ビット</td><td>10桁</td><td>30ビット</td><td>-536,870,912〜536,870,911</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">DEC2OCTはDEC2BINの約1,048,576倍（2^20倍）の範囲を扱えます。大きな数値を扱う場合はDEC2OCTのほうが適していますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">対応バージョン一覧</span></h3>



<p class="wp-block-paragraph">DEC2OCT関数は、Excel 2007以降で標準搭載されています。</p>



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応状況</th></tr></thead><tbody><tr><td>Microsoft 365（Windows / Mac）</td><td>対応</td></tr><tr><td>Excel 2024 / 2021 / 2019 / 2016</td><td>対応</td></tr><tr><td>Excel for the web</td><td>対応</td></tr><tr><td>Excel 2007 / 2010 / 2013</td><td>対応</td></tr><tr><td>Excel 2003以前</td><td>分析ツールアドインが必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">現在の主要バージョンならアドインの追加は不要です。お使いのバージョンが古くなければ気にしなくて大丈夫ですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc11">シンプルな変換例（0〜536,870,911）</span></h3>



<p class="wp-block-paragraph">まずは関数に直接値を入力してみましょう。</p>



<pre class="wp-block-code"><code>=DEC2OCT(8)</code></pre>



<p class="wp-block-paragraph">結果は「10」です。10進数の8は、8進数で10になります。</p>



<p class="wp-block-paragraph">変換の仕組みを確認しておきます。各桁に8のべき乗を対応させて合計します。</p>



<figure class="wp-block-table"><table><thead><tr><th>桁</th><th>2桁目</th><th>1桁目</th></tr></thead><tbody><tr><td>8進数</td><td>1</td><td>0</td></tr><tr><td>重み</td><td>8^1 = 8</td><td>8^0 = 1</td></tr><tr><td>計算</td><td>1 x 8 = 8</td><td>0 x 1 = 0</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">合計: 8 + 0 = <strong>8</strong> ですね。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>入力（10進数）</th><th>数式</th><th>出力（8進数）</th></tr></thead><tbody><tr><td>0</td><td>=DEC2OCT(0)</td><td>0</td></tr><tr><td>7</td><td>=DEC2OCT(7)</td><td>7</td></tr><tr><td>8</td><td>=DEC2OCT(8)</td><td>10</td></tr><tr><td>64</td><td>=DEC2OCT(64)</td><td>100</td></tr><tr><td>100</td><td>=DEC2OCT(100)</td><td>144</td></tr><tr><td>255</td><td>=DEC2OCT(255)</td><td>377</td></tr><tr><td>511</td><td>=DEC2OCT(511)</td><td>777</td></tr><tr><td>4096</td><td>=DEC2OCT(4096)</td><td>10000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">結果はテキスト文字列として返されます。見た目は数値ですが、左寄せで表示されるのが目印です。</p>



<h3 class="wp-block-heading"><span id="toc12">負の数の変換（2の補数表現）</span></h3>



<p class="wp-block-paragraph">DEC2OCT関数に負の数を指定すると、<strong>2の補数</strong>（にのほすう）で表現された10桁の8進数が返ります。</p>



<p class="wp-block-paragraph">2の補数とは、コンピュータが負の整数を表す仕組みです。最上位の8進桁が4以上（4〜7）なら負の数を意味します。</p>



<pre class="wp-block-code"><code>=DEC2OCT(-100)</code></pre>



<p class="wp-block-paragraph">結果は「7777777634」です。桁数の指定に関わらず、常に10桁で返されます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>入力（10進数）</th><th>出力（8進数）</th><th>備考</th></tr></thead><tbody><tr><td>-1</td><td>7777777777</td><td>全桁7</td></tr><tr><td>-100</td><td>7777777634</td><td>10桁固定</td></tr><tr><td>-256</td><td>7777777400</td><td>&nbsp;</td></tr><tr><td>-536,870,912</td><td>4000000000</td><td>負の最小値</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">逆変換の<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>を使えば元に戻せます。</p>



<pre class="wp-block-code"><code>=OCT2DEC(DEC2OCT(-100))</code></pre>



<p class="wp-block-paragraph">結果は「-100」です。正しく往復変換できることを確認できますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">桁数を指定してゼロ埋めする</span></h3>



<p class="wp-block-paragraph">第2引数に桁数を指定すると、先頭にゼロを埋めて桁数を揃えられます。</p>



<pre class="wp-block-code"><code>=DEC2OCT(58, 3)</code></pre>



<p class="wp-block-paragraph">結果は「072」です。3桁に揃えてくれました。</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>=DEC2OCT(58)</td><td>72</td><td>最小桁数（2桁）</td></tr><tr><td>=DEC2OCT(58, 3)</td><td>072</td><td>3桁にゼロ埋め</td></tr><tr><td>=DEC2OCT(8)</td><td>10</td><td>最小桁数（2桁）</td></tr><tr><td>=DEC2OCT(8, 4)</td><td>0010</td><td>4桁にゼロ埋め</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">chmodのパーミッション値を常に3桁で揃えたいときなどに便利ですよ。</p>



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



<p class="wp-block-paragraph">DEC2OCT関数で発生するエラーは主に2種類です。原因別に対処法を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc15">#NUM!エラー：範囲外と桁数の問題</span></h3>



<p class="wp-block-paragraph">#NUM!エラーが出る原因は3つあります。</p>



<p class="wp-block-paragraph"><strong>原因1：数値が範囲外（-536,870,912未満または536,870,911超）</strong></p>



<pre class="wp-block-code"><code>=DEC2OCT(536870912)    → #NUM!エラー
=DEC2OCT(-536870913)   → #NUM!エラー</code></pre>



<p class="wp-block-paragraph">対処法は、指定する値が-536,870,912〜536,870,911に収まっているか確認することです。</p>



<p class="wp-block-paragraph"><strong>原因2：桁数が0以下</strong></p>



<pre class="wp-block-code"><code>=DEC2OCT(8, 0)   → #NUM!エラー</code></pre>



<p class="wp-block-paragraph">桁数には1以上の整数を指定してください。</p>



<p class="wp-block-paragraph"><strong>原因3：桁数が結果の桁数より少ない</strong></p>



<pre class="wp-block-code"><code>=DEC2OCT(64, 2)   → #NUM!エラー</code></pre>



<p class="wp-block-paragraph">64の8進数は「100」で3桁必要です。桁数に2を指定すると足りないためエラーになります。</p>



<h3 class="wp-block-heading"><span id="toc16">#VALUE!エラー：文字列・空白セルの混入</span></h3>



<p class="wp-block-paragraph">#VALUE!エラーが出る原因は2つあります。</p>



<p class="wp-block-paragraph"><strong>原因1：数値が数値型でない</strong></p>



<pre class="wp-block-code"><code>=DEC2OCT(&quot;ABC&quot;)   → #VALUE!エラー</code></pre>



<p class="wp-block-paragraph"><strong>原因2：桁数が数値型でない</strong></p>



<pre class="wp-block-code"><code>=DEC2OCT(8, &quot;A&quot;)  → #VALUE!エラー</code></pre>



<p class="wp-block-paragraph">引数には数値型のデータを指定しましょう。空白セルを参照している場合も注意が必要です。</p>



<h3 class="wp-block-heading"><span id="toc17">エラーパターン早見表</span></h3>



<p class="wp-block-paragraph">エラーの原因と対処法を表にまとめます。</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>数値が-536,870,912未満または536,870,911超</td><td>=DEC2OCT(536870912)</td><td>値を範囲内に収める</td></tr><tr><td>#NUM!</td><td>桁数が0以下</td><td>=DEC2OCT(8, 0)</td><td>桁数を1以上にする</td></tr><tr><td>#NUM!</td><td>桁数が結果の桁数より少ない</td><td>=DEC2OCT(64, 2)</td><td>桁数を結果以上にする</td></tr><tr><td>#VALUE!</td><td>数値が文字列</td><td>=DEC2OCT(&#8220;ABC&#8221;)</td><td>数値型のデータを指定</td></tr><tr><td>#VALUE!</td><td>桁数が文字列</td><td>=DEC2OCT(8, &#8220;A&#8221;)</td><td>桁数に数値を指定</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">IFERRORと組み合わせてエラー回避</span></h3>



<p class="wp-block-paragraph">エラーが出る可能性がある場合は、IFERROR関数（エラー時に代替値を返す関数）で囲むと安全です。</p>



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



<p class="wp-block-paragraph">この数式なら、A1の値が範囲外でもエラーの代わりに「変換エラー」と表示されます。</p>



<p class="wp-block-paragraph">入力値のチェックと組み合わせる方法もあります。</p>



<pre class="wp-block-code"><code>=IF(AND(A1&gt;=-536870912, A1&lt;=536870911), DEC2OCT(A1), &quot;範囲外&quot;)</code></pre>



<p class="wp-block-paragraph">あらかじめ範囲をチェックしてから変換すると、より安心ですよ。</p>



<h2 class="wp-block-heading"><span id="toc19">536,870,911を超える値を8進数に変換するテクニック</span></h2>



<p class="wp-block-paragraph">DEC2OCT関数の上限は536,870,911です。でも実務ではもっと大きな数値を8進数にしたい場面もありますよね。</p>



<h3 class="wp-block-heading"><span id="toc20">BASE関数を使う方法（Microsoft 365 / Excel 2013以降）</span></h3>



<p class="wp-block-paragraph">Excel 2013以降なら、BASE関数（ベース関数）を使う方法があります。BASE関数は任意の基数（2〜36）に変換できる関数です。</p>



<pre class="wp-block-code"><code>=BASE(1000000000, 8)</code></pre>



<p class="wp-block-paragraph">結果は「7346545000」です。DEC2OCT関数の約±5億の制限がないので、大きな値もそのまま変換できます。</p>



<p class="wp-block-paragraph">DEC2OCT関数とBASE関数の違いを比較します。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>DEC2OCT</th><th>BASE</th></tr></thead><tbody><tr><td>入力範囲</td><td>-536,870,912〜536,870,911</td><td>0〜2^53</td></tr><tr><td>負の数</td><td>2の補数で返す</td><td>非対応（エラー）</td></tr><tr><td>桁数指定</td><td>第2引数で指定</td><td>第3引数で指定</td></tr><tr><td>対応バージョン</td><td>Excel 2007以降</td><td>Excel 2013以降</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">負の数を2の補数で変換したいならDEC2OCT関数を使いましょう。正の大きな値だけならBASE関数が便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc21">分割結合で対応する方法</span></h3>



<p class="wp-block-paragraph">BASE関数が使えない環境では、数値を上位と下位に分割して結合する方法もあります。</p>



<pre class="wp-block-code"><code>=DEC2OCT(INT(A1/536870912)) &amp; DEC2OCT(MOD(A1, 536870912), 10)</code></pre>



<p class="wp-block-paragraph">A1に1,000,000,000を入れると、商が1、余りが463,129,088です。これをDEC2OCT関数でそれぞれ変換し、文字列結合します。</p>



<p class="wp-block-paragraph">ただし、この方法は桁の繰り上がりに注意が必要です。特別な理由がなければBASE関数を使うほうがシンプルですよ。</p>



<h2 class="wp-block-heading"><span id="toc22">実用例：chmodパーミッション変換ワークフロー</span></h2>



<p class="wp-block-paragraph">DEC2OCT関数が最も活躍するのは、Linuxのファイル権限（chmod）管理です。chmodコマンドは8進数3桁で権限を指定します。DEC2OCT関数を使えば、10進数ベースで計算した権限値を8進数に変換できます。</p>



<h3 class="wp-block-heading"><span id="toc23">権限ビットの仕組み</span></h3>



<p class="wp-block-paragraph">Linuxのファイル権限は「読み取り」「書き込み」「実行」の3種類です。それぞれにビットの重みが割り当てられています。</p>



<figure class="wp-block-table"><table><thead><tr><th>権限</th><th>記号</th><th>ビット値</th></tr></thead><tbody><tr><td>読み取り（Read）</td><td>r</td><td>4</td></tr><tr><td>書き込み（Write）</td><td>w</td><td>2</td></tr><tr><td>実行（Execute）</td><td>x</td><td>1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この3つの権限を「所有者」「グループ」「その他」の3区分に割り当てます。各区分は0〜7の値を取ります。</p>



<h3 class="wp-block-heading"><span id="toc24">権限値の計算と変換</span></h3>



<p class="wp-block-paragraph">たとえば「所有者に全権限、グループと他に読み取り+実行」を設定したい場合、各区分の値は次のとおりです。</p>



<ul class="wp-block-list"><li>所有者: 4 + 2 + 1 = 7</li><li>グループ: 4 + 0 + 1 = 5</li><li>その他: 4 + 0 + 1 = 5</li></ul>



<p class="wp-block-paragraph">この3つの値を10進数1つにまとめるには、各区分に8の重みをかけます。</p>



<pre class="wp-block-code"><code>= 7 × 64 + 5 × 8 + 5 × 1 = 493</code></pre>



<p class="wp-block-paragraph">DEC2OCT関数で変換してみましょう。</p>



<pre class="wp-block-code"><code>=DEC2OCT(493)</code></pre>



<p class="wp-block-paragraph">結果は「755」です。<code>chmod 755</code> に対応する値だと確認できます。</p>



<h3 class="wp-block-heading"><span id="toc25">代表的なchmod値の早見表</span></h3>



<p class="wp-block-paragraph">よく使うchmod値とその10進数換算をまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>chmodコマンド</th><th>8進数</th><th>10進数</th><th>所有者</th><th>グループ</th><th>その他</th></tr></thead><tbody><tr><td>chmod 755</td><td>755</td><td>493</td><td>rwx</td><td>r-x</td><td>r-x</td></tr><tr><td>chmod 644</td><td>644</td><td>420</td><td>rw-</td><td>r&#8211;</td><td>r&#8211;</td></tr><tr><td>chmod 700</td><td>700</td><td>448</td><td>rwx</td><td>&#8212;</td><td>&#8212;</td></tr><tr><td>chmod 600</td><td>600</td><td>384</td><td>rw-</td><td>&#8212;</td><td>&#8212;</td></tr><tr><td>chmod 777</td><td>777</td><td>511</td><td>rwx</td><td>rwx</td><td>rwx</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>=DEC2OCT(493)</code> で「755」、<code>=DEC2OCT(420)</code> で「644」が返ります。</p>



<h3 class="wp-block-heading"><span id="toc26">Excel上で権限計算シートを作る</span></h3>



<p class="wp-block-paragraph">実務では、権限の組み合わせをExcelで一覧管理するケースがあります。次のようなシートを作ると便利です。</p>



<p class="wp-block-paragraph">A列に所有者の権限値（0〜7）、B列にグループの権限値、C列にその他の権限値を入力します。D列に以下の数式を入れましょう。</p>



<pre class="wp-block-code"><code>=DEC2OCT(A1*64 + B1*8 + C1, 3)</code></pre>



<p class="wp-block-paragraph">第2引数に3を指定すると、常に3桁のchmod表記で返されます。たとえばA1=6、B1=4、C1=4なら「644」です。</p>



<p class="wp-block-paragraph">逆に、10進数から各区分の権限を分解するには<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>所有者: =INT(A1/64)
グループ: =INT(MOD(A1,64)/8)
その他: =MOD(A1,8)</code></pre>



<p class="wp-block-paragraph">A1に493を入れると、所有者=7、グループ=5、その他=5と分解できますよ。</p>



<h2 class="wp-block-heading"><span id="toc27">OCT2DEC関数で逆変換する（8進数→10進数）</span></h2>



<p class="wp-block-paragraph">DEC2OCT関数の逆変換には<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>を使います。セットで覚えておくと便利です。</p>



<h3 class="wp-block-heading"><span id="toc28">往復変換で検算する</span></h3>



<p class="wp-block-paragraph">変換結果が正しいか確認するには、往復変換が有効です。</p>



<pre class="wp-block-code"><code>=OCT2DEC(DEC2OCT(100))</code></pre>



<p class="wp-block-paragraph">結果が「100」に戻れば変換が正確だと確認できます。負の数でも同様です。</p>



<pre class="wp-block-code"><code>=OCT2DEC(DEC2OCT(-256))</code></pre>



<p class="wp-block-paragraph">結果は「-256」です。2の補数で表現された10桁の8進数を、OCT2DEC関数が正しく負の数に戻してくれます。</p>



<h3 class="wp-block-heading"><span id="toc29">DEC2OCTとOCT2DECの仕様比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>DEC2OCT</th><th><a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC</a></th></tr></thead><tbody><tr><td>変換方向</td><td>10進数 → 8進数</td><td>8進数 → 10進数</td></tr><tr><td>入力</td><td>-536,870,912〜536,870,911の整数</td><td>最大10桁の8進数文字列</td></tr><tr><td>出力</td><td>テキスト文字列</td><td>数値（-536,870,912〜536,870,911）</td></tr><tr><td>桁数指定</td><td>あり（第2引数）</td><td>なし</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">OCT2DEC関数には桁数指定がありません。入力は「0」〜「7」の数字のみで構成された最大10桁の文字列です。8や9を含む値を渡すと#NUM!エラーになるので注意してください。</p>



<h2 class="wp-block-heading"><span id="toc30">DEC系3関数を比較する（DEC2BIN・DEC2OCT・DEC2HEX）</span></h2>



<p class="wp-block-paragraph">Excelには10進数から他の進数に変換するDEC系関数が3つあります。構文はすべて <code>関数名(数値, [桁数])</code> で同じです。</p>



<h3 class="wp-block-heading"><span id="toc31">変換先・有効範囲・主な用途の比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>変換先</th><th>入力範囲</th><th>主な用途</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-dec2bin/">DEC2BIN</a></td><td>2進数</td><td>-512〜511</td><td>ビットフラグ、IPアドレス</td></tr><tr><td><strong>DEC2OCT</strong> ※この記事</td><td>8進数</td><td>-536,870,912〜536,870,911</td><td>Linuxパーミッション（chmod）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-dec2hex/">DEC2HEX</a></td><td>16進数</td><td>-549,755,813,888〜549,755,813,887</td><td>カラーコード、メモリアドレス</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3つとも負の数は10桁の2の補数で返す点が共通しています。変換先の進数が大きいほど入力範囲も広がります。</p>



<h3 class="wp-block-heading"><span id="toc32">どの関数を選ぶか</span></h3>



<p class="wp-block-paragraph">迷ったら次の基準で選んでください。</p>



<ul class="wp-block-list"><li><strong>ビット単位の操作が必要</strong> → <a href="https://mashukabu.com/excel-function-howto-use-dec2bin/">DEC2BIN</a></li><li><strong>Linuxの権限管理</strong> → DEC2OCT（この記事）</li><li><strong>カラーコードやアドレス</strong> → <a href="https://mashukabu.com/excel-function-howto-use-dec2hex/">DEC2HEX</a></li><li><strong>上限を超える大きな値</strong> → BASE関数（Excel 2013以降）</li></ul>



<h2 class="wp-block-heading"><span id="toc33">進数変換関数の全体マップ（全12関数）</span></h2>



<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-dec2bin/">DEC2BIN</a></td><td>10進数 → 2進数</td></tr><tr><td><strong>DEC2OCT</strong> ※この記事</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-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-oct2dec/">OCT2DEC</a></td><td>8進数 → 10進数</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-oct2hex/">OCT2HEX</a></td><td>8進数 → 16進数</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-hex2bin/">HEX2BIN</a></td><td>16進数 → 2進数</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">DEC2OCT関数の逆変換は<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>です。この命名規則を覚えておけば、どの関数を使えばいいか迷いませんよ。</p>



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



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



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



<ul class="wp-block-list"><li>構文は <code>=DEC2OCT(数値, [桁数])</code> の最大2引数</li><li>変換できる範囲は-536,870,912〜536,870,911の整数</li><li>桁数を指定すると先頭をゼロで埋めて桁揃えできる</li><li>負の数は10桁の2の補数で返される</li><li>#NUM!エラーは「範囲外」か「桁数不足」が原因</li><li>#VALUE!エラーは文字列を渡したときに発生</li><li>chmodパーミッションの変換に便利</li><li>536,870,911を超える値にはBASE関数を使う</li><li>逆変換には<a href="https://mashukabu.com/excel-function-howto-use-oct2dec/">OCT2DEC関数</a>を使う</li></ul>



<p class="wp-block-paragraph">まずは <code>=DEC2OCT(8)</code> で「10」が返ることを試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-dec2oct/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
