JANコードとは

JANコードは、日本国内で流通する商品を識別するために使われているバーコードです。レジでの精算、在庫管理、受発注、棚卸しなど、商品を機械的に区別する場面で使われます。JANは Japanese Article Number の略で、国際的な規格名では EAN-13(13桁)と EAN-8(8桁)にあたります。規格そのものは同一なので、ツールの設定欄に「EAN-13」と書かれていれば、そこへJANコードをそのまま入力して構いません。

ここで押さえておきたいのは、JANコードは「商品を指し示す番号」であって「商品の情報を運ぶ入れ物」ではない、という点です。バーコードの中に商品名や価格が書き込まれているわけではありません。スキャナが読み取るのは13桁の数字だけで、その数字に紐づく商品名・価格・在庫はPOSや基幹システム側のデータベースが持っています。だからこそ番号の重複が致命的になり、番号を勝手に決めてはいけない仕組みになっています。

また、桁数の揃った数字を用意してバーコード画像にしただけでは、販売店のシステムに登録できるとは限りません。実際に商品へ付番して流通させる場合は、後述するGS1事業者コードの取得と、取引先が求める商品登録のルールを必ず先に確認してください。

JANコードの13桁の構成

標準タイプのJANコードは13桁です。左から順に「GS1事業者コード」「商品アイテムコード」「チェックデジット」の3つで構成され、最後の1桁を除いた12桁が商品を識別する本体部分になります。

GS1事業者コードと商品アイテムコード

GS1事業者コードは、事業者を識別するために貸与される番号です。日本の事業者に貸与されるコードは、先頭2桁が45または49で始まります。この先頭2桁を国コード(GS1プレフィックス)と呼び、「どこの国のGS1が発行した番号か」を示します。45または49で始まっていても「日本で製造された」という意味ではなく、「日本のGS1に登録した事業者の番号」という意味である点に注意してください。

商品アイテムコードは、貸与されたGS1事業者コードの範囲内で、事業者が自社の商品ごとに割り当てる連番です。ここで重要なのは、両者の桁数が固定ではないことです。12桁のうちGS1事業者コードが何桁を占めるかによって、商品アイテムコードに使える桁数が決まります。

GS1事業者コード商品アイテムコードチェックデジット合計
7桁5桁1桁13桁
9桁3桁1桁13桁
10桁2桁1桁13桁

この表は「事業者コードの桁数+アイテムコードの桁数+1=13」という単純な引き算を示したものです。どのタイプが自社に貸与されるか、申請できるかはGS1 Japanの区分によって決まるため、実際の桁数は貸与された番号で確認してください。事業者コードが短いほど自由に使えるアイテムコードの枠が広く、逆に長いほど枠は狭くなります。

12桁と13桁の違い

バーコード作成ツールで「12桁を入れるのか、13桁を入れるのか」で迷うのは、この2つが同じ番号の別の姿だからです。12桁は「チェックデジットを付ける前の本体」、13桁は「チェックデジットまで付けた完成形」です。

  • 12桁=GS1事業者コード+商品アイテムコード。計算すれば13桁目が一意に決まります。
  • 13桁=上の12桁+チェックデジット。商品パッケージやカタログに印字されているのは通常こちらです。

取引先から受け取った番号が12桁だった場合、末尾が切り落とされているのではなく「チェックデジットは自分で計算して付けてください」という形で渡されていることがあります。逆に13桁で受け取った番号は、そのまま入力して検証にかけるのが安全です。本ツールでは12桁入力なら自動で13桁へ補完し、13桁入力なら末尾の整合性を検証して、合わない行に警告を出します。

EAN-8(8桁のJANコード)とは

EAN-8は、13桁のバーコードを印刷する面積が取れない小型商品向けの8桁の規格です。日本では「短縮タイプのJANコード」と呼ばれることもあります。ここで誤解が多いのですが、EAN-8は13桁のJANコードを短く切り詰めて作る番号ではありません。13桁とは別に、商品ごとに個別に割り当てを受ける番号です。13桁の一部を抜き出して8桁にする、といった作り方はできません。

共通しているのはチェックデジットの計算方式だけです。EAN-8では先頭7桁が本体、8桁目がチェックデジットになり、重みの掛け方はEAN-13と同じ「右端から3と1を交互に」というルールに従います。桁数が奇数(7桁)なので、左端から数えたときの重みの並びがEAN-13と逆になる点は、後述のExcel数式で具体的に確認できます。

