バーコードから品番を呼び出すときは、読取値を文字列のままマスターへ照合し、一致件数が1件の場合に候補を表示します。そのうえで状態と適用条件、現品の規格や単位を合わせ、実績を登録する流れにしましょう。未登録、重複、使用停止なら保留へ回します。読み取れたというだけで品番を採用しないことが、手入力を減らす仕組みの土台になります。
本記事は、受入や払出、工程実績、検査で品番を手入力している担当者向けの構成例です。読み取り機器を選ぶ前に、コードが何を識別するかと、対応表を更新する担当を決めます。以下では検索式の例も示しますが、式を置くだけで実績の登録制御まで完成するわけではありません。候補を使ってよい条件と、保留後の対応まで順に考えていきましょう。
| 読取直後の状況 | 判断 | 最初の対応 | 次に照合すること |
|---|---|---|---|
| 1件だけ一致し、有効 | 現品・適用条件の照合へ | 表示された品番・規格・単位を現品と照合する | 適用条件と現品が合えば実績登録へ進む |
| 一致しない | 未登録 | 品番を手で補わず、保留ログへ記録する | ラベル情報と管理単位を添えて登録依頼する |
| 複数件一致 | 重複 | 候補から選ばず、保留にする | マスター管理者が重複行と荷姿を修正する |
| 使用停止 | 保留 | 実績を確定しない | 旧在庫、切替後品番、代替品番の適用条件を調べる |
| 空欄・桁不足・余分な文字 | 再読取 | 読取欄を消して再度読む | ラベルと入力先、文字の欠落や付加を調べる |
バーコードを読んでも品番が確定しない理由を切り分ける
読取値には、自社品番、取引先のコード、商品識別コードなどがあり、同じ役割とは限りません。ロットや製造日が一緒に入っている場合もあります。そのため、まずどの情報を読んでいるかを調べます。上の表のように、マスターに見つからない値を現場の記憶で補うのではなく、ラベルと対応関係を調べる担当へ渡します。
現品ラベルを見ながら、読取値、印字された品番、実績へ残す自社品番を並べてみましょう。三つが同じなら直接照合できますが、異なるなら対応表を作ります。ただし、対応が見つかった後にも数量の単位や適用条件は残ります。次の項目を実際のラベルごとに調べ、似た表示でも区別するものがないかを洗い出します。
- 単品、内箱、外箱のうち、どの単位を読んで処理するか
- 読取後に表示する項目を、品番、品名、規格、単位、荷姿のどこまでにするか
- 取引先ラベルを使う場合、取引先ごとにコードの意味が変わるか
- ロット番号、製造日、連番などが読取値に含まれるか
例えば外箱のコードで単品の払出を記録すると、品番が合っていても箱数と個数を取り違えるおそれがあります。そこで、品番と一緒に荷姿、単位、換算する場合の入数を返します。現品の包装やラベルと一致しないときは、その場で数量を推測しません。どの単位を読んで、どの単位で実績を残すかまで対応させてから進めます。
読取・検索・実績記録を分けると誤入力を止めやすい
小さく始める構成では、「読取」「品番マスター」「実績ログ」を分けます。読取は検索候補を調べる場所、マスターは正式な対応表、実績ログは処理した結果を残す場所です。さらに、使えなかった値は保留ログへ残します。実績側を単なる検索式への参照にすると、次の読取やマスター変更で過去の品番まで変わるため、登録時の値を履歴として保存する仕組みを別に設けます。
ここでは、リーダーが選択中の入力欄へ文字を渡す方式を想定します。読取後に改行が付く場合や、別のセルへ移動する場合があるため、実ラベルで入力先と文字列を調べてください。先頭ゼロや桁数が変わるなら、そのまま検索へ通しません。機器とソフトの設定を合わせ、前回の候補が残ったまま別品目を登録しない流れも試します。
読取、実績登録、マスター更新は、担当が同じ場合も作業の段階を分けます。例外の発生を隠すために、その場で登録値を変えないようにするためです。次の分担例をもとに、誰が対応を依頼し、誰が採用や再開を判断するかを決めておきましょう。
- 読取担当者は、読取欄を選択してラベルを読み、表示結果と現品を照合する。
- 実績入力担当者は、適用条件と現品照合を含む判定が「OK」のときだけ数量・単位・処理区分・担当者を登録する。
- マスター管理者は、未登録・重複・使用停止の根拠を調べ、更新内容と理由、適用条件を残す。
検索では、似た値を探す方法と、同じ文字列を探す方法を区別します。関数が最初の1行を返しても、同じ値が複数あれば確定には使えません。また、完全一致という検索指定だけで、大文字・小文字や記号を意図どおり区別できるとは限りません。本記事の式はEXACTで文字列を比べ、一致件数が1件のときだけ候補を返す例にします。
品番をPCへ読み取る道具:BCR-2D5BK
広告
PCへ読取値を入力する道具の候補が、サンワサプライのBCR-2D5BKです。Windows PCのUSB A端子へ接続し、対応する1次元・2次元コードをキーボード入力として送る方式です。ただし、日本語QRコードと金属面への直接印字は非対応です。対応するコードでも大きさや桁数に制約があるため、使うラベルとメーカー仕様を照合して選びます。
Excelなどで使う際は、入力先、先頭ゼロ、読取後のカーソル移動を実ラベルで試します。機器が行う読み取りと、表計算側で行う品番検索は別です。マスターとの照合や数量・出荷内容の判断は、別途作る運用に依存します。当メディアでは、この機器の実接続や照合動作を試験していません。
対応コードや接続条件はメーカーの製品ページで照合できます。購入時の価格、在庫、送料は販売店の表示を見て判断してください。
品番マスターはバーコードを文字列で1件ずつ管理する
読取欄、マスターのバーコード列、ログの読取値列は、入力前から文字列として扱います。数値として取り込むと先頭ゼロや長い桁が失われ、後から表示形式を変えても元には戻せない場合があるためです。既に変わった値はラベルなどの元資料から直します。比較前に空白や記号を一律に削る方法も、異なるコードを同じにするおそれがあるため、仕様にない変換は行いません。
基本は「1つの検索キーに1つの有効な対応」です。同じ品番でも単品用と内箱用のコードが違えば、行を分けて単位と荷姿を持たせます。コードだけで区別できない取引先や包装は、それらの条件もキーに含めます。過去の切替履歴は保持しますが、現行検索に同じキーの行が混在しないよう、履歴の参照先と現在の対応を分けて管理します。
バーコード品番マスター雛形
下の11列を1行目へ置くのが基本例です。001234567890からAB-0123を呼び、M6と単位、荷姿を照合する架空の記入を示しています。内箱を読んで個数を記録するなら、別に正式な入数と換算条件も補います。また、有効開始日だけで切替を追い切れない場合は、終了日や対象注文・ロット、変更履歴の番号を加えてください。
| 列名 | 記入内容 | 記入例 |
|---|---|---|
| バーコード値 | 読取値を文字列で登録する | 001234567890 |
| 品番 | 自社で確定記録する品番 | AB-0123 |
| 品名 | 現品照合用の名称 | 部品A |
| 規格 | 現品と照合する仕様 | M6 |
| 単位 | 実績で使う数え方 | 個 |
| 荷姿 | 単品、内箱、外箱など | 内箱 |
| 状態 | 有効または使用停止など | 有効 |
| 有効開始日 | 使用開始・切替の基準日 | YYYY-MM-DD |
| 備考 | 旧ラベル併用などの補足 | 旧ラベルの対応を調査中 |
| 更新者 | 変更を行った担当 | 生産管理担当 |
| 更新日 | 変更した日付 | YYYY-MM-DD |
廃番や切替の履歴を消すと、当時の実績との対応を追えなくなります。旧値と期間、変更理由を履歴へ残し、現行側の状態を変更します。有効開始日を記入しただけでは、検索式が適用日を判定するわけではありません。予定日より前や適用範囲が不明なものは保留にします。重複の調べ方には、スプレッドシートで重複データを安全に見つける方法も参考になります。
スプレッドシートで読取値から品番を完全一致で表示する
以下はGoogleスプレッドシートの例です。「読取」のB2を入力欄、C2を一致件数、B5を候補品番とします。「品番マスター」のA列はコード、B列からG列は品番、品名、規格、単位、荷姿、状態です。読取欄とA列は文字列にそろえ、C2には後述の件数式を入れます。検索対象は2〜1000行の例なので、登録範囲が増えたらすべての式の終端を合わせてください。
EXACTとXLOOKUPで候補を表示する例
B5には、C2が1件のときだけ候補を返す次の式を置きます。EXACTで各行を比べた結果からTRUEの位置を探すため、大文字・小文字、空白、記号も区別する構成です。空の読取欄は空欄、0件や複数件は「保留」と表示します。表示された品番は、状態や現品を照合する前の候補として扱います。
=IF(B2="","",IF(C2=1,XLOOKUP(TRUE,ARRAYFORMULA(EXACT('品番マスター'!A2:A1000,B2)),'品番マスター'!B2:B1000,"要点検",0),"保留"))
末尾の0はTRUEとの完全一致を指定しています。品名、規格、単位、荷姿、状態を出す場合は、結果範囲の列を変え、同じEXACTの条件と件数を使います。ただし、この式には有効日、品番欄の未記入、現品照合、実績登録の制御は含まれません。数式エラーや未記入がある場合も登録を止める設計を、候補表示とは別に作ります。
VLOOKUPでも同じ文字列比較を使う
VLOOKUPを使う場合も、文字列そのものではなくEXACTの判定結果を先頭列にした配列を検索できます。次の式では、判定結果と品番の2列を組み、FALSEでTRUEを探します。Googleスプレッドシート向けの配列記法なので、Excelへそのまま移す前提にはしません。直接コードを検索すると記号がワイルドカードとして働く場合があるため、同じ比較条件を保ちます。
=IF(B2="","",IF(C2=1,VLOOKUP(TRUE,{ARRAYFORMULA(EXACT('品番マスター'!A2:A1000,B2)),'品番マスター'!B2:B1000},2,FALSE),"保留"))
C2には次の件数式を置きます。空欄なら0、それ以外はEXACTがTRUEとなる行を数えます。COUNTIFへ読取値を直接渡す方式は、大文字・小文字やワイルドカードの扱いが異なるため、ここでは使いません。候補表示と件数で比較条件が違うと、1件と表示されたのに別の行を返すことがあるので、両方を一緒に試します。
=IF(B2="",0,SUM(ARRAYFORMULA(N(EXACT('品番マスター'!A2:A1000,B2)))))
候補を表示する数式セルと、数量などを入力する欄は分け、数式を上書きさせない設定にします。また、複数人が共通のB2を使うと、照合中に別の値へ置き換わるおそれがあります。担当別の入力領域を分け、登録時に対象の読取値と候補が一致しているかを再照合します。機器からの入力や数式の表示だけで実績保存まで済むと扱わないことも大切です。
未登録・重複・使用停止は読取直後に止める
読取画面では、処理の段階を文字で示します。「未登録」「重複」「使用停止」「再読取」に加え、候補が見つかっても適用条件が残る間は保留とします。「OK」は、状態と適用条件、現品照合など、定めた条件を満たした後の表示です。上の式だけでこの判定まで自動にはなりません。色だけで通過させず、登録時にも保留やエラーを除く処理を設けます。
順序は、入力形式を調べ、一致件数を数え、1件なら状態・適用条件と現品を照合し、そろったら実績を登録する流れです。0件は未登録、2件以上は重複として保留にします。1件でも使用停止や開始日前、対象が不明な場合は進めません。空欄や所定の桁数を満たさない値は再読取とし、再度読めたことだけで保留品の使用や出荷を許可しないようにします。
保留理由によって、現場が残す情報と管理者が調べる対象は異なります。次の対応を読取場所の近くへ示し、推測で候補を選ぶ場面を減らしましょう。マスターを修正した後も、元のラベルと適用条件を照合し直してから、対象の処理を再開する流れにします。
- 未登録では、読取値、ラベルに印字された情報、現品の管理単位、発生日時、担当者を保留ログへ残し、決めた依頼先へ渡す。
- 重複では候補を選ばず、管理者が原因、荷姿、状態、適用範囲を調べて修正する。
- 使用停止では、旧在庫の処置条件、代替品番の適用、ラベル切替を責任者が判断する。
- 空読み、桁不足、余分な文字では、品番を推測せず、入力欄を消して再読取する。
保留ログには日時、読取値、判定、ラベル情報、担当者、対応状況、対応者を残します。未処理分を一覧へ出すには、Apps Scriptで未入力行を一覧化する方法の考え方も使えます。ただし、一覧化と処置の完了は別です。修正内容、再照合の結果、対象処理を再開した担当と時点まで結び付け、入力済みという理由だけで閉じないようにします。
内箱・外箱・取引先ラベルが混在する場合の登録方法
単品、内箱、外箱、通い箱では、同じ品物に関係しても識別する対象が異なります。品番だけを返すと、包装を読んだ回数が品物の個数として扱われるかもしれません。荷姿と実績単位、入数の根拠、換算方法を対応表へ残してください。通い箱自体を識別するコードなど、品物の品番とは役割が違うものを同じ検索へ混ぜない設計も考えます。
取引先のコードを使う場合は、相手とラベル様式、荷姿を対応表へ持たせます。同じ読取値でも取引先によって意味が違えば、コードだけでは一意になりません。検索前に相手を特定するか、対応表を分けるなどの方法を選びます。相手の選択が空欄でも適当な候補を返すのではなく、識別条件がそろうまで保留にします。
ロットや連番を含む値は、検索に使う部分と実績へ保存する情報を分けます。元の読取値は残し、仕様に沿って取り出した値と対応させましょう。文字数だけを頼りに切り出すと、様式や桁数が変わったときに別の意味を返すおそれがあります。画像から文字を得る場合も同様なので、OCRで図面番号を読み取る注意点も参照してください。
試験は30件を出発点に例外処理まで試す
試験の出発点として、30件程度のラベルから読取、候補表示、保留処理までを通します。30件で全品目を保証するものではないので、先頭ゼロ、大文字・小文字、記号、旧ラベル、荷姿違いなど、実際に区別する条件を含めます。正常に読めるものだけでなく、意図した異常で登録を止められるかも試しましょう。
開始前チェックリスト
対象ラベルを決めたら、下の項目を試験記録へ残します。候補が出ることだけでなく、連絡、修正、再照合まで一巡させてください。実績を自動で記録する場合は、同時入力や連続読取、保存失敗も加え、本番の数量へ影響しない試験用の環境で行います。
- 通常品、先頭ゼロを含むコード、内箱コード、旧ラベル、未登録コード、読めないラベルを含めて30件を選んだ。
- 各件で、品番、規格、単位、荷姿、適用条件を現品と照合した。
- コード列の空欄、重複、大小文字、空白、数式エラーを管理者が点検した。
- 未登録の登録依頼先、重複の修正担当、使用停止の判断担当を決めた。
- 保留ログの記録先と対応担当、期限、再開を判断する担当を決めた。
- 発生した問題を、機器、ラベル、マスター、運用の四つに分けて記録した。
結果が合わないときは、入力値、ラベルの種類、マスター行、表示結果を残して原因を追います。式だけを直すと、ラベルや対応表の誤りが残る場合があるためです。修正後は同じラベルに加え、似たコードや別荷姿、旧版も再試験します。数式エラーを一律に「未登録」へ隠さず、設定の不備として止めて調べる流れも用意します。
運用を広げる前にログと更新権限を固定する
実績へ残すのは、登録時の日時、読取値、確定した品番、数量と単位、処理区分、担当者、判定結果です。対象のロットや場所、参照したマスターの版も結び付けます。後からマスターが変わっても当時の値が変わらない保存にしてください。検索式へリンクしたままの一覧では、過去の処理を再現する記録にはならない場合があります。
更新権限は管理者へ限り、現場からは保留ログを通じて依頼する例が考えられます。変更前後の値、理由、更新者、日付を履歴へ残し、適用する対象と時点を示します。週次や月次には未登録、重複、再読取、使用停止の傾向を見ますが、処理中の不明点を定例日まで放置しません。緊急の連絡と定期的な傾向把握を分けて運用します。
自動記録を加える際は、対象の入力場所と件数、状態、現品照合の結果を登録時に再判定します。セルが編集されたというだけで保存しないでください。同じ処理の再送や連続読取を識別し、保存の成否が不明なときも二重登録へ進まない設計を試します。ここで示す検索式とは別の処理なので、試験用シートで検査してから対象を広げます。
記録を在庫の見直しに使うなら、品番だけでなく、ロット、場所、最後に出庫や加工をした日をたどります。長期滞留在庫リストの管理項目を参考に、使用予定と現物の状態を合わせて考えましょう。長く動いていないというだけで廃棄や転用を決めず、所有者と担当責任者の判断を記録へ残します。
よくある質問
式が同じでも、包装や取引先が違えば別の対応が残ります。そこで、仕組みを広げる前に、例外時の担当と判断材料を決めておきましょう。以下では、検索だけで結論を出せない場面を説明します。
バーコードが同じなのに、単品と箱で管理単位を変えたい場合はどう登録しますか?
同じ値で単品と箱を区別できないなら、コードだけの検索では分けられません。荷姿を含むキーにする、コードを分けるなど、現品と対応する方法を選びます。荷姿を手で選ぶ方式も、選択しただけで正しいとは扱わずラベルと照合します。実績には数量の単位と換算根拠も残し、同じ品番だからと箱数を個数へ混ぜないようにしてください。
既存ラベルのバーコードにロット番号などが含まれている場合、品番だけを検索できますか?
ラベル仕様に基づき、品番部分を一意に取り出せる場合に限って検索できます。複数の現品や様式変更を含めて試し、規則外の値は保留へ回します。元の読取値を消さず、抽出した品番キーとロットを対応させることも欠かせません。ロット部分を切り捨てて品番だけ合ったとしても、処理対象のロットが特定できたことにはなりません。
未登録コードを読んだとき、現場担当者がその場でマスターへ追加してよいですか?
マスター更新は管理者が根拠を照合して行い、現場担当が未登録を通すためだけに追加しない運用を基本にします。兼務の場合も依頼、照合、採用の段階を分けます。仮登録を認めるなら対象と期限、判断担当を決めますが、仮という表示だけで実績の確定を許可するものではありません。正式な採用条件を満たすまで通常登録から区別します。
バーコードが汚れて読めないとき、手入力へ切り替える前に何を調べますか?
まずラベルの汚れや反射、欠け、入力先を調べます。別ラベルを使う試験では、同品番でもロットや荷姿まで同じとは限らないため、対象の識別に使えるものかを先に合わせます。手入力へ切り替える場合も、元資料から入力し、同じ照合条件を通します。読み取れない値を推測せず、手入力した理由と照合した資料を残しましょう。
参考にした公式情報
バーコードは識別情報を読み取れる形にしたもので、コードが示す対象は用途によって違います。以下のGS1 Japan資料では、商品や物流単位、資産などの識別と、バーコードの役割を参照できます。自社品番との対応は別途決めるため、外観が同じコードだからと同じ管理単位へ結び付けないことがポイントです。
Googleの関数一覧から、EXACT、XLOOKUP、VLOOKUP、ARRAYFORMULAなどの説明へ進めます。編集イベントの資料は、自動処理へ広げる際の入力範囲や値の扱いを調べるための参照先です。本記事の式は設計例で、利用者のシートや実機で検証した完成システムではありません。使う環境で候補表示と登録制御をそれぞれ試してください。
- バーコード|GS1 Japan:情報を読み取るためのデータキャリアの説明。
- 識別コード|GS1 Japan:GTINなどが識別する対象を調べる資料。
- Google スプレッドシートの関数リスト|Google ドキュメント エディタ ヘルプ:検索・文字列比較などの関数案内。
- Event Objects|Apps Script|Google for Developers:編集イベントの対象範囲や入力値の仕様。
まとめ
まずは30件程度の試験対象で、読取値とマスターを文字列として照合します。検索キーを一意にし、荷姿、単位、状態、適用条件を候補と一緒にたどれる形にしましょう。未登録や重複は推測で補わず保留ログへ回し、解決してから元の対象を再照合します。読み取りを速くする前に、違う値を使わず止まれる流れを作ることが大切です。
運用後は、どの判定で止まったかと未解決の対象を振り返ります。件数の増加だけで機器が原因と決めず、ラベル、対応表、入力先、担当分担を調べて修正へつなげてください。変更後も現品との照合は残し、検索が通ることと実績が正しく保存されることを別々に試します。そうすることで、対象を広げた後も誤った登録を追いやすくなります。

