GS1-128の賞味期限・有効期限におけるアプリケーション識別子(AI)の設定方法
結論
GS1-128で賞味期限を表すにはアプリケーション識別子(AI)15、有効期限にはAI 17を使い、直後に6桁の日付をYYMMDD形式で続けます。月・日が1桁の場合は先頭に0を補います。作成ツールではAIと日付を分けず「15260131」のように連結した文字列として入力するのが基本です。JANコードの無料作成とGS1-128作成はツールの対応範囲が異なるため、用途に応じて使い分ける必要があります。
クイックアンサー:GS1-128の賞味期限・有効期限設定の要点
| 項目 | 設定内容 |
|---|---|
| 賞味期限のAI | AI 15(BEST BEFORE) |
| 有効期限・消費期限のAI | AI 17(USE BY / EXPIRY) |
| 日付フォーマット | YYMMDD 6桁固定(西暦下2桁+月2桁+日2桁) |
| 年月表示の場合 | DDに「00」をセット |
| FNC1の要否 | AI 15/17は固定長のため不要 |
| 括弧の扱い | データ欄には入れない(目視文字のみ) |
GS1-128の賞味期限(AI 15)と有効期限(AI 17)の基本仕様
GS1-128は、CODE128をベースにアプリケーション識別子(AI)でデータの意味を定義できるバーコードです。同じ6桁の日付でも、どのAIを付けるかによって「賞味期限」なのか「有効期限」なのかが決まります。この違いを理解せずにAIを選ぶと、読み取り側では別の意味として処理されるため注意が必要です。
| 項目 | AI 15 | AI 17 |
|---|---|---|
| 意味 | 賞味期限(品質が保たれる期限) | 有効期限・消費期限・使用期限 |
| データ形式 | YYMMDD(6桁固定) | YYMMDD(6桁固定) |
| 主な用途 | 加工食品・飲料など品質管理が中心の商品 | 医薬品・医療材料・日用品など期限管理が厳格な品目 |
| 入力例 | 15260131 | 17260131 |
賞味期限は「その期限を過ぎても品質が保証されるわけではないが、すぐに使用できなくなるわけではない」という位置づけで、主に食品で使われます。一方、有効期限は期限を過ぎると使用できなくなる品目に用いられ、医薬品や医療材料などの管理で重要になります。GS1 Japanのガイドラインでも、加工食品・飲料は賞味期限にAI 15、消費期限表示の商品はAI 17、日用品・雑貨等の有効期限/使用期限もAI 17を使うと整理されています[citation:2][citation:9]。
どちらを使うかは商品の性質と取引先の運用ルールで決まるため、自社判断だけで決めず、発注元や業界の指針を確認してください。なお、GS1-128はCODE128のサブセットという位置づけですが、AIやFNC1(データの区切りを示す特殊文字)を扱う点が通常のCODE128と異なります。
日付フォーマット(YYMMDD)とAI設定のルール
AI 15・17に続く日付は、必ず「年2桁+月2桁+日2桁」の合計6桁で入力します。桁数が固定されているため、区切り文字やハイフン、スラッシュは入れません。入力値そのものがバーコードのデータになるため、余分な記号を加えると読み取り側で正しく解釈されません。
| 入力したい日付 | 正しい入力 | 誤った入力例 |
|---|---|---|
| 2026年1月31日 | 260131 | 2026/01/31、26-1-31 |
| 2026年4月5日 | 260405 | 2645、26045 |
| 2026年12月1日 | 261201 | 26121 |
| 2026年6月まで(年月表示) | 260600 | 2606、2606XX |
月や日が1桁の場合、先頭に0を付けて2桁にそろえます。4月5日は「045」ではなく「0405」、12月1日は「121」ではなく「1201」です。この0埋めを忘れると桁数が足りず、日付として成立しません。表計算ソフトで管理している場合は、セルの表示形式によって先頭の0が消えることがあるため、文字列として扱うのが安全です。年月表示の商品では、GS1 Japanのガイドラインに従いDDに「00」をセットします[citation:2]。
年の扱いにも注意が必要です。YYMMDDの年は下2桁で表すため、2026年は「26」となります。和暦は使えません[citation:2]。100年単位の区別はバーコード自体には含まれず、読み取り側のアプリケーションが解釈します。また、存在しない日付(例:2月30日)は入力段階でエラーにならない場合もあるため、作成前に日付の妥当性を確認しておきましょう。
ツールやシステムで設定する際の手順とFNC1の役割
オンラインツールやラベル作成ソフトで賞味期限付きのGS1-128を作成する場合、AI 15または17の後ろに続くデータが「可変長」か「固定長」かによって、FNC1(Function 1 Character)の扱いが変わります。ここでは実務で迷いやすい入力手順と制御文字の考え方を整理します。
固定長AIだけならFNC1は不要
賞味期限(AI 15)と有効期限(AI 17)はいずれもデータ部が6桁の固定長です。GS1の仕様では、固定長のAIはFNC1区切り文字を必要としません。たとえば「(01)GTIN14桁 + (17)YYMMDD」のように固定長の組み合わせだけで構成する場合、ツール側でFNC1を手動挿入する必要はありません。
可変長AI(ロット番号など)を後ろに置く場合の注意
ロット番号(AI 10)は最大20桁の可変長です。可変長データの後ろに別のAIを連結する場合、その可変長データの終わりを示すためにFNC1を挿入します。ただし、可変長データをシンボルの最後に配置するのであれば、FNC1は不要です。ツールの入力欄に「^1」や「<FNC1>」といった制御文字を入れる仕様の場合は、可変長の直後にだけ指定し、末尾には入れないのが基本です。
オンラインツールでの実務的な入力順序
バーコード作成サイトやバーコード作成ツールを利用する場合、まずシンボロジでGS1-128(またはUCC/EAN-128)を選択し、データ欄にAIとデータを連続して入力します。たとえば「011234567890123117250630」のように、括弧を除いた数字列を直接並べます。可変長のロット番号を末尾に置くなら「01123456789012311725063010ABC123」で区切り文字なし、途中に別のAIを続けるならロット番号の直後にFNC1相当の制御文字を挿入します。ツールによってFNC1の表記ゆれがあるため、生成後のプレビューでヒューマンリーダブル文字列が意図通りか確認してください。
GS1-128作成とJANコード作成は何が違う?無料ツール選びの注意点
「janコード 作成 無料」で検索して見つかるツールの多くは、EAN-13やEAN-8といったJANコード(小売商品用のバーコード)に特化しており、GS1-128には対応していない場合があります。GS1-128で賞味期限や有効期限を設定したい場合は、シンボロジとしてGS1-128を明示的に選べるツールが必要です。
| ツールの種類 | 主な対応形式 | GS1-128のAI設定 | 用途 |
|---|---|---|---|
| JANコード無料作成ツール | EAN-13 / EAN-8 | 非対応が多い | 小売商品のJANコード作成 |
| 汎用バーコード作成サイト | CODE128 / GS1-128 / EANなど | 対応している場合あり | 業務用ラベル・期限付きラベル |
| バーコード作成ソフト(デスクトップ) | 多数のシンボロジ | ツールによる | 大量ラベル・固定運用 |
| エクセルアドイン型 | CODE128 / GS1-128など | ツールによる | 既存のExcel管理表からの一括生成 |
「バーコード作成 無料 エクセル」や「janコード 作成 エクセル 無料」で探す場合も同様に、GS1-128対応かどうかを事前に確認してください。エクセル上で管理している商品リストから期限付きGS1-128を一括生成したい場合は、GS1-128に対応したバーコード作成ソフトやアドインを選ぶ必要があります。
janコード 作成 無料 ai を活用する際の注意点
最近では「janコード 作成 無料 ai」のように、AIを使ってJANコードやバーコード設定を支援するツールや情報も見られます。AIは入力ミスの検出やフォーマットの提案に役立つ一方で、GS1-128の期限設定においては人間の検証が欠かせません。
| 項目 | AI活用の可否 | 理由 |
|---|---|---|
| JANコードのチェックデジット計算 | 得意 | 計算ロジックが明確 |
| AI 15/17の選択提案 | 条件付きで可 | 商品カテゴリ情報が必要 |
| YYMMDDの桁数チェック | 得意 | パターン検証が容易 |
| FNC1の要否判断 | 苦手な場合あり | 前後のAI構成に依存 |
| 取引先固有の運用ルール | 不可 | 社内・業界ルールはAIが知らない |
AIが生成したコードや設定をそのまま信用せず、チェックデジットやAIの桁数・フォーマットがGS1仕様に合っているか必ず検証してください。特にGS1-128の期限設定は、AI 15と17の使い分け、年月表示のDD=00ルール、可変長AIのFNC1位置など、AIが誤りやすいポイントが複数あります。AIはあくまで補助として使い、最終的な検証はGS1の公式ドキュメントや実際のスキャナでの読み取りテストで行うのが安全です。
よくある設定ミスとトラブルシューティング
現場でGS1-128が読み取れない、日付が正しく解釈されないといったトラブルの多くは、入力フォーマットやスキャナ設定に起因します。以下に典型的な失敗例と対策を示します。
| 症状・ミス | 原因 | 対策 |
|---|---|---|
| スキャナがGS1-128として認識しない | スキャナ側でGS1-128の読み取りが無効になっている | スキャナの設定でGS1-128を有効化する |
| 日付が正しく解釈されない | YYMMDDの順序を誤り、MMDDYYやDDMMYYで入力している | AI 15/17のデータは必ず「西暦下2桁+月2桁+日2桁」で入力する |
| バーコードに括弧が混入して読み取れない | 目視文字用の「(17)」などをそのままデータ欄に入力している | 括弧はバーコードにエンコードしない。データ欄には数字だけを入れる |
| ロット番号の後ろのデータが欠ける | 可変長AIの後にFNC1を入れ忘れている | 可変長データの直後にFNC1を挿入するか、可変長を末尾に移動する |
| 年月表示の期限が「日」まで入ってしまう | DDに00をセットしていない | 年月表示の場合はDD=00とする[citation:2] |
| 期限表示がない商品にAI 15/17を付けてしまう | 期限の有無を確認せず一律で設定している | 期限表示がない商品にはAI 15/17を設定しない[citation:2] |
スキャナ側の設定確認ポイント
バーコード自体が正しくても、スキャナがGS1-128を「読めない」状態になっていることがあります。GS1-128はCODE128ベースですが、FNC1の解釈を含めてGS1-128として処理する必要があるため、スキャナのGS1関連設定を確認してください。まずはスキャナのマニュアルでGS1-128関連の設定項目を確認するのが確実です。
ヒューマンリーダブル文字列との照合
AIを囲む括弧はバーコードシンボルにはエンコードされず、バーコード下の目視文字にのみ表示されます。したがって、生成したバーコードの下に「(01)…(17)250630」のように括弧付きで表示されていれば、データ欄に括弧を入れていなくても正しい状態です。逆に、目視文字に括弧がない場合はツールの表示設定を確認してください。
GS1-128のAI 15/17は、単なるラベル作成の知識ではなく、実際の流通現場での期限管理・トレーサビリティに直結しています。GS1 Japanが紹介している活用事例から、代表的なものを整理します。
医療用医薬品・医療機器(日本)
医療用医薬品や医療機器等については、流通の効率化やトレーサビリティ確保のため、(01)商品識別コードのほか、(17)有効期限や(10)ロット番号等を含むバーコード表示が法的に義務付けられています。GS1-128シンボルまたはGS1データマトリックスが用いられ、期限切れ品の誤使用防止や回収時の追跡に役立っています[citation:14]。
食品原料・資材(日本)
食品原料や資材にGS1標準バーコードを表示し、在庫管理の効率化やトレーサビリティ確保に活用する動きがあります。「原材料識別のためのバーコードガイドライン」では、(01)商品識別コード、(11)製造日、(15)賞味期限または(17)消費期限、(10)ロット番号を推奨データ項目としており、AI 15/17の正しい設定が前提となります。
一般消費財の集合包装単位(日本)
加工食品や日用品等の段ボールケースなどの集合包装単位でも、検品効率化やトレーサビリティ確保のためにGS1標準バーコードが使われています。「ケース単位への日付情報等のバーコード表示ガイドライン」では、(01)商品識別コード、(11)製造日、(15)賞味期限または(17)消費期限(使用期限/有効期限)、(10)ロット番号が推奨されています。
まとめ:正しいアプリケーション識別子設定でトレーサビリティを強化
GS1-128で賞味期限・有効期限を扱う際の要点は、AI 15と17の使い分け、YYMMDDの6桁固定フォーマット、年月表示でのDD=00、そして可変長データを連結する場合のFNC1の位置です。これらを押さえれば、スキャナでの読み取りエラーや日付解釈のズレは大幅に減らせます。バーコードは作成して終わりではなく、取引先のスキャナや社内システムで正しく解釈されて初めてトレーサビリティに貢献します。
また、JANコードの無料作成とGS1-128の作成はツールの対応範囲が異なります。「janコード 作成 無料」で見つけたツールがGS1-128に対応しているとは限らないため、期限付きラベルを作る際はシンボロジ選択に注意してください。AIを活用する場合も、最終的な検証は人の目と実際のスキャナで行うことが安全です。
次のアクションとして、実際にバーコード作成ツールでテスト用のGS1-128を生成し、現場のスキャナで読み取り検証を行ってください。生成したデータと目視文字、スキャナの出力文字列の3点が一致しているかを確認することが、運用開始前の最終チェックとして有効です。
参照元
GS1-128で賞味期限を表すアプリケーション識別子はどれですか?
賞味期限はAI 15、消費期限・有効期限・使用期限はAI 17を使います。いずれもデータ部はYYMMDDの6桁固定です。
AI 15とAI 17の違いは何ですか?
AI 15は「賞味期限(best before)」、AI 17は「消費期限・有効期限(expiration date)」を表します。食品では賞味期限に15、医薬品や医療材料では有効期限に17を使うのが一般的です。
賞味期限のデータは何桁で入力しますか?
AI 15または17の後ろに6桁の数字を続けます。形式は西暦下2桁(YY)+月2桁(MM)+日2桁(DD)です。2025年6月30日なら「250630」となります。
年月のみの期限表示の場合はどう入力しますか?
日の部分を「00」にして6桁で入力します。たとえば2025年6月までなら「250600」です。読み取り側ではその月の末日として処理する運用が一般的です。
バーコードのデータ欄に括弧「(17)」を入れてはいけませんか?
入れません。括弧はバーコード下の目視文字にのみ表示されるもので、シンボルにはエンコードされません。データ欄には「17」と数字だけを入力してください。
FNC1はどんなときに必要ですか?
可変長のAI(ロット番号のAI 10など)の後ろに別のAIを連結する場合に、可変長データの終わりを示す区切り文字としてFNC1を挿入します。可変長データがシンボルの最後なら不要です。
賞味期限(AI 15)の後ろにFNC1は必要ですか?
不要です。AI 15と17は固定長(6桁)なので、GS1の仕様上FNC1区切り文字を必要としません。
生成したバーコードの下に括弧付きの文字が出ない場合は?
ツールのヒューマンリーダブル表示設定がオフになっている可能性があります。バーコード自体のデータは正しい場合でも、目視確認用に括弧付き表示を有効にすることをおすすめします。
GTINと賞味期限を連結する順序に決まりはありますか?
厳密な必須順序はありませんが、GTIN(固定長)を先に、日付やロット番号などの属性情報を後ろにするのが一般的な原則です。読み取り側は順序に依存しない処理を実装することが推奨されます。
ロット番号を末尾に置くと何が変わりますか?
可変長のロット番号をシンボルの最後に配置すると、FNC1を挿入せずに済みます。複数のAIを連結する場合に区切り文字の入れ忘れを防げるため、実務上のミスを減らせます。
有効期限の日付がスキャナで正しく認識されない原因は?
YYMMDDの順序を誤っているか、桁数が不足している可能性があります。月や日を1桁で入力していないか、西暦下2桁から始まっているかを確認してください。
GS1-128とCode 128は同じものですか?
異なります。GS1-128はCode 128の技術をベースにしていますが、AIによるデータ構造とFNC1の扱いが規定された別の標準です。Code 128として生成するとAIの解釈が正しく行われません。
賞味期限と有効期限の両方を1つのバーコードに入れられますか?
技術的には可能ですが、通常は商品の性質に応じてどちらか一方を使います。同じ商品にAI 15と17の両方を付与すると、読み取り側でどちらを優先すべきか曖昧になるため避けてください。