JANコードのチェックデジットの計算方法

13桁JANコードのチェックデジットは、先頭12桁からモジュラス10ウェイト3(10を法とし、重みに3と1を使う方式)で求めます。手順は次のとおりです。

  1. 先頭12桁を用意し、右端から1桁ずつ見ていきます。
  2. 右端の桁に3、その左隣に1、さらにその左に3……と、3と1を交互に掛けます。
  3. 掛けた結果をすべて足して合計を出します。
  4. 合計を10で割った余りを求めます。
  5. チェックデジットは「10 − 余り」です。余りが0のときはチェックデジットも0にします。

「奇数番目を足して、偶数番目を3倍して足す」と説明されることもあります。12桁のように桁数が偶数のときは、左から数えた偶数番目が右端から数えた3の重みと一致するため、どちらの説明でも同じ答えになります。ただしEAN-8のように桁数が奇数の場合は左右で対応がずれるので、迷ったら本ページのとおり右端を起点に数えてください。

計算例1:13桁JANコード(本体 490123456789)

本体12桁が 490123456789 の場合を、1桁ずつ書き下します。右端の9から始めて、重みは3、1、3、1……と交互です。

右からの位置数字重み積
19327
2818
37321
4616
55315
6414
7339
8212
9133
10010
119327
12414

積の合計は 27+8+21+6+15+4+9+2+3+0+27+4=126 です。126を10で割ると商が12、余りが6。10から余り6を引いて 4 がチェックデジットになります。完成する13桁は 4901234567894 です。

同じ手順を「奇数番目・偶数番目」の言い方で確認すると、左から奇数番目(4,0,2,4,6,8)の合計が24、偶数番目(9,1,3,5,7,9)の合計が34で、34×3=102。24+102=126となり、上の表と一致します。

計算例2:EAN-8(本体 9638507)

EAN-8は本体が7桁です。右端の7から重み3で始めます。7×3=21、0×1=0、5×3=15、8×1=8、3×3=9、6×1=6、9×3=27。合計は21+0+15+8+9+6+27=86 です。86を10で割った余りは6なので、10−6=4。完成する8桁は 96385074 になります。

ここで左端を起点に数え直すと、9(1桁目)に3が掛かっています。13桁のときは左端の1桁目に1が掛かっていました。桁数が奇数か偶数かで左右の対応が入れ替わるのは、このためです。

Excelでチェックデジットを計算する数式

手計算を繰り返すより、表計算で一括処理するほうが現実的です。セルA2に本体12桁が文字列として入っている前提で、次の数式を使えます。配列定数を使いますが SUMPRODUCT なので、Ctrl+Shift+Enterは不要です。

=MOD(10-MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:12")),1)*1,{1;3;1;3;1;3;1;3;1;3;1;3}),10),10)

配列定数 {1;3;1;…} は左端から数えた重みです。12桁は偶数桁なので左端が1、右端が3になります。EAN-8の本体7桁では重みの並びが逆になるため、次のように書き換えます(A2に7桁)。

=MOD(10-MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:7")),1)*1,{3;1;3;1;3;1;3}),10),10)

13桁を組み立てて別セルに出したいときは、本体と結合します。=A2&MOD(10-MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT("1:12")),1)*1,{1;3;1;3;1;3;1;3;1;3;1;3}),10),10) のように書けば、13桁がそのまま得られます。

表計算でよく起きる事故が、先頭ゼロの消失です。セルの表示形式が「標準」のままだと 049012345678 が 49012345678 の11桁として扱われ、計算結果がまるごと狂います。あらかじめ列の表示形式を「文字列」にしてから貼り付けるか、数値のまま扱う場合は TEXT(A2,"000000000000") で12桁へ揃えてから MID に渡してください。指数表記(4.90123E+11)に化けている列も同じ原因です。CSVでの受け渡し手順はExcel・CSV連携の解説にまとめています。

インストアコード(20〜29で始まる番号)

インストアコードは、店舗や事業所が自分の管理範囲の中だけで使う番号です。日本では20〜29で始まる範囲が店内利用向けとして扱われており、GS1事業者コードの貸与を受けなくても使えます。量り売りの惣菜や精肉、値引き商品、店内加工品、社内備品など、外部に流通しないものに向きます。

