ITパスポート 2010年 秋期 問15
問題文
JANコードを構成している項目の組合せのうち、適切なものはどれか。
JANコードの構成:[ a ]、商品アイテムコード、[ b ]

選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
JANコードを構成している項目の組合せのうち、適切なものはどれか。【ITパスポート 解説】
正解の理由
理由:JANコード(JANは Japanese Article Number:日本で使われる商品識別コード)は、一般に13桁のEAN-13(EANは European Article Number:欧州商品番号と同系統)形式で使われます。構成は次のようになります。
- GS1プレフィックス(国・地域コードや企業プレフィックスの一部)
- メーカーコード(事業者識別コード:商品を作った会社を示す番号) ← [a] に入る
- 商品アイテムコード(その会社の中での商品番号)
- チェックディジット(誤り検出のための1桁) ← [b] に入る
よって、[a] が「メーカーコード」で、[b] が「チェックディジット」になる組合せ(選択肢エ)が正しいです。
解法ステップ
- 問題文の構成を確認:「[a]、商品アイテムコード、[b]」
- JAN/EAN の基本構造を思い出す:国コード+事業者(メーカー)コード+商品コード+チェックディジット
- 選択肢を照合:a に入るのはメーカー(事業者)を示すコード、b に入るのはデータ誤りを検出するチェックディジット(価格は含まれない)
- 結論として「メーカーコード」と「チェックディジット」を選べる選択肢を選ぶ → エ
選択肢別の誤答解説
-
ア(a=小売店コード、b=価格)
誤り。JANコードに「価格」は含まれません。価格情報は店舗のPOSシステム側で商品コードと紐づけて管理します。また「小売店コード」もJANの標準構成要素ではありません。 -
イ(a=小売店コード、b=チェックディジット)
半分正しく見えるかもしれませんが、a に入るべきはメーカー(事業者)コードであって、小売店固有のコードではありません。 -
ウ(a=メーカーコード、b=価格)
a は正しいですが、b に「価格」は入らないため誤りです。バーコード自体は通常、価格情報を持ちません。 -
エ(a=メーカーコード、b=チェックディジット)
正解。JAN/EAN の標準的な構成に合致します。
よくある誤解
-
「バーコードに価格が書いてある」
→ 実際には違います。バーコードは商品を識別する番号で、価格は店舗側のデータベース(POS)で管理・紐付けされます。 -
「小売店ごとに違うコードが入ると思っていた」
→ JANはメーカーや商品ごとの識別が基本です。店ごとに価格や在庫情報を割り当てるのは別の仕組み(POS・販売管理)です。 -
「チェックディジットは暗号や暗証番号のようなもの」
→ チェックディジットは暗号ではなく、入力ミスや読み取りミスを検出するための単純な誤り検出用の1桁です。
補足コラム
チェックディジットの計算方法(EAN-13/JANの一般的な方法):
- 先頭から12桁の数字に対して、右端(最も下位)の桁から順に、奇数桁に1、偶数桁に3 を掛けます(またはその逆の定義もありますが、結果は同じ扱いです)。
- その合計を求め、次に来る10の倍数までの差がチェックディジットになります。つまり、合計+チェックディジット が 10 の倍数になるようにします。
例:仮に先頭12桁が 4 5 0 1 2 3 4 5 6 7 8 9 の場合(左から順)
計算(右から重みを 1,3,1,3... とすると):
合計 = 4×1 + 5×3 + 0×1 + 1×3 + 2×1 + 3×3 + 4×1 + 5×3 + 6×1 + 7×3 + 8×1 + 9×3
これを合計して、10の倍数との差がチェックディジットになります。
これを合計して、10の倍数との差がチェックディジットになります。
簡単なチェックディジット計算の Python 例:
def calc_check_digit(digits12: str) -> int:
# digits12 は12桁の文字列
weights = [1,3] * 6 # 12個の重み: 1,3,1,3,...
total = sum(int(d)*w for d,w in zip(digits12, weights))
check = (10 - (total % 10)) % 10
return check
print(calc_check_digit("450123456789")) # 例の12桁
補足情報:
- JANには短い形式のJAN-8(8桁)もあります。構成は似ていますが桁数が違います。
- 「GS1プレフィックス」は国や地域を示す番号の領域で、日本は45/49などが割り当てられています。
FAQ
Q. JANコードとEANは同じですか?
A. 基本は同じ規格系です。日本で使う場合は「JANコード」と呼び、13桁で運用する場合はEAN-13と互換性があります。
A. 基本は同じ規格系です。日本で使う場合は「JANコード」と呼び、13桁で運用する場合はEAN-13と互換性があります。
Q. バーコードで価格が読み取れることはないですか?
A. 通常はありません。店舗ではバーコード(商品識別子)を読み取り、POSのDBで価格を引き出して表示・計算します。例外的な独自運用はあり得ますが、一般的ではありません。
A. 通常はありません。店舗ではバーコード(商品識別子)を読み取り、POSのDBで価格を引き出して表示・計算します。例外的な独自運用はあり得ますが、一般的ではありません。
Q. チェックディジットを間違えるとどうなる?
A. レジで読み取りエラーになったり、バーコードの印刷ミスが検出されたりします。誤読の検出が主な目的です。
A. レジで読み取りエラーになったり、バーコードの印刷ミスが検出されたりします。誤読の検出が主な目的です。
関連キーワード: JANコード、EAN-13、チェックディジット、メーカーコード、GS1、バーコード、POS、商品識別、JAN-8、誤り検出

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

