皆さんは、商品についているバーコードについてどの程度の知識がありますか?
日本の商品にバーコードがついて40年以上がたち、今ではコンビニやスーパーで売られているほとんどの商品にバーコードがついています。バーコードについて一般の人が詳しく知らないのは当然のことですが、商売をしている人や商品管理をしている人がバーコードすら作れないのはいかがなものかと思ってしまいます。
バーコードを知っているふりをしていても、2~3分程度会話をすれば知識がないことはバレてしまいます。例えば、「インストア」「マスタ」「チェックディジット」のような用語はバーコードの知識がある人ならば100%知っています。
そこで、今回は、バーコード全般を説明すると膨大な量になりますので、商品に付けるバーコード(JANコード)について解説します。職場の勉強会や研修等でご活用ください。
目次
- 1.バーコードは単なる黒い棒です
- 2.バーコードをExcelで読んでみよう
- 3.レジでバーコードを読む理由
- 4.バーコードで商品情報が出てくるのはなぜか?
- 5.バーコードの種類
- 6.JANの読み方1(JANコードとは何か)
- 7.JANの読み方2(統一JANコード)
- 8.JANの読み方3(インストアコード)
- 9.JANの読み方4(チェックデジット)
- 10.JANバーコードを印刷してみよう
1.バーコードは単なる黒い棒です
コンビニやスーパーのレジでバーコードを読むと、レジの画面に商品名や販売価格が表示されます。もっと高性能なレジは商品の画像や年齢制限の有無も表示されます。その様子を見て、一般の人はバーコードに詳細な商品情報や価格が埋め込まれているかのような錯覚に陥ってしまいます。
しかし、バーコードは、日本の紙幣やパスポートのような特殊な印刷をしているわけではありません。単なる黒色の線です。安いインクジェットプリンタでも印刷できます。
あの黒い線は4種類の太さがあります。たった4種類しか表現できない黒い線が30本しか並んでいないのに、どうやって、ひらがなの50音や大量の漢字、数字、記号を含んだ文章を表現できるのでしょうか? どう考えても商品情報を埋め込めるわけがありません。
よく見るとバーコードの下には数字が書いてあります。商品のバーコードは13桁の数字を「黒い棒」で表現しているだけなのです。
下の図をご覧ください。これは線の太さと0~9の数字の対応関係(イメージ)を表しています。実際にはもう少し複雑なルールで変換をしますが、黒い棒2本と白色の隙間で数字1つを表します。
バーコードは30本の黒い棒があり、この変換のルールに従って13個の数字を表しています。バーコードを読むことは、パソコンのキーボードで13桁の数字を入力するのと「まったく同じ」です。
2.バーコードをExcelで読んでみよう
(1)USBバーコードスキャナ
練習問題1
パソコンでExcelを表示した状態で、身の回りにある商品についているバーコードを読みなさい。
解説
黒い棒を数字として認識するには、黒い棒を数字に変換する機械が必要です。これをバーコードスキャナ(バーコード読み取り装置)といいます。
amazonや楽天などの通販サイトで「USB バーコードスキャナ」で検索してみましょう。パソコンのUSBの端子に差すだけで使えるバーコードスキャナは、ネットで6000円~12000円くらいで購入できます(中国製の安物はおすすめしません)。
スキャナをパソコンに接続します(スキャナを持っていない場合は後述)。機種によって異なりますが、接続して2~3分待つと準備ができて「ピ~~~~~」という音がします。
Excelを起動してA列を選択します。表示形式を「数値」にしておきます(これが重要です)。
そしてセルA1にカーソルを置きます。スキャナの横または裏側にバーコード読み取りボタンがあります。実際に商品についているバーコードを読んでみます。「ピッ」と音が鳴って画面には13桁の数字が表示されます。
ちなみに、Wordでも表示できます。
(2)表示形式を変える理由
Excelは、12桁以上の数字を入力すると「E」を使った指数表記に自動的に変換してしまう残念な機能があります。事前に「数値」にしておけばそれを防ぐことができます。15桁までであれば正常に表示できます。
*補足*
JANコードが0から始まる場合、先頭の0が消えてしまうため「数値」ではなく「文字列」にします。ただし、0から始めると表示形式以外にもややこしい問題があるため、許される限り先頭に0を使うのは避けたほうが良いです。通常は、4または2から始めます。
(3)スキャナの設定の変え方
バーコードスキャナはバーコードを読み取るボタンの他にボタンがありません。スキャナの「ピッ」という音の調節や、読み取った時にEnterやTabを入力するかどうかといった設定は、取扱説明書のバーコード表を読み取って設定を変えます。
(4)LEDで棒を読んでいる
バーコードスキャナの読み取りボタンを押すと、赤色LED発光ダイオードの光が照射されます(赤外線ではない)。そして、光センサーによって白と黒を判別して、バー(棒)をコード(数字)に変換しています。このような変換の仕方を「光学式」といいます。
バーコードの下に数字が印字されていますが、数字は読んでいないので無くてもかまいません。機械の不調でバーコードが読めなかったときに、直接13桁の数字を打つために印字されているだけです(後述)。
(5)世の中には便利なものがありまして・・・
スマホで「バーコードスキャナ」と検索すると、バーコードが読めるアプリが見つかります。さらに、有料でCSVにしてくれるアプリもあります。これは光学式ではなくカメラの画像認識機能で「棒の太さ」を「数字」に変換しています。
3.レジでバーコードを読む理由
(1)POSとバーコードは無関係
レジでバーコードを読むのは何のためかご存知でしょうか??
知ったかぶりの人は「POS」のためだと答えるでしょう。ちなみにPOSというのは、別の場所にレジの情報を集めるサーバがあり、サーバとレジが直接または間接的に専用のネットワークでつながっていて、リアルタイムで販売情報を分析できるシステムのことです。機器や回線の工事、システムの導入、人件費など全部あわせると一千万円単位の経費がかかります。
しかし、ファーストフード店やガソリンスタンドのように、レジでバーコードを読まない店にもPOSシステムはあります。最近ではコインランドリーや回転寿司屋にもPOSがあります。
商品の種類が多くなくバーコードを読む必要がない店にもPOSシステムはありますし、販売情報の分析をリアルタイムで行っている会社も多いです。日本で販売する商品やサービスのすべてにバーコードを付けなければいけないというわけではありません。
バーコードを使うのはPOSのためではありません。
バーコードが汚れて読みにくい場合は、バーコードを読む代わりに、印字されている13桁の数字をレジに打ちます。レジの店員が13桁の数字を打てばPOSは機能しますが、毎回、13桁の数字を打つのが大変だからバーコードを使っているだけなのです。
POSが無くても店員の負担を減らすためにバーコードを読むことはありますし、逆に、POSがあってもレジでバーコードを読まない店はたくさんあります。販売だけではなく在庫管理や商品の検索にバーコードを使う会社もあります。
(2)パソコンに数字を打っているだけ
POS対応レジを分解すると中身は「パソコンのようなもの」です。Windowsが主流だそうです。大事なことなのでもう一度言いますが、レジでピッピッとバーコードを読む作業はパソコンに13桁の数字を入力しているのと同じです。極端なことを言えば、Excelを入力端末としてPOSをすることも技術的には可能です。
4.バーコードで商品情報が出てくるのはなぜか?
(1)POS対応レジ
なぜ、レジでバーコードを読むと商品情報や販売価格が表示されるのでしょうか?
それは、13桁の数字が何の商品を表すかという一覧表がレジに保存されているからです。バーコードスキャナで読んだ黒い棒の情報は13桁の数字に変換されて、レジ本体に送られます。レジの内部には商品情報が保存されており、一覧表から探して情報を表示する機能が備わっています。
ところが、この一覧表は勝手に保存されることはありません。裏ではその商品データを一生懸命入力したり登録したりする社員がいて、新しい商品を販売するときには事前にその情報を新規登録しています(詳しくは後述)。もし、登録を担当している社員が新規登録を忘れていたら、レジに商品情報が表示されず、エラーになります。レジの人は首をかしげながら、13桁の数字を打つか、その他の商品?という扱いで手打ちで値段を打つしかありません。
(2)ハンディターミナル
飲食店の定員が、手に持っている機械でピコピコ入力しながら注文を受けることがあります。あの機械のことを「ハンディターミナル」といいます。
さらに、バーコードが読めるものを「バーコードハンディターミナル」といい、システム費用を含めるとだいたい10万~20万円くらいします。バーコードを読むと商品情報が表示されます。それはレジと同じで、ハンディターミナルの中に商品の一覧表が保存されているからです(ハンディターミナルに登録する社員が必ずいます)。
単なるバーコードスキャナは、バーコードを数字に変換するだけですが、バーコードハンディターミナルは、さらに商品情報を検索して表示する機能が備わっています。この場合も、もし、商品情報の登録を忘れていたら、ハンディターミナルには「エラー」と表示されます。
(3)Excelで商品情報を表示する
練習問題2
身の回りにある商品についているバーコードを読んだときに、Excelで商品名や販売価格が表示されるようにしなさい。
解説
Excelでバーコードを読むと13桁の数字が表示されます。13桁の数字しか表示されません。なぜなら、Excelには商品の一覧表(商品マスタといいます)が無いからです。
商品マスタはネット上に登録されているわけではなく、一般に公開されていないので、自動的に商品情報が出てくることは絶対にありません。
Excelで商品マスタを作ります。13桁の数字のほか、表示したい情報をリスト形式で入力します。
商品名などの商品情報を出力するためには、商品マスタとの紐づけが必要となります。通常はVLOOKUP関数を使います。
- =VLOOKUP([JANコード],[一覧表],[列数],0)
これで、バーコードを読んだときに、紐づけられている情報が表示されます。
Excelに限らず、バーコードを読んだときに13桁の数字と紐づけられている商品マスタが保存されていなければ、その情報は表示されません。
5.バーコードの種類
前述のとおりバーコードは棒の太さ(バー)で数字(コード)を表現したものです。バーコードはいくつかの種類があり、13桁以上の数字やアルファベットを表現できるものもあります。表現できる文字数が多いということはバーコードの棒の本数も多くなるということです。
次の表をご覧ください。これは主なバーコードの種類と長さを表しています。このような棒の羅列のことをバーコードシンボルということがあります。このなかで商品についている一般的なバーコードは「JAN」形式のバーコードです。
バーコードとは?|自動認識の技術情報|デンソーウェーブ
https://www.denso-wave.com/ja/adcd/fundamental/barcode/barcode/index.html
練習問題3
バーコードスキャナまたはアプリで次のバーコードを読みなさい。
解説
バーコードスキャナの取扱説明書には「JAN対応」「CODE39対応」「NW7対応」などと読めるコードの種類が必ず記載されています。
ちなみに、上のバーコードは「*WAENAVI*」という文字列をCODE39形式に変換したものです。CODE39対応のスキャナで上のバーコードを読むと「WAENAVI」と表示されます。
なお、USBバーコードスキャナの場合、パソコンの画面に表示されたバーコードが読み取れないことが多いです。それは、パソコンのモニタもLEDを使っており、LEDの反射光を光センサーがうまく受け取れないからです。必ず印刷してから読み取りましょう。
練習問題4
身の回りにあるバーコードでJANよりも本数が多いものを探して、そのバーコードを読みなさい。
解説
一般的な商品につけられているバーコードはJANですが、それ以外にも色々な種類のバーコードが使われています。例えば、一部のポイントカード(Ponta、楽天ポイントカードなど)の裏面にバーコードがありますが、JANよりもバーコードの棒の本数が多いです。また、宅配業者の荷物の伝票(送り状)にもバーコードがついていますが、JANではなくNW-7形式のバーコードです。いずれもバーコードスキャナで読み取ることができます。
6.JANの読み方1(JANコードとは何か)
バーコードのうち、JANのバーコードを見分けるには両端と真ん中を見ます。左端、中央、右端にそれぞれ2本ずつ細い線があります。これは他のバーコードにはありません。それぞれ左ガードバー、センターバー、右ガードバーといいます。
JAN(ジャン)は、Japanese Article Numberの略で、日本だけの呼び方です。世界的にはEAN=イアンといいます。通常は13桁の数字で表されるコードのことを言います。JANコードは13桁の数字です。それを棒の形に変換したものがJANバーコードです。
JANコードには「統一JANコード」「インストアコード」の2種類があります。
- 統一JANコードは、13桁のうち先頭の2桁(45または49)は国コードであり、先頭の7桁または9桁は事業者コードです。それ以外の部分をアイテムコードといい、事業者が自由に使うことができます。
- インストアコードは、先頭の12桁を自由に決めることができます。
- 最後の1桁のことをチェックディジットといい、計算で求めます(後述)。
*補足*
統一JANは、通常は事業者コード9桁+アイテムコード3桁を使います。商品は000~999の1000種類となります。通常のメーカーはこれで十分足ります。しかし、衣料品や工業部品のようにサイズ・カラーのバリエーションがものすごく多い会社は1000種類では足りないので、事業者コード7桁+アイテムコード5桁を使います(使用するには申請が必要)。商品10万種類まで使用できます。
7.JANの読み方2(統一JANコード)
(1)登録必須のコード
日本の場合、45または49で始まるコードは勝手に使ってはいけません。必ず、国際的な登録機関「GS1」に登録しなければなりません。これを統一商品コードまたは統一JANといいます。
商品を作っているメーカーが自社の商品にJANを付けたい場合で、45または49で始まるコードを使う場合は「GS1 JAPAN」と呼ばれている「一般財団法人流通システム開発センター」に申請をしなければなりません。登録料を払って、登録が認められた事業者は与えられた7桁または9桁の事業者コードを使わなければなりません。
GS1事業者コードの新規登録手続き(一般財団法人流通システム開発センター)
http://www.dsri.jp/jan/jan_apply.html
練習問題5
身の回りにあるJANコードを使って、その事業者名を調べなさい。
解説
45または49で始まるJANは必ず事業者コードが登録されており、その登録情報は一般に公開されています。GS1登録事業者情報検索サービス(GEPIR)でJANコード(13桁の数字)を入力して検索すれば事業者を調べることができます。
GS1登録事業者情報検索サービス(GEPIR)
http://gepir.dsri.jp/modules/gepir/
(2)アイテムコードは登録不要
登録した事業者(メーカー)は、必ず与えられた「事業者コード」を先頭につけたJANコードを発行しなければなりませんが、どの商品にどのアイテムコードをつけるかは自由です。また、各商品の情報をGS1に登録する必要はありませんし、届け出る必要もありません。登録されているのは先頭の7桁または9桁の部分だけです。
どの商品にどのようなJANを割り当てたかは、それを決めた事業者にしか分かりません。
各事業者の責任で厳重に管理しなければなりません。通常は商品管理システムでJANコードを管理するための表(商品マスタ)を作って、情報処理担当部署が管理します。一度決めたアイテムコードは世界で唯一の番号となる重要な番号なので絶対に変えてはいけません。また、異なる商品に同じJANを付けてはいけません。製造中止になった場合はそのJANは欠番とします。
(3)商品マスタを渡す
メーカーが自社の商品を自分で販売するだけでなく、販売業者(スーパーやコンビニなど)、デパート、ショッピングモール、通販サイト等で販売する場合は、必ず45または49から始まる事業者コードを先頭につけたJANコードを発行しなければなりません。GS1に登録して発行したJANは全国共通で使われます。
しかし、JANコードのうち、アイテムコードの部分はメーカーが自由に決められますから、メーカーは商品マスタを販売業者に渡す必要があります。販売業者がPOSシステムやレジに登録するには、メーカーからJANコードの情報をもらう必要があります。
受け取った販売業者(担当者)は自社の販売システムに商品情報を登録し、店舗のレジやハンディターミナルにデータを配信します。これで、バーコードを読んだときに商品情報が表示されます。
したがって、メーカーが自社商品に間違ったバーコードを付けてしまったら、多大な迷惑がかかります。また、販売システムに間違った商品情報を登録してしまったら取り返しのつかないことになります。
(4)ネット
ネットで13桁の数字を入力して検索すると、その商品の販売用のページが見つかることがあります。これも、メーカーからJANコードの一覧表を受けとった販売業者(商品登録の担当者)がそれぞれ独自に登録し作成しています。
8.JANの読み方3(インストアコード)
事業者登録をして使うコードを統一商品コードというのに対して、4から始まらないJANコードをインストアコードまたはインストアJANといいます。登録不要なので、メーカーに限らず、誰でも作ることができます。個人的に作ってもかまいません。
自社で作った商品を自分の店でしか売らない場合(ユニクロなど)は、自社の商品マスタを他社に渡す必要がなく、わざわざGS1に登録する必要がないのでインストアコードを使います。また、他社から仕入れた商品に独自の番号を付けたい場合は、インストアコードをつけます。
特に小売業の場合はインストアコードの先頭は原則として2とするきまりとなっています。例えば、次の図のように2から始まるバーコードはインストアコードでGS1未登録のものです。
「インストア(in store)」なので、店舗内や自社内で勝手に決めて番号を付けます。したがって、ほかの店では通用しません。販売業者にインストアコードを絶対に渡してはいけません。また、百貨店やデパートの場合、専門店がインストアJANを使うのは構いませんが、統一レジでインストアJANは使えません。
9.JANの読み方4(チェックデジット)
(1)チェックデジットとは何か
13桁のうち最後の1桁は入力ミスを防ぐための数字で計算によって求めます。これは統一コードもインストアコードも共通です。最後の1桁のことをチェックディジット(チェックデジット)といい、計算方法は次のサイトに記載されています。
チェックディジットの計算方法(一般財団法人流通システム開発センター)
http://www.dsri.jp/jan/check_digit.html
- 12桁の偶数桁をすべて足して3倍する
- さらに奇数桁をすべて足す
- その下1桁を10から引く ただし10の場合は0にする
練習問題6
JANコードの最初の12桁が「456995111617」の場合、チェックディジットはいくつか?
解説
偶数桁は5,9,5,1,6,7なので、すべて足して3倍すると99になります。奇数桁は4,6,9,1,1,1なので、すべて足すと22で、さきほどの99と合算すると99+22=121です。
その下1桁「1」を10から引くので、チェックディジットは9となります。そして、最初の12桁に、チェックディジットの9を付加して、「4569951116179」が正しいJANコードとなります。
(2)Excel関数でチェックデジットを計算する方法
練習問題7
次のJANコード管理表で、チェックディジットと正しいJANコードを求めなさい。
解説
事業者コードは事業者に割り当てられた固定のコードなので1か所だけに入力します。オートフィルをすると誤って1ずつ増やしてしまう危険性があります。
事業者コードが9桁の場合は、アイテムコードは3桁(999番まで)です。事業者コードが7桁の場合は、アイテムコードは5桁(99999番まで)です。とりあえずこの2つをつなげて12桁のコードにします。事業者コードは絶対参照にします。ちなみに、インストアコードの場合は事業者コードがありませんので、いきなり12桁のコードを作って構いません。
12桁のコードからチェックディジットを求める数式は次の通りです。セルD2にチェックディジットを計算する数式をそのまま貼り付けます。
=MOD(-SUM(INT(C2/10^{0,2,4,6,8,10;1,3,5,7,9,11})*{3;1}),10)
最後に12桁のコードにチェックディジットを付加して完成です。
10.JANバーコードを印刷してみよう
(1)バーコードの印刷
バーコードの印字は通常、印刷会社等の専門の会社に任せます。そういう会社はJANコード(数字)をバーコード(棒)に変換するシステムを持っているので、13桁の数字を渡して、希望するバーコードの大きさを伝えれば印刷をしてもらえます。
13桁の数字を渡してバーコードが印刷できないような無能な業者に頼んではいけません。商品情報も印字する場合は一覧にして渡せばよいです。
そのほかに、1万円~数万円でバーコードシールが印刷できるラベルプリンタがあります。ただし、本体とは別にシールを買う必要があり、たくさんシールを作ったら、シール代だけで結構かかります。
(2)バーコードフォント
練習問題8
Excelを用いて、次のようなバーコード表を作りなさい。
解説
例えば、コンビニのおでんや惣菜のようにバーコードが付けられない商品があります。また、ギフト包装や宅配サービスのようにサービスを提供する場合もバーコードが付けられません。このような場合、バーコード表を用意します。
このバーコード表は専用のバーコード作成ソフトを使って作ることもできますが、Excelで作ることも可能です。Excelでバーコードを表示するには、バーコードコントロール(ActiveX)を用いる方法もありますが、ここでは「バーコードフォント」とアドインを使う方法を紹介します。
世の中には賢い人がいて、バーコードを「フォント」にすればWordやExcelでも印字できると考えて、無料でフォントを配っている有能な人がいるのです。「JAN フォント」「CODE39 フォント」などと検索してみてください。賢い人のサイトがたくさんヒットすると思います。
- たくちゃん氏「JANTTFONT」
http://takachan.jra.net/computer/font.php - nicotan氏「JANCODE-nicotan」
http://nicotan.at-ninja.jp/blog/jancode_home.html - 株式会社テクニカル
https://www.technical.jp/barcode/font/
そんな天才のうちの1人、nicotan氏のJANCODE-nicotanを紹介します。サイトには詳しい使い方もしっかりと載っています。下のサイトで2つをダウンロードして、名前を付けて保存します(保存場所は任意ですが、アドインのほうは %appdata%\Microsoft\AddInsが良い)。
フォント:JANCODE-nicotan.ttf
http://nicotan.at-ninja.jp/blog/jancode_font_download.html#font_installアドイン:JANCODE-nicotan用エクセル.xla
http://nicotan.at-ninja.jp/blog/jancode_excel_addin_download.html#add
フォントは、右クリックしてインストールするだけです。
インストール後にExcelを起動すると(既に起動していた場合はいったん閉じてからもう一度起動する)、フォントの中にJANCODE-nicotanが入っています。
「ファイル」のなかから「オプション」→アドイン→設定ボタン→参照ボタンで保存したアドイン「JANCODE-nicotan用エクセル」を選択します。JANCODE-nicotan用文字列変換シートにチェックを入れてOKボタンを押します。
ここまでの作業(フォントとアドインのインストールの作業)は1度だけすれば次回以降行う必要はありません。さきほどの問題の要領でチェックディジットを求めて13桁のJANコードを作ります。
アドインを入れたおかげで「Jan関数」というものが使えるようになります。
キーボードで「=JAN( )」としてセルを参照すると、わけのわからない文字列に変換されます。
このわけのわからない文字列のフォントを「JANCODE-nicotan」にします。フォントサイズを大きくします。これでバーコードになります。
JANバーコードは、数値を単純に変換しているのではなく複雑なルールで変換するため、途中でわけのわからない文字列が必要になります。
この文字列はWordでも使えますから、これをWordに貼り付けることも可能です。
(3)差し込み印刷
Wordでバーコードフォントが使えるということは差し込み印刷ができるということです。Excelでバーコード用のわけのわからない文字列(Jan関数)を含む一覧表を作って保存します。
これをWordのラベル文書に差し込んで、印刷をすればバーコードシールが作れます。
ちなみに、Word2013以降の場合、差し込み印刷にバーコードフィールドの挿入の機能があります。これを使う場合は、バーコードフォントとアドインは不要です。
(4)余白をとるのは常識です
バーコード読み取り装置で白色と黒色を正確に読み取るには白背景で黒い線にします。
他の色の背景でも読み取れる場合がありますが、LEDで読み取っているということを知らないのでは?と疑われるので絶対にやめましょう。
また、バーコードは一定の高さと幅、左右の余白(マージン)が必要です。バーコードやQRコードの周りには白い余白が必要です。白色の部分でバーコードの領域を正確に感知するためです。たまに周りに余白をとっていないQRコードを見かけますが、読み取り可能かどうか以前の問題です。絶対にやめましょう。
バーコード読み取り装置は、機種によって多少読み取り精度が異なるので、バーコード印刷を業者に任せた場合も自分で印刷した場合も必ず「読み取りテスト」をします。サンプルのバーコードを読んでみて、正しく読めたらWordやExcelに13桁の数字が表示されます。
解説は以上です。