ただし「20〜29で始めれば自由に番号を作れる」という理解は危険です。実際に決まっているのは先頭の範囲だけで、残りの桁をどう使うかは各店舗・各POSベンダーの運用規約によります。よくある運用としては、部門コードを数桁、商品コードを数桁、価格を数桁埋め込み、最後にチェックデジットという構成ですが、価格を埋め込む桁数も、価格を税込にするか税抜にするかも、システム側の設定次第です。

したがって、店内用の番号を作るときの順番は次のようになります。

  1. 利用するPOS・在庫管理ソフトの仕様書で、インストアコードの桁構成を確認する。
  2. その構成に沿って、重複しない本体数字を決める。
  3. 本ツールでEAN-13またはEAN-8として生成し、チェックデジットまで含めた完成形を確認する。
  4. 実機のレジとスキャナでテストし、読み取った値が意図した商品・価格に結び付くところまで確認する。

インストアコードは外部の取引先には通用しません。卸や小売へ納品する商品には使えないため、「店内用」と「流通用」を台帳の上で明確に分けて管理してください。

自社商品にJANコードを付けるには(GS1事業者コードの取得)

自社商品に正式なJANコードを付けて流通させるには、GS1 Japan(一般財団法人流通システム開発センター)へ申請し、GS1事業者コードの貸与を受ける必要があります。窓口はGS1 Japanのウェブサイトで、申請区分・必要書類・登録申請料・更新の要否はそこで案内されています。貸与であって買い取りではないため、有効期間があり、継続して使うには更新の手続きが必要になります。金額や期間は改定されることがあるので、必ず申請時点の公式案内で確認してください。

事業者コードが手元に来たら、社内での番号管理が始まります。やるべきことは次の3つです。

  1. 商品アイテムコードの採番ルールを決める。連番で振るのが最も事故が少なく、意味を持たせた番号(分類を桁に埋め込むなど)は枠が足りなくなった時点で破綻しやすくなります。
  2. 採番台帳を1本にする。誰が何番を使ったかを1か所で管理しないと、同じ番号を別商品に振る事故が起きます。JANコードの重複は、取引先のシステム側で在庫が混ざるため影響が大きい種類のミスです。
  3. 別商品として扱う単位を決めておく。商品名、内容量、色、サイズ、入数など、取引の上で区別する必要がある仕様が変わる場合は、原則として別のアイテムコードが必要です。同じ番号のまま中身を変えると、発注・在庫・返品の突き合わせが合わなくなります。

なお、本ツールはあくまで数字の生成・検証とバーコード画像の作成を補助するものです。GS1事業者コードを発行したり、商品情報を流通データベースへ登録したりする機能はありません。

バーコードシートでJANコードを作る手順

  1. JANコード作成ページを開き、コード種別が「EAN-13(JAN)」または「EAN-8」になっていることを確認します。
  2. 入力欄に、12桁の本体、またはチェックデジットを含む13桁を1行ずつ貼り付けます。商品名・価格・枚数を付けたい場合は、コードの後ろをカンマまたはタブで区切って4列にします。
  3. 「JAN/EANのチェックデジットを自動計算・検証」がオンなら、12桁は13桁へ補完され、13桁は末尾が検証されます。
  4. 生成結果に出る「生成可能」「警告」「エラー」の件数と行番号を確認します。チェックデジットが合わない行は入力値を残したまま警告になります。
  5. 問題がなければカードごとにPNG保存するか、PNG一括保存(ZIP)でまとめて書き出します。ラベル用紙へ並べる場合はラベル印刷で用紙型番と開始位置を設定します。

印刷サイズとクワイエットゾーンの目安

JANコードは、印刷サイズと余白の条件を満たさないと読み取り率が落ちます。EAN-13のシンボルには標準サイズが定められており、実運用では標準サイズを基準に一定の範囲で縮小・拡大して使います。無制限に小さくできるわけではないため、狭いラベルに押し込む場合は先に倍率の下限を確認しておくのが安全です。

もうひとつ重要なのがクワイエットゾーン、つまりバーコードの左右に必要な空白です。ここに文字や枠線、別の印刷物が入り込むと、スキャナがバーコードの開始位置と終了位置を判別できず、読み取りに失敗します。EAN-13では、左側のほうが右側より広い余白を必要とします。目安としては、左側がモジュール幅(最も細いバーの幅)の11倍程度、右側が7倍程度とされています。デザイン上「余白が空きすぎている」と感じても、この空白は削らないでください。

