「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値に変換してみましょう。
| セル | 内容 | 数式 | 結果 |
|---|---|---|---|
| A1 | 3A7BD5 | (カラーコード) | — |
| B1 | R値 | =DECIMAL(MID(A1,1,2),16) | 58 |
| C1 | G値 | =DECIMAL(MID(A1,3,2),16) | 123 |
| D1 | B値 | =DECIMAL(MID(A1,5,2),16) | 213 |
MID関数で2文字ずつ取り出し、DECIMAL関数で16進数から10進数に変換しています。「#」を除いた6桁の文字列を用意するのがポイントです。
複数の基数が混在するデータを一括変換する
「2進数・8進数・16進数のデータが混在している表を、すべて10進数に統一したい」というケースも対処できます。
| A列(値) | B列(基数) | C列(数式) | D列(結果) | |
|---|---|---|---|---|
| 1 | 1010 | 2 | =DECIMAL(A1,B1) | 10 |
| 2 | 17 | 8 | =DECIMAL(A2,B2) | 15 |
| 3 | FF | 16 | =DECIMAL(A3,B3) | 255 |
| 4 | Z | 36 | =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関数と同じように進数変換ができる関数があります。それぞれの特徴を比較してみましょう。
| 関数名 | 変換方向 | 対応する基数 | 入力の上限 |
|---|---|---|---|
| DECIMAL | N進数 → 10進数 | 2〜36進数 | 255文字 |
| BIN2DEC | 2進数 → 10進数 | 2進数のみ | 10桁(-512〜511) |
| OCT2DEC | 8進数 → 10進数 | 8進数のみ | 10桁 |
| HEX2DEC | 16進数 → 10進数 | 16進数のみ | 10桁 |
| BASE | 10進数 → 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関数を試してみてくださいね。
関連記事
- BASE関数の使い方 – 10進数をN進数に変換する(DECIMAL関数の逆)
- BIN2DEC関数の使い方 – 2進数を10進数に変換する
- HEX2DEC関数の使い方 – 16進数を10進数に変換する
- OCT2DEC関数の使い方 – 8進数を10進数に変換する
- DEC2HEX関数の使い方 – 10進数を16進数に変換する
