規格・技術仕様ガイド

JANコード(EAN-13)チェックデジットの計算方法と仕組み|モジュラス10・ウェイト3

商品パッケージやPOSレジでおなじみのJANコード(EAN-13 / EAN-8)。その末尾に配置されているチェックデジット(検査数字・CD)は、バーコードリーダーの誤読や入力ミスを検知するための極めて重要な数字です。本記事では、標準規格である「モジュラス10・ウェイト3」の計算手順、手計算の具体例、Excelでの自動算出式、トラブル防止のポイントをわかりやすく解説します。

目次

1. チェックデジット(検査数字)とは?役割と重要性

チェックデジット(Check Digit / 検査数字)とは、数字列の最後に付加される「誤り検出用の数字」です。

バーコードスキャナーがPOSレジでJANコードを読み取る際、印刷の擦れや手ブレ、汚れによって数字が1文字ずれてしまったり、隣り合う数字が入れ替わってスキャンされるリスクがあります。チェックデジットは、読み取った12桁の数字から決められた算術式に基づいて末尾の数字をリアルタイム検証し、「正常にスキャンできたか」「データの欠落がないか」を瞬時に判断する役割を果たしています。

✓ チェックデジットの主なメリット
  • 1文字の誤読(例: 5を6と読み間違う)を100%検出
  • 隣接する数字の転置エラー(例: 12を21と読み間違う)を高精度に検出
  • POSレジの二重登録・誤清算トラブルを未然に防止

2. JANコード(13桁)の構造とチェックデジットの位置

一般的な標準JANコード(EAN-13)は、合計13桁の数字で構成されています。それぞれの桁は以下のような国際規格(GS1規格)に基づいた意味を持っています。

桁位置 名称 説明・役割
1〜2桁目(または3桁) 国コード (Prefix) 日本は「45」または「49」が割り当てられています。
1〜9桁目(または7桁) GS1事業者コード GS1 Japan(流通システム開発センター)からメーカー毎に貸与されるコード。
10〜12桁目(または8〜12桁) 商品アイテムコード メーカーが商品ごとに自由に設定する番号。
第13桁目(最末尾) チェックデジット (CD) 前12桁から「モジュラス10・ウェイト3」で自動算出される検証数字。

※ 自分でJANコードを発番する際は、1〜12桁目を決めた後に、計算式で第13桁目を求めて結合します。

3. 【計算式】モジュラス10・ウェイト3の計算手順

JANコードのチェックデジットは、JIS規格(JIS X 0507)およびGS1国際標準によって「モジュラス10・ウェイト3(Modulus 10, Weight 3)」という方式で計算することが定められています。

計算の4つのステップ(標準13桁の場合)

1
偶数桁の数字をすべて足し、3倍する

左から見て「2, 4, 6, 8, 10, 12番目」の数字を取り出して足し算し、その合計値に「3」を掛けます(ウェイト3)。

2
奇数桁の数字をすべて足す

左から見て「1, 3, 5, 7, 9, 11番目」の数字を取り出して足し算します(ウェイト1)。

3
ステップ1とステップ2の結果を合算する

「(偶数桁の和 × 3) + 奇数桁の和」を計算して合計値 (TOTAL) を求めます。

4
10の倍数から合計値の一の位を引く

合計値の1の位の数字を「10」から引いた値がチェックデジットとなります。(※合計値の1の位が「0」の場合は、チェックデジットも「0」になります)。

4. 具体例で学ぶ:13桁JANコードの手計算シミュレーション

それでは、実際にテスト用データ「490123456789」のチェックデジットを計算してみましょう。

対象データ(12桁): 4 9 0 1 2 3 4 5 6 7 8 9

■ 偶数桁の数字: 9, 1, 3, 5, 7, 9
  和 = 9 + 1 + 3 + 5 + 7 + 9 = 34
  3倍 = 34 × 3 = 102 … ①
■ 奇数桁の数字: 4, 0, 2, 4, 6, 8
  和 = 4 + 0 + 2 + 4 + 6 + 8 = 24 … ②
■ 合計値の算出: ① + ②
  合計 = 102 + 24 = 126
■ チェックデジットの算出:
  合計「126」の一の位は「6」
  10 - 6 = 4 (チェックデジットは「4」)

したがって、完成する13桁の完全なJANコードは「4901234567894」となります。

5. 短縮8桁(EAN-8)のチェックデジット計算方法

缶飲料や文房具など、印字スペースが小さい商品に使われる短縮8桁JANコード(EAN-8)の場合、ウェイトをかける位置が13桁と逆(奇数桁に3を掛ける)になります。

8桁JANコード(前7桁から第8桁目を求める)の計算式:
  1. 奇数桁(1, 3, 5, 7番目)の和を求め、3を掛ける。
  2. 偶数桁(2, 4, 6番目)の和を求める。
  3. 2つの結果を足し合わせ、合計値の一の位を10から引く。

6. Excel(エクセル)でチェックデジットを自動計算する関数式

社内の商品マスター管理やExcelシート上で大量の12桁データからチェックデジットを一括計算したい場合は、以下の数式をそのままセルに貼り付けて使用できます。

/* セルA2に12桁の数字が入力されている場合(13桁目のみを出力) */ =MOD(10 - MOD((MID(A2,2,1)+MID(A2,4,1)+MID(A2,6,1)+MID(A2,8,1)+MID(A2,10,1)+MID(A2,12,1))*3 + (MID(A2,1,1)+MID(A2,3,1)+MID(A2,5,1)+MID(A2,7,1)+MID(A2,9,1)+MID(A2,11,1)), 10), 10)
/* 12桁の後ろにチェックデジットを結合して完全な13桁にする場合 */ =A2 & MOD(10 - MOD((MID(A2,2,1)+MID(A2,4,1)+MID(A2,6,1)+MID(A2,8,1)+MID(A2,10,1)+MID(A2,12,1))*3 + (MID(A2,1,1)+MID(A2,3,1)+MID(A2,5,1)+MID(A2,7,1)+MID(A2,9,1)+MID(A2,11,1)), 10), 10)

7. よくある計算ミスとスキャナー読み取りエラー対策

チェックデジットの計算やバーコード印刷において、現場で頻発するトラブル事例と予防策を紹介します。

⚠ 1. 偶数桁と奇数桁のウェイト指定ミス

13桁JANコードでは「偶数桁に3を掛ける」のに対し、8桁JANコードでは「奇数桁に3を掛ける」仕様となっています。混同するとチェックデジットが一致しなくなります。

⚠ 2. 差が「10」のときの処理ミス(0にする)

合計値の一の位が「0」の場合、「10 - 0 = 10」となりますが、チェックデジットは1桁の数字であるため「0」とするのが正解です。「10」と設定すると14桁になってしまい読み取れません。

⚠ 3. クワイエットゾーン(左右の余白)不足

計算が合っていても、バーコード画像の左右に十分な余白(マージン)がないと、スキャナーがチェックデジットのバーを正常に認識できません。

チェックデジット自動計算!無料のJANコード作成ツール

手計算の手間やミスは一切不要!当サイトのジェネレーターなら、12桁または13桁を入力するだけでチェックデジットを自動判定・補正し、商用利用可能な高精細SVG・PNGバーコードを瞬時に生成できます。

JANコード作成ツールを開く Excel一括作成ツールはこちら