Home · Learn · UPCチェックディジット計算機と式

UPCチェックディジット計算機と式

UPC-Aバーコードの12桁目はスキャンエラーを検出するチェックサム。正確にどう計算されるか、計算例とともに — 最初の11桁を入力するとジェネレーターが自動計算。

UPC-A example

全UPC-Aバーコードはチェックディジットで終わる — 12桁目、最初の11桁から計算。目的:人間がバーコードを入力するとき一桁転置エラーを捕捉。レジ係や倉庫作業員が一桁間違えると、チェックディジットが一致せずシステムが入力を拒否。EAN-13(13桁目)とEAN-8(8桁目)も同じ式で同様に機能。

チェックディジットを手計算する必要はほぼない — 任意のバーコードジェネレーター(当方含む)が最初の11桁入力時に行う。だがAmazonやWalmartの「GTIN無効」エラーをデバッグするとき、またはデータベースから取得したUPCを検証するとき計算理解が有用。

GS1 Mod 10チェックディジット式

ステップ1:UPCの最初の11桁を取る。ステップ2:奇数位置桁(左から1、3、5、7、9、11番目)に3、偶数位置桁(2、4、6、8、10番目)に1を掛ける。ステップ3:全積を合計。ステップ4:合計に加えて10の倍数になる最小数を見つける。その数がチェックディジット。代数的に:チェックディジット = (10 − (合計 mod 10)) mod 10。二重「mod 10」は合計 mod 10 = 0のエッジケース(チェックディジットは0、10ではない)を処理。

計算例1:UPC 03600029145?

11桁:0, 3, 6, 0, 0, 0, 2, 9, 1, 4, 5。奇数位置(×3):0+6+0+2+1+5 = 14、×3 = 42。偶数位置(×1):3+0+0+9+4 = 16。合計 = 42 + 16 = 58。次の10の倍数は60。チェックディジット = 60 − 58 = 2。完全UPC:036000291452。実際のCharmin Ultra StrongトイレットペーパーUPC — Amazonでスキャンして検証。

計算例2:UPC 01234567890?

11桁:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0。奇数位置(×3):0+2+4+6+8+0 = 20、×3 = 60。偶数位置(×1):1+3+5+7+9 = 25。合計 = 60 + 25 = 85。次の10の倍数は90。チェックディジット = 90 − 85 = 5。完全UPC:012345678905。チュートリアルで使われる標準「サンプルUPC」。

計算例3:合計が既に10の倍数のとき

11桁:8, 1, 4, 1, 4, 1, 0, 6, 0, 4, 9。奇数(×3):8+4+4+0+0+9 = 25、×3 = 75。偶数(×1):1+1+1+6+4 = 13。合計 = 75 + 13 = 88。次の10の倍数は90。チェックディジット = 2。完全:814141060492。自分で試す:桁0,0,0,0,0,0,0,0,0,0,0 — 奇数和0、偶数和0、合計0、チェックディジット = (10 − 0) mod 10 = 0。全ゼロUPCはチェックディジット0。

EAN-13とEAN-8は異なる位置重みで同じ式を使用

EAN-13:12桁を取り、左から×1で始めて×1と×3を交互(UPC-Aの逆)。EAN-8:7桁、左から×3で始めて×3と×1を交互。ITF-14:13桁、左から×3で始めて交互(EAN-8ロジックと同じ)。「mod 10」モジュラスは全形式で同一 — 位置重みだけが反転。UPC-AをGTIN-14に変換(先頭ゼロを2つ追加)しても同じチェックディジットを保つ理由 — 重みパターンが再整列。

チェックディジットだけでは不十分なとき

Mod 10式は全一桁エラーとほとんどの隣接桁転置を捕捉するが、桁が5異なる入れ替え(例:0↔5、1↔6、2↔7、3↔8、4↔9)は捕捉しない。キーパンチオペレーターが036000291452の代わりに360200291452と打ってもチェックディジットは通る — つまり「チェックディジット有効」は必要だが十分でない。次の検証層はGS1 GEPIR検索:有効なチェックディジットでも企業接頭辞はライセンス会社にさかのぼる必要。これがAmazon、Walmart、Targetが「GTIN無効」提出を拒否するとき検証するもの。

FAQ

UPCチェックディジットはどう計算する?

最初の11桁を取る。奇数位置(左から1、3、5、7、9、11番目)の桁に3を掛ける。偶数位置(2、4、6、8、10番目)の桁に1を掛ける。全積を合計。チェックディジットはこの合計に加えて10の倍数を生む最小数。代数的に:チェックディジット = (10 − (合計 mod 10)) mod 10。

UPC 012345678905のチェックディジットは?

5。11桁01234567890は奇数位置和0+2+4+6+8+0=20×3=60、偶数位置和1+3+5+7+9=25、合計85。次の10の倍数は90。チェックディジット = 90−85 = 5。

なぜUPCにチェックディジットがある?

データ入力とスキャンエラーを検出するため。チェックディジットは全一桁打ち間違いとほとんどの隣接桁転置(例:21の代わりに12と打つ)を捕捉。POSや倉庫荷受けで、スキャナーや入力システムは最初の11桁からチェックディジットが正しく計算されない12桁番号を拒否 — 不良データの在庫システムへの進入を防ぐ。

EAN-13チェックディジットはUPCと同じように計算?

ほぼ。EAN-13は同じMod 10アルゴリズムだが重みを逆方向に交互 — 奇数位置×1、偶数×3(UPC-Aは奇数×3、偶数×1)。EAN-13は入力12桁、UPC-Aは11桁なので計算は同等になる。UPC-A 012345678905を先頭ゼロ追加でGTIN-13(0012345678905)に変換しても、チェックディジットは5のまま — 重みパターンが正しく再整列。

UPCのチェックディジットが0になり得る?

はい。重み付き積の合計が既に正確な10の倍数のとき、チェックディジットは0(10ではない)。式(10 − (合計 mod 10)) mod 10がこのエッジケースを処理。例:重み付き和80のUPCは次の倍数も80、チェックディジット = (10 − 0) mod 10 = 0。

チェックディジットを自分で計算する必要がある?

いいえ — 全バーコードジェネレーターが計算する。最初の11桁(EAN-13は12桁)を入力するとジェネレーターがチェックディジットを付加しバーコードをレンダリング。当方ジェネレーターは自動で行う;チェックディジットを打つ必要なし。計算は「GTIN無効」エラーのデバッグや第三者DBから取得したUPCの検証時に重要。

Related generators

Need a real barcode now?

Generate a valid UPC-A barcode in seconds — no signup, no watermark. Free for casual use; paid plans from $9/mo for higher volume.

Related topics