[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『モジュラス10の計算式』(昌)
「モジュラス10のウエイト3」とか言う計算式ご存知の方いらっしゃいますか?
12桁の数字(例:100202203473)ならばその計算式ですと
12桁目の「3」と同じなるそうなんです。宜しくお願い致します。
バーコードのチェックデジットの計算方法みたいですね?
第4章 バーコードの体系 /Category of Barcode. http://www.technical.jp/handbook/chapter-4-10.html
(Ohagi)
衝突しました
存じてはおりませんが、調べてみたところ 1.右から数えて偶数桁の和を求める 2.右から数えて奇数桁の和を求めて3倍する 3.1と2を合計する 4.10から3で求めた数値の1の位を引く 5.4で求めた数値が10の時は0とする 以上で求まるようです http://www.barcode.co.jp/about_barcode/code/jan.html
しかしながら例に当てはめると 1.1+0+0+2+3+7=13 2.0+2+2+0+4+3=11 11×3=33 3.13+33=46 4.10−6=4 で4となるようです 3とはならなかったので何か違うのかもしれません
一応、上記にそってエクセルでの計算式を考えてみました =MOD(10-MOD(SUMPRODUCT(MID(A1,ROW(1:12),1)*1,MID("131313131313",ROW(1:12),1)*1),10),10) (Yosh!)
↑にも同様のご質問がありますが、私も作式させていただきました。 (6UP)
=IF(LEN(A1)<>12,"", TEXT(RIGHT(SUM(A1,MID(A1,{1;2;3;4;5;6;7;8;9;10;11},1)*{3;1;3;1;3;1;3;1;3;1;3})),"X;X;O"))
試作中に気が付いたのですが、 =MOD(引数,10)は、引数が、1342177279を超えると#NUM!が戻ります。(Excel97sr2)
なるほど、左から11桁目までで計算して12桁目と比較すれば良かったのですね それなら確かに3になりますね
上記の私の数式は考え方が間違っているので無視してください(Yosh!)
コピーして貼り付けたら(#VALUE!)と言うのがでてきます。
申しわけありません全くの素人なもので詳しく教えていただけたら幸です。
(昌)
=10-MOD(SUMPRODUCT(MID(A1,ROW(A1:A11),1)*{3;1;3;1;3;1;3;1;3;1;3}),10) =10-MOD(SUMPRODUCT(MID(A1,ROW(A1:A11),1)*((MOD(ROW(A1:A11),2)=1)*3+(MOD(ROW(A1:A11),2)=0))),10) (とかとか) 追記 >試作中に気が付いたのですが、 >=MOD(引数,10)は、引数が、1342177279を超えると#NUM!が戻ります。(Excel97sr2) =MOD(引数,10)、引数が10桁を超えていませんので せいぜい3桁までに収まりますので
12桁目の「3」と比較 3(同じ)なら1 でなければ 0 =((10-MOD(SUMPRODUCT(MID(A1,ROW(A1:A11),1)*{3;1;3;1;3;1;3;1;3;1;3}),10))=3)*1
>=MOD(引数,10)、引数が10桁を超えていませんので せいぜい3桁までに収まりますので
補足です。 =MOD(引数,10)は、引数が、1342177279を超えると#NUM!が戻ります。(Excel97sr2) これは、自分の数式について申し上げています。
RIGHT(SUM(A1,計算))は、mod()を使用して mod(SUM(A1,計算),10)とした際に気づいたことで、 ここにメモとして掲載させていただいたものです。 (6UP)
なんとか、できました。
素人なりに勉強になりました。
(昌)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.