商品コードをAIで整える前に|先頭の0を消さず、表記ゆれと同一商品を分ける
AI lab
商品一覧を見やすくしようとして「0012」を「12」に直す。ぱっと見はすっきりしても、店の管理ルールによっては別の商品を同じコードにしてしまいます。
AIに一覧の整理を頼むときは、文字の形をそろえる作業と、同じ商品だと決める作業を分けてみます。今回は架空の文具店の5行で試します。実在商品や在庫台帳の修正例ではありません。
■ 元データは消さず、候補の列を増やす
練習用データは次の5行です。かぎ括弧は値の範囲を示す目印で、コードの一部には含めません。
R01:コード「0012」、商品名「青いノート」
R02:コード「12」、商品名「青いノート」
R03:コード「AB-01」、商品名「白いふせん」
R04:コード「AB-01」、商品名「白いふせん」
R05:コード「AB-01 」、商品名「白いふせん」(コード末尾に半角スペース1個あり)
この練習だけの整形ルールを先に決めます。
・コードは数値ではなく文字列として扱い、先頭の0を残す。
・全角の英字A〜Zだけを半角英字にする。
・コードの先頭と末尾の半角スペースだけを除く。
・大文字と小文字、数字、ハイフンなど、それ以外は変えない。
・元コード、元の商品名、行IDは保持する。行を削除・統合しない。
実際の台帳でこのルールが正しいとは限りません。メーカーコードや自社の商品マスターの扱いを確かめてから使います。
■ AIへの指示文
「次の架空5行に、指定の整形ルールだけを適用した確認表を作ってください。行ID/元コード/元の商品名/整形候補/行った変更/同じ候補になった行ID/要確認、の列にしてください。コードを数値へ変換せず、先頭の0を保持してください。商品名が同じという理由でコードを統合しないでください。候補が重なっても行を削除せず、同一商品かは未確認としてください。台帳の上書きや在庫数の変更はしません。」
この指示に、上のルールと5行を付けます。表をきれいにする前に、元の値に戻れる列を作るのがポイントです。
■ 5行の答え合わせ
R01の候補は「0012」。変更なし。
R02の候補は「12」。変更なし。
R03の候補は「AB-01」。全角英字2文字を半角へ変更。
R04の候補は「AB-01」。変更なし。
R05の候補は「AB-01」。末尾の半角スペース1個を削除。
同じ整形候補になるのはR03・R04・R05の3行です。ただし、これは今回のルールで文字列が一致したという結果です。元の記録が同じ商品を指すか、重複登録か、別の管理単位なのかは、この5行だけでは決まりません。
R01とR02は商品名が同じでも、コードの文字列が違います。「0012も12も数としては12だから」とまとめたら、今回の指示に反しています。
■ 次の1行を足して、勝手に直さないかを見る
追加の練習として、R06:コード「ab-01」、商品名「白いふせん」を入れます。今回のルールでは小文字を大文字にする指定がないため、候補は「ab-01」のままです。
AIが「AB-01」にそろえたら、整形ルールを勝手に広げています。見やすさよりも、指定した処理だけを行ったかを確かめます。
表計算ソフトに移す段階でも、コード列が数値として扱われると先頭の0が失われる場合があります。利用するソフトの取り込み方法を確認し、まず作業用コピーで元の文字列と照合してください。本記事ではソフト別の設定手順や自動更新処理は扱いません。
■ 本番前に残す3つの記録
元データの控え、適用したルール、行ごとの変更履歴を残します。AIの出力は5行なら5行、追加後は6行あるかを数え、すべてのIDが残ったかを確認します。見かけ上の一致だけで削除してはいけません。
試行では、先頭0の消失、指定外の文字変換、行の欠落を数え、人の照合・修正時間も記録します。実データを扱う場合も、入力が認められた範囲に限り、顧客情報や仕入先との非公開条件を含めません。
まずは架空の5行で、変更した文字を説明できる表を作る。実際の台帳へ反映するかは、商品マスターを確認できる責任者が判断します。
■ 参考にした公式資料
OpenAIの公式資料にある、条件を具体的に指定し出力を見直す考え方と、重要情報を確かめる必要性を参照しました。コード、整形ルール、答え合わせは独自の架空演習で、公式の商品管理手順ではありません。
https://help.openai.com/en/articles/10032626-prompt-engineering-best-practices-for-chatgpt
https://help.openai.com/en/articles/8313428-does-chatgpt-tell-the-truth
確認日:2026年10月31日。