実務で効く確認ポイントは次のとおりです。

  • 印刷ダイアログの「用紙に合わせる」「拡大縮小」を100%(等倍)にする。ここが自動調整になっていると、画面で合わせた倍率が印刷時に変わります。
  • バーコードの上下も切り詰めすぎない。バーの高さが足りないと、斜めからの読み取りに弱くなります。
  • 下端の数字(人が読むための文字)を枠線で切らない。番号を目視確認できることが、トラブル時の切り分けに効きます。
  • 背景色との組み合わせに注意する。赤い背景や金銀の光沢面は、読み取り機の光源によっては白と同じに見えます。地色は白、バーは黒が最も安全です。

用紙型番ごとの面付け寸法はラベル用紙の解説にまとめています。

JANコードが読み取れないときのチェック手順

「作ったバーコードが読めない」という場合、原因は大きく分けて「番号の問題」「印刷の問題」「システム側の問題」の3つです。次の順で切り分けると早く原因にたどり着けます。

  1. 画面上で読めるか。まずディスプレイに表示した状態でスキャナを当てます。ここで読めれば、番号とバーコード生成は正しく、原因は印刷側にあります。
  2. 普通紙に等倍で印刷して読めるか。読めるなら、ラベル用紙の材質(光沢・透明・銀色)か、ラベルプリンタの濃度設定が原因です。
  3. 読み取れた数字が入力値と一致するか。一致しているのに業務システムでエラーになるなら、バーコードではなく商品マスタへの登録漏れです。
  4. チェックデジットの警告が出ていないか。本ツールで警告が出た行は、元データの13桁自体が誤っている可能性があります。
  5. スキャナ側で規格が有効か。機種によってはEAN-8やアドオンコードの読み取りが初期状態で無効になっています。設定バーコードでの有効化が必要な場合があります。

印刷の問題で多いのは、拡大縮小の自動調整、インクのにじみによるバーの太りすぎ、トナー不足によるかすれ、そしてクワイエットゾーンの不足です。にじみが原因の場合はバーが太って見えるので、印刷物を拡大鏡で見れば判別できます。

よくある質問

JANコードとEANコードは違うものですか?

規格としては同じものです。EAN-13/EAN-8という国際的な呼び方に対して、日本国内での呼称がJANコードです。桁数も計算方法も同じなので、EAN-13と書かれた設定欄にJANコードをそのまま入力できます。

JANコードの12桁と13桁はどちらを入力すればよいですか?

どちらでも入力できます。12桁はチェックデジットを除いた本体部分で、自動計算がオンなら13桁目が補完されます。すでに13桁ある場合はそのまま入力すると、末尾1桁が計算値と一致するかを検証します。

JANコードのチェックデジットはどう計算しますか?

先頭12桁を右端から見て、3と1の重みを交互に掛けて合計します。その合計を10で割った余りを10から引いた値がチェックデジットです。余りが0のときはチェックデジットも0になります。詳しい手順と計算例はチェックデジットの解説にもあります。

JANコードは自分で好きな番号を決めてよいですか?

店内だけで使うインストアコードを除き、流通させる商品のJANコードは自由に決められません。GS1 Japanへ申請してGS1事業者コードの貸与を受け、その範囲内で商品アイテムコードを割り当てます。

インストアコードはどの番号で始まりますか?

日本では20〜29で始まる範囲が店内利用向けとして扱われます。ただし桁の使い方や価格を埋め込むかどうかは店舗のPOSの仕様で決まるため、必ず利用するシステムの規約を先に確認してください。

EAN-8はJANコードから短くして作れますか?

できません。EAN-8は13桁のJANコードを縮めた番号ではなく、小さな商品向けに個別に割り当てられる別の番号です。チェックデジットの計算方法だけが同じ考え方になります。

印刷したJANコードが読み取れないときは何を確認しますか?

印刷倍率が縮みすぎていないか、左右のクワイエットゾーンが確保されているか、バーがにじんだりかすれたりしていないか、下端の数字が切れていないかを順に確認します。まず普通紙に等倍で試し刷りして読み取れるかを見ると、原因を絞り込めます。