スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | | CM(-)TB(-) |  TOP△

Excelの小技(5)バーコードを出力する(その1)

蔵書やCDの管理にバーコードを導入したいと思っている人も、もしかしたらいるかもしれない。いや、きっといるに違いない。絶対にいる。
そういう人のために、コードを生成してバーコードを作成する方法を書く。

JANCODEと呼ばれる日本の標準規格があって、国内で流通している商品には、たいていこのJANCODEが付いている。
どうせならそういうきちんとした体系に則ったコードで管理したいし、バーコード作成のためのソフトでは、きちんとしたコードでないと出力できないものも少なからずあると思われる。
JANCODEには8桁のものも存在するが、13桁が一般的である。そこで、ここでは13桁のコードを前提に、説明しよう。

13桁の数字を、仮に「ababababababX」とする。むろん実際には、「a」「b」「X」はいずれも数字だと思って欲しい。
「a」「b」は任意の数字を入れて良いのだが、「X」はチェックデジットと言って、法則に則った数字が入る。適当な数字を入れると、JANCODEとしては無効な数字になる。

チェックデジットの計算方法は、

1 すべての偶数位置の数字を加算する。
2 1の結果を3倍する。
3 すべての奇数位置の数字を加算する。
4 2の答えと3の答えを加算する。
5 最後に"121"の下1桁の数字を"10"から引く。この場合は"10"から"1"を引き算した答えの"9"がチェックデジットである。
6 下1桁が"0"となった場合は、チェックデジットはそのまま"0"となる。("0"の場合は"0")


というかなり面倒臭いものである。(流通システム開発センターHPより。例は上12桁が「456995111617」の場合)

そこで、まず答えを先に書いておくと、B2セルに下記の計算式を入力して、A2セルに任意の12桁の数字を入力すれば、チェックデジット付きの13桁のJANCODEを生成することができる。
何故A2・B2かというと、A1・B1セルにはヘッダーを付ける想定だからである。ヘッダーが要らなければ、「2」を「1」に修正してもらって構わない。

=A2&RIGHT(10-RIGHT((MID(A2,1,1)+MID(A2,3,1)+MID(A2,5,1)+MID(A2,7,1)+MID(A2,9,1)+MID(A2,11,1)+(MID(A2,2,1)+MID(A2,4,1)+MID(A2,6,1)+MID(A2,8,1)+MID(A2,10,1)+MID(A2,12,1))*3),1),1)


この計算式は先の手順「5」 のとおりでなく、手順「4」から10を引いた数の下1桁になっている程度の違いはあるのだが、結果は同じである。
計算式を細かく説明しても仕方がないのだが、さわりだけちょっと見ておくと、

 A2&RIGHT(10-(…),1) ―― A2セルと以下の計算結果の1番右の数字を繋げる
 MID(A2,1,1)+MID(A2,3,1)+… ―― A2セルの1桁目から1桁+A2セルの3桁目から1桁+…

と、いうようなことである。
【6月19日追記】
> この計算式は先の手順「5」 のとおりでなく、…

手順のとおりに越したことはないか。

=A2&(RIGHT(10-RIGHT(RIGHT((MID(A2,1,1)+MID(A2,3,1)+MID(A2,5,1)+MID(A2,7,1)+MID(A2,9,1)+MID(A2,11,1)+(MID(A2,2,1)+MID(A2,4,1)+MID(A2,6,1)+MID(A2,8,1)+MID(A2,10,1)+MID(A2,12,1))*3),1),1),1))


コメントの投稿











管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://hoshinahouse.blog101.fc2.com/tb.php/745-e94a01fd


Excelの小技(6)バーコードを出力する(その2)

「Excelの小技(5)バーコードを出力する(その1)」の続き。 まず、左上のOfficeマークをクリックして、出て来たプルダウンから「Excelのオプション(I)」を選択。 基本設定 → 「開
[2013/06/23 00:53] URL HOSHINA HOUSE








上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。