チェックデジットとは何か
チェックデジットはバーコード番号の最後の桁です。これは任意ではなく、固定のアルゴリズムを使って他のすべての桁から計算されます。スキャナーがバーコードを読み取ると、スキャンした桁からチェックデジットがどうあるべきかを再計算し、実際に読み取った桁とその値を比較します。一致すればスキャンが受け入れられます。一致しなければ、スキャナーはその読み取りをスキャンミスの可能性があるとして拒否します。
これはシンプルながら効果的なエラー検出メカニズムです。ほとんどのスキャンミスは1桁の誤読みを生み出し、誤った桁はほぼ常に誤ったチェックデジット計算を生み出し、それをスキャナーが検出します。
どのバーコード形式がチェックデジットを使用するか
GS1バーコードファミリー(EAN-13・UPC-A・EAN-8・ISBN-13・GTIN-14)はすべて同じチェックデジットアルゴリズムを使用します。この一貫性は意図的なもので、単一のスキャナーがあらゆるGS1形式のバーコードを検証できます。
Code 128とCode 39にもチェックデジットの仕組みがありますが、Code 39ではオプションで異なるアルゴリズムを使用します。
GS1チェックデジットアルゴリズム
GS1モジュロ10アルゴリズムは以下のように機能します:
- チェックデジット(最後の桁)を除くすべての桁を取ります。
- 右端の桁から始めて、各桁に1と3の重みを交互に割り当てます(右から位置1は重み3、位置2は重み1、位置3は重み3…というように)。
- 各桁にその重みを掛けてすべての結果を合計します。
- 合計を10で割ります。チェックデジットは10から余りを引いた値です。余りが0の場合、チェックデジットは0です。
EAN-13基底番号の例:400638133393
| 右からの位置 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |---|---|---|---|---|---|---|---|---|---|---|---|---| | 桁 | 4 | 0 | 0 | 6 | 3 | 8 | 1 | 3 | 3 | 3 | 9 | 3 | | 重み | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | | 積 | 4 | 0 | 0 | 18 | 3 | 24 | 1 | 9 | 3 | 9 | 9 | 9 |
合計:4+0+0+18+3+24+1+9+3+9+9+9 = 89
余り:89 mod 10 = 9
チェックデジット:10 - 9 = 1
完全なEAN-13:4006381333931
ソフトウェアなしでチェックデジットを検証する
13桁のEAN-13番号があってそれが正しいかどうかを確認したい場合:
- 最後の桁(チェックデジット)を分離します。
- 最初の12桁にアルゴリズムを適用します。
- 計算したチェックデジットと最後の桁を比較します。一致すれば番号は有効です。
チェックデジット確認ツールの使い方
このサイトのバーコードチェックデジット確認ツールがこれを自動的に処理します。バーコード番号を入力し、形式(EAN-13・UPC-A・EAN-8・ISBN-13)を選択すると、ツールが以下を教えてくれます:
- 完全な番号(EAN-13の場合13桁)を入力した場合:チェックデジットを検証して、正しいかどうかを表示します。
- チェックデジットなしの基底番号(EAN-13の場合12桁)を入力した場合:正しいチェックデジットを計算して表示します。
ツールはステップごとの計算も表示するので、計算の過程を確認できます。
これが重要になる一般的なシナリオ
転記ミス。 紙に書かれた商品番号があるが、正しくコピーされたかどうかわからない。チェッカーに入力してチェックデジットが他の桁と一致しているかどうかを確認してください。
データベースの検証。 サプライヤーからインポートされた商品バーコードのスプレッドシートがある。チェックデジット検証を実行して入力ミスで入力されたものを見つけてください。
商品参照からバーコードを構築する。 12桁の基底番号があって完全な13桁のEAN-13が必要な場合。チェッカーがチェックデジットを計算します。テスト用のランダムなバーコード番号ジェネレーターを使用する場合でも役立ちます。バーコードがエラーなくスキャンするためには構造的に有効なチェックデジットが引き続き必要です。
印刷しようとしているバーコードを確認する。 GS1企業プレフィックスを使って自分のバーコードを生成している場合、大量印刷を確定する前にチェックデジットが正しいことを確認してください。チェックデジットが間違っているバーコードはそれを検証するすべてのスキャナーで拒否されます。番号が有効であることを確認したら、EAN-13バーコードジェネレーターまたはUPC-Aバーコードジェネレーターを使って完成したバーコードを生成・プレビューできます。
正しいチェックデジットがバーコードの登録を意味しない場合
有効なチェックデジットは番号が構造的に正しいことを意味します。番号がGS1に登録されている・実際の商品に割り当てられている・または何らかの小売業者の商品データベースに認識されているということは意味しません。それらは完全に別のシステムです。
偽のバーコード(登録されたGS1プレフィックスではなく任意または乱数で生成されたもの)はチェックデジット検証を通過し、正しくスキャンされます。ただし、バーコードで商品を検索する小売業者データベースでは「不明な商品」として返されるだけです。