ホーム/コーディング知識/バーコードの基礎/EAN-13 チェックデジット算出アルゴリズム
バーコード基礎 · 読了時間 4 分
バーコードの基礎内容は審査済み

EAN-13 チェックデジットはどのように計算されるのか

最初の 12 桁を「1、3、1、3…」と交互に重み付けして合計し、その結果の 10 に対する補数を取ります——チェックデジットはこのように求められます。これは商品が本物であることを保証するものではありませんが、ほとんどの入力ミスや印刷エラーを防ぐことができます。

导读摘要:本記事では EAN-13 チェックデジットの mod10 計算過程を段階的に実演し、重み付けの順序が「3、1」ではなく「1、3」である理由、およびチェック通過が意味すること・意味しないことを説明します。文末ではオンラインツールで任意の番号を再計算できます。
01

ステップ1:最初の 12 桁を交互に重み付け

EAN-13 は全 13 桁で、最後の 1 桁がチェックデジット、最初の 12 桁がデータ桁です。計算時は 1 桁目から開始し、奇数桁(第 1、3、5…桁)は 1 を掛け、偶数桁(第 2、4、6…桁)は 3 を掛け、その後 12 個の積を合計します。注意:左端の 1 桁目から数え、右からではありません。

02

ステップ2:補数を求めてチェックデジットを算出します

前のステップの合計を10で割った余りを求め、さらに10からその余りを引いた結果を再度10で割った余りを求めます。得られた一桁の数字がチェックデジットです。式は (10 − 合計 mod 10) mod 10 と表され、末尾で再度 mod を取るのは、余りが0のときに10となるケースを処理するためです。

03

なぜ重みが1と3なのか

重み1/3を交互に設計することで隣接する桁の重みが異なり、「隣り合う2つの数字を書き間違える」という最も一般的な人為的ミス(例:12を21と見る)がほぼ必ず加重和を変化させ、チェックデジットで検出されます。これがチェックデジット設計の核心的な目的です。暗号化ではなく、エラー検出です。

04

チェックが通ることは何を意味するのか

ただ一つのことだけを意味します。この数字列の構成が合法的である、つまり規則に従って生成されたGTINである可能性があるということです。それはいいえこの番号がすでにいずれかの企業に割り当てられていることを示すものではなく、いいえ商品が真正品であることを示すものでもなく、いいえ番号がGS1データベースに存在することを示すものでもありません。帰属を確認するには会員組織の登録情報を照会する必要があり、真偽を判断するにはブランド側の防偽手段が必要です。これは多くの記事が混同している点です。

要点早見表

そのまま抜粋できる重要な結論。

要点 01

アルゴリズムの核心3文

左から奇数桁×1、偶数桁×3で合計し、(10 − 合計 mod 10) mod 10 を求めます。

要点 02

重み設計が防ぐのは転置エラー

隣接する桁の重みが異なるため、「数字の書き間違い」という高頻度のエラーを逃れられません。

要点 03

チェック通過 ≠ 番号有効

形式が合法であることは合法の可能性を示すだけで、割り当て済みであることや商品が真正であることは示しません。

要点 04

手入力でのチェックデジット算出は高リスクな作業です

誤るとスキャンできず、さらに印刷工程に進むとパッケージ全体が廃棄となります。

データ対照

位序数字重み積
1616
29327
3010
4133
5212
6339
7414
85315
9616
107321
11818
129327
合計——128
補数(10 − 128 mod 10)mod 10——2

図示

EAN-13 チェックデジットのデモ

EAN-13 チェックデジットのデモ実際のコードによるレンダリング
6901234567892

例 690123456789 はデモ用の先頭 12 桁であり、チェックデジットはアルゴリズムにより導出されます。結果の番号は特定の企業に属するものではありません。

用語解説

本文で扱う専門用語。

mod10

mod 10 演算は、10 で割った余りを取ります。GS1 シリーズのチェックデジットはすべて mod10 に基づいています。

加重和

各桁の数字にそれぞれの重みを掛けた総和であり、チェック計算の中間値です。

転置エラー

隣接する 2 桁の数字の順序が逆になることで、手入力で最も発生しやすいエラーの一つです。

関連Q&A

計算結果が 10 になった場合はどうすればよいですか?+
このようなケースは正しい結果には現れません。式の最後の mod 10 により 10 は 0 に変換されます。手計算で 10 になった場合は、最後の余りを取るステップが抜けていないか確認してください。
UPC-A のアルゴリズムも同じですか?+
構造は同じですが、重み付けの順序が逆です。UPC-A は左から奇数位に 3、偶数位に 1 を掛けます。これが同じバーコードでも異なるアルゴリズムでは異なる結果となる理由です。
チェックデジットは自分で自由に入力できますか?+
できません。チェックデジットはデータ桁の関数であり、いずれかのデータ桁を変更するとチェックデジットも再計算が必要です。番号の編成が完了した後は、まずツールで一括検証してから印刷に回してください。
この問題は必ず代理店に依頼しなければなりませんか?+
必須ではありません。対応する会員組織に直接申請することも可能です。代理店の価値は、号段の選択、番号の編成、書類の確認、およびその後の変更・更新の継続的な管理にあります。委託するかどうかは、お客様の時間コスト次第です。
内容に記載されている数字はそのまま使用できますか?+
本文中に記載されているバーコードは、すべて GS1 規則に基づいて生成されたデモ番号であり、構造は合法ですが、いかなる企業にも属しません。実際の商品には絶対に直接使用しないでください。正式なコードは、登録により取得したコードセグメントに基づいてご自身で編成する必要があります。
どのくらいで結果が得られますか?+
各会員組織の受理期間は異なります。当サイトでは、確認されていない日数のお約束はいたしません。ご要望を提出後、コーディングコンサルタントが当期の受理進捗に応じて各ノードを同期いたします。

権威ある情報源と説明

本文の内容は、以下の公開標準および機関規範に基づいて整理されており、ご自身で再確認いただけます。

情報源 01

GS1 一般仕様(General Specifications)

GS1 は世界の商品コード体系を管理する国際組織であり、その一般仕様は GTIN、GLN、SSCC などのコード構造、チェックデジットのアルゴリズム、およびシンボルの印刷要件を規定しています。

情報源 02

オープンソースデコーダーエコシステム(ZXing / zxing-cpp / zbar)

当サイトのすべてのバーコード例は、オープンソースデコーダーによる読み戻し検証を経ており、ご自身で再確認いただけます。「見た目はそれらしいがスキャンできない」図の掲載を避けています。

内容に関する声明:本文はコーディング知識に関する一般的な説明であり、具体的な金額、日数の約束、法令条項番号は含まれていません。具体的な市場やプラットフォームの当期要件については、該当機関およびプラットフォームの公式文書をご参照ください。本文中に登場するバーコードはすべて GS1 規則に基づいて生成されたデモ番号であり、いかなる企業にも属しませんので、実際の商品には使用しないでください。

関連記事

ご覧になっても具体的なご質問がありますか?

ナレッジページは一般的な問題を解決します。お客様の商品、市場、チャネルに具体的に関わる場合は、コーディングコンサルタントに直接お問い合わせいただく方が迅速です。

—