ExcelのDECIMAL関数の使い方|N進数を10進数に変換する方法

スポンサーリンク

「16進数のカラーコードを10進数に変換したいんだけど、どうやるんだろう?」「2進数や8進数を手計算でいちいち変換するのは面倒…」そんな悩み、ありますよね。

ExcelのDECIMAL関数を使えば、2進数・8進数・16進数はもちろん、最大36進数までのあらゆるN進数を一発で10進数に変換できます。この記事では、基本的な使い方から実践的な活用例まで、わかりやすく解説していきますよ。

ExcelのDECIMAL関数とは?

DECIMAL関数(読み方: デシマル)は、指定した基数(N進数)の文字列を10進数に変換する関数です。「decimal」は英語で「10進数の」という意味ですね。

たとえば、16進数の「FF」を10進数に変換すると「255」になります。DECIMAL関数はこの変換をワンクリックで行ってくれます。

ポイントは、2進数から最大36進数まで幅広い基数に対応しているところです。BIN2DEC関数やHEX2DEC関数など個別の変換関数もありますが、DECIMAL関数なら1つの関数であらゆる基数に対応できますよ。

対応バージョン: Excel 2013以降、Microsoft 365

DECIMAL関数の書き方(構文と引数)

基本構文

=DECIMAL(文字列, 基数)

引数の説明

引数必須/省略可説明
文字列必須10進数に変換したいN進数の値を文字列で指定します。255文字以内で、大文字・小文字の区別はありません
基数必須変換元の基数を2以上36以下の整数で指定します。10より大きい基数では0〜9の数字とA〜Zの文字を使います

基数は、いわば「何進数なのか」を教える番号です。2進数なら「2」、8進数なら「8」、16進数なら「16」を指定してくださいね。

DECIMAL関数の基本的な使い方

実際にDECIMAL関数を使ってみましょう。ここでは代表的な3つのパターンを紹介します。

2進数を10進数に変換する

=DECIMAL("1010", 2)

結果は「10」です。2進数の「1010」は、8+0+2+0 = 10 になります。

8進数を10進数に変換する

=DECIMAL("17", 8)

結果は「15」です。8進数の「17」は、1×8 + 7×1 = 15 になります。

16進数を10進数に変換する

=DECIMAL("FF", 16)

結果は「255」です。16進数の「FF」は、15×16 + 15×1 = 255 ですね。Webのカラーコードなどでよく出てくる変換です。

セル参照を使う場合は、セルに変換したい値を入力して参照します。

=DECIMAL(A2, B2)

A2に変換元の文字列、B2に基数を入力しておけば、柔軟に変換できますよ。

DECIMAL関数の実践的な使い方・応用例

カラーコード(16進数)をRGB値に分解する

Web制作やデザインの現場では、16進数のカラーコードをRGB値に変換したい場面があります。DECIMAL関数とMID関数(文字列の途中から指定した文字数を取り出す関数)を組み合わせると、簡単に分解できますよ。

カラーコード「#3A7BD5」をRGB値に変換してみましょう。

セル内容数式結果
A13A7BD5(カラーコード)
B1R値=DECIMAL(MID(A1,1,2),16)58
C1G値=DECIMAL(MID(A1,3,2),16)123
D1B値=DECIMAL(MID(A1,5,2),16)213

MID関数で2文字ずつ取り出し、DECIMAL関数で16進数から10進数に変換しています。「#」を除いた6桁の文字列を用意するのがポイントです。

複数の基数が混在するデータを一括変換する

「2進数・8進数・16進数のデータが混在している表を、すべて10進数に統一したい」というケースも対処できます。

 A列(値)B列(基数)C列(数式)D列(結果)
110102=DECIMAL(A1,B1)10
2178=DECIMAL(A2,B2)15
3FF16=DECIMAL(A3,B3)255
4Z36=DECIMAL(A4,B4)35

基数をB列に分けて管理すれば、同じ数式をコピーするだけで異なる基数のデータを一括変換できます。

BASE関数と組み合わせて変換を検証する

BASE関数はDECIMAL関数の逆で、10進数をN進数に変換する関数です。この2つを組み合わせると、変換結果が正しいかどうか検証できます。

=BASE(DECIMAL("1A",16), 16)

結果は「1A」に戻ります。DECIMAL関数で10進数にした結果を、BASE関数で元の基数に戻して一致するか確認してみてください。データの正確性チェックに便利ですよ。

よくあるエラーと対処法

DECIMAL関数を使うときに発生しやすいエラーとその対処法をまとめました。

#NUM!エラー

原因1: 文字列に基数で使えない文字が含まれている

たとえば、2進数(基数2)で「0」と「1」以外の文字を使うとエラーになります。

=DECIMAL("123", 2)  → #NUM!エラー

2進数では「0」と「1」しか使えません。基数に対して有効な文字だけを使っているか確認してくださいね。

原因2: 基数が範囲外

基数に1以下や37以上の値を指定するとエラーになります。

=DECIMAL("10", 1)   → #NUM!エラー
=DECIMAL("10", 37)  → #NUM!エラー

基数は2以上36以下の範囲で指定しましょう。

#VALUE!エラー

原因: 基数に数値以外を指定している

基数に文字列や空白を指定するとエラーになります。

=DECIMAL("FF", "じゅうろく")  → #VALUE!エラー

基数は必ず数値で指定してください。

#NAME?エラー

原因: 関数名のスペルミス、またはExcel 2010以前を使っている

DECIMAL関数はExcel 2013以降で使える関数です。お使いのExcelのバージョンを確認してみてください。

似た関数との違い・使い分け

DECIMAL関数と同じように進数変換ができる関数があります。それぞれの特徴を比較してみましょう。

関数名変換方向対応する基数入力の上限
DECIMALN進数 → 10進数2〜36進数255文字
BIN2DEC2進数 → 10進数2進数のみ10桁(-512〜511)
OCT2DEC8進数 → 10進数8進数のみ10桁
HEX2DEC16進数 → 10進数16進数のみ10桁
BASE10進数 → N進数2〜36進数

使い分けのポイントは次のとおりです。

  • 決まった基数だけを扱うなら: BIN2DEC、OCT2DEC、HEX2DEC関数がシンプルで使いやすいです
  • さまざまな基数を一括処理するなら: DECIMAL関数なら基数をセル参照で変えられるので柔軟です
  • 10進数からN進数に変換するなら: BASE関数を使います。DECIMAL関数の逆変換ですね
  • 16進数同士の変換なら: DEC2HEX関数とDECIMAL関数を組み合わせると、任意の基数間で変換できます

まとめ

ExcelのDECIMAL関数について解説しました。最後にポイントを整理しておきましょう。

  • DECIMAL関数は、N進数の文字列を10進数に変換する関数
  • 基数は2〜36まで対応しており、あらゆるN進数を扱える
  • 構文は =DECIMAL(文字列, 基数) で、どちらの引数も必須
  • カラーコードの変換やデータの一括処理など、実務でも活躍する場面がある
  • #NUM!エラーが出たら、文字列と基数の組み合わせが正しいか確認する
  • 特定の基数だけならBIN2DEC・OCT2DEC・HEX2DEC、逆変換ならBASE関数と使い分ける

進数変換が必要な場面で、ぜひDECIMAL関数を試してみてくださいね。

関連記事

タイトルとURLをコピーしました