【Excel】エクセルでバーコードを読み取る方法(バーコードリーダー・検索)
Excelで商品コードや管理番号を扱うとき、バーコードリーダーを使って入力を自動化したい場面があります。
バーコードを読み取った値を表へ記録し、商品名や在庫数を検索できれば、手入力による打ち間違いを減らしながら作業時間も短縮できます。
バーコードリーダーの多くは、Windowsパソコンではキーボード入力のように動作します。
そのため、特別なアドインがなくても、Excelのセルを選択してから読み取るだけで基本的な管理表を作成できます。
この記事で押さえるポイントです。
・バーコードリーダーは読み取った番号をキーボード入力としてExcelへ送る仕組みです。
・検索にはXLOOKUP関数やVLOOKUP関数を使えます。
・読み取り後にEnterへ移動する設定にすると、連続入力が進めやすくなります。
サンプルでは、1行目を見出し行として、A列にバーコード、B列に商品名、C列に単価、D列に在庫数を配置します。
最初に商品マスターと読み取り用の入力欄を分けておくことが、検索エラーを防ぐ基本です。
それでは、バーコードをExcelで読み取って検索する方法を順番に見ていきましょう。
エクセルでバーコードを読み取る基本操作
それではまず、バーコードリーダーから番号をExcelへ入力する基本操作について解説していきます。
| バーコード | 商品名 | 単価 | 在庫数 |
|---|---|---|---|
| 4901234567890 | ミネラルウォーター | 120 | 48 |
| 4901234567906 | 緑茶 | 140 | 32 |
バーコードリーダーとExcel入力の関係
バーコードリーダーは、バーコードに含まれる数字や文字を読み取り、パソコンへ送信する機器です。
USB接続の一般的なバーコードリーダーは、Windowsからキーボードとして認識されるHIDキーボード方式を採用していることが多いです。
この方式では、Excel側で複雑な設定をしなくても、選択中のセルに読み取り結果が直接入力されます。
たとえばA2セルをクリックした状態で商品バーコードを読み取ると、A2セルに4901234567890のような値が表示されます。
Excelがバーコードそのものをカメラで判別しているのではなく、リーダーが変換した文字列を受け取っていると理解すると、設定の考え方が分かりやすくなります。
まずはメモ帳を開いてバーコードを読み取り、数字が正常に入力されるか確認しましょう。
メモ帳でも値が入力されない場合は、ExcelではなくUSB接続、電池、Bluetooth接続、リーダー本体の設定を確認する必要があります。
一方、メモ帳では読めるのにExcelだけ桁が崩れる場合は、セルの表示形式や先頭ゼロの扱いを見直します。
バーコードの値は、計算に使う数値ではなく識別番号です。
先頭のゼロや13桁の並びをそのまま保持したいときは、入力先の列を文字列形式に設定しておくと安全です。
読み取り先セルの準備
続いて、バーコードを受け取るセルを準備する操作を確認していきます。
新しいワークシートを開き、A1セルへバーコード、B1セルへ商品名、C1セルへ単価、D1セルへ在庫数と入力します。
A列全体を選択してから、ホームタブの数値グループにある表示形式で文字列を選択してください。
あらかじめ文字列へ設定しておくと、0012345678901のようなコードを読み取った際も、先頭の0が消えにくくなります。

入力するセルをA2に合わせ、バーコードリーダーの読み取り窓をラベルへ近づけます。
読み取り音が鳴ったあとにセルへ値が入れば、Excelへの連携は成功です。
商品コードを読み取ったあと、次の行へ自動移動したいときは、リーダーのサフィックス設定でEnterを送信する方式が便利です。
設定用バーコードが付属説明書に掲載されている機種では、EnterまたはCRを付加する設定を読み取って変更できます。
連続して在庫棚卸しをする場合は、読み取り後に次行へ移る設定にすると、マウス操作を挟まずに入力できます。
ただし、検索用の単一入力欄を使う場合は、Enterで検索結果が確定する構成との相性も考える必要があります。
文字列として保存する設定
続いて、バーコードを欠けずに保存するための表示形式を確認していきます。
バーコードにはJANコードやUPCなどがあり、桁数が長いコードではExcelの自動変換による影響を受けることがあります。
Excelでは15桁を超える数値を正確に保持できないため、長い管理番号やGS1形式のコードは特に文字列として扱うことが重要です。
既に数字として入力済みのセルを文字列へ変更しても、失われた先頭ゼロは自動では復元されません。
元データの桁数が決まっている場合は、表示形式をユーザー定義にして、たとえば13桁なら0000000000000を設定する方法もあります。
ただし、この方法は見た目だけを13桁に整える処理です。
検索に使う商品マスターと入力値のデータ型が異なると一致しないことがあるため、マスター側も入力側も文字列へそろえると安定します。
確認の目安です。
セルの左上に緑色の三角が出ている場合、数値が文字列として保存されている可能性があります。
バーコード管理では、その状態が必ずしもエラーではありません。
【操作のポイント】読み取り列は先に文字列形式へ変更し、商品マスターのバーコード列も同じ形式へ統一します。
バーコードリーダーで連続入力する設定
続いては、バーコードリーダーで連続入力をしやすくする設定について確認していきます。
| 入力順 | 読み取り値 | 次の動作 |
|---|---|---|
| 1件目 | 4901234567890 | A3へ移動 |
| 2件目 | 4901234567906 | A4へ移動 |
Enter送信による次行移動
続いて、読み取り後に自動で次の行へ移動する操作について解説していきます。
バーコードリーダーには、読み取った文字列の末尾へEnterキーやTabキーを追加するサフィックス機能が用意されていることがあります。
末尾にEnterを付ける設定なら、A2セルへ入力後にA3セルへ移動するため、棚卸しや入庫記録に向いています。
リーダーの取扱説明書で、Suffix、Postamble、CR、Enterなどの名称を確認してください。
設定は専用ソフトで行う機種もありますが、マニュアル内の設定バーコードを読み取るだけで変更できる機種もあります。
機種ごとに手順は異なるため、別機種用の設定バーコードを読み取らないよう注意しましょう。
バーコードリーダーの設定はExcelファイルではなく、リーダー本体に保存される場合があります。
そのため、別のパソコンへ移しても同じ入力動作になることがあります。
Tab送信による横方向入力
続いて、横方向へ入力欄を移動するTab送信について確認していきます。
検品表でバーコード、数量、担当者の順に入力する場合は、EnterではなくTabを送信する設定が便利なことがあります。
たとえばA列をバーコード、B列を数量にしている場合、A2でコードを読み取った直後にB2へ移動できる構成です。
数量をキーボードで入力してEnterを押せば、次の行のB列へ移動します。
このままでは次のバーコード入力欄へ戻りにくいため、表の設計とExcelの入力後移動方向を組み合わせて調整しましょう。
Excelのファイルタブからオプションを開き、詳細設定にあるEnterキーを押した後にセルを移動する方向を下へ設定する方法があります。
ただし、リーダー側がTabを送る場合、ExcelのEnter移動設定だけでは動きません。
実際の作業順序に合わせて、リーダーのサフィックスと表の列配置を決めることが大切です。
重複読み取りを確認する方法
続いて、同じ商品を重複して読み取ったときの確認方法を解説していきます。
棚卸しや出荷チェックでは、同じバーコードを二度読み取るケースがあります。
入力列の範囲を選択し、ホームタブの条件付き書式からセルの強調表示ルール、重複する値を選ぶと、重複コードを色分けできます。
重複を検出したい範囲がA2からA1000の場合、A列だけを対象に設定すると判定しやすくなります。
重複は必ずしも入力ミスとは限らず、同一商品が複数個ある可能性もあります。
そのため、重複セルを即座に削除するのではなく、数量列や作業記録と照合して判断しましょう。
重複判定用の数式例です。
1行目に見出しがあり、A2からバーコードが入力されている場合、E2セルへ次の数式を入力します。
=COUNTIF($A$2:A2,A2)
結果が2以上なら、そのバーコードは入力済みの範囲に存在します。
【操作のポイント】大量に連続入力する前に、数件だけ読み取ってEnterまたはTabの移動先を必ず試します。
XLOOKUP関数によるバーコード検索
続いては、読み取ったバーコードから商品名や単価を表示するXLOOKUP関数について確認していきます。
| 入力欄 | 値 | 検索結果 |
|---|---|---|
| B2 バーコード | 4901234567890 | ミネラルウォーター |
| C2 単価 | 120 | 商品マスターから取得 |
商品マスターと検索用シートの作成
続いて、検索に必要な商品マスターと入力シートの作り方について解説していきます。
最初に商品マスターというシートを作成し、A1からD1へバーコード、商品名、単価、在庫数という見出しを入力します。
A2以降には、各商品のバーコードと対応する情報を登録してください。
次に、検索という名前のシートを作成し、A1へバーコード、B1へ商品名、C1へ単価、D1へ在庫数と入力します。
検索シートのA2を選択してバーコードリーダーで商品を読み取ると、A2にコードが入る構成です。
B2からD2には、商品マスターから対応する項目を返す数式を設定します。
商品マスターのバーコード列に同じコードを複数登録しないことが、正しい検索結果を返すための前提です。
XLOOKUP関数の入力手順
続いて、XLOOKUP関数で商品名を取得する操作を確認していきます。
検索シートのB2セルを選択し、次の数式を入力します。
=XLOOKUP(A2,商品マスター!$A$2:$A$1000,商品マスター!$B$2:$B$1000,”該当なし”)
この数式では、A2のバーコードを商品マスターのA2からA1000で探し、見つかった行のB列にある商品名を返します。
最後の該当なしは、マスターにコードが登録されていない場合に表示する文字です。
単価を表示するC2セルでは、返す範囲だけを商品マスターのC列へ変更します。
=XLOOKUP(A2,商品マスター!$A$2:$A$1000,商品マスター!$C$2:$C$1000,”該当なし”)
在庫数を表示するD2セルも同様に、商品マスターのD列を返す範囲に設定します。
数式を入力したら、A2へバーコードを読み取り、商品名と単価が表示されるか確認しましょう。
数式を下方向へコピーする方法
続いて、複数行の読み取り結果へ検索数式を反映する方法を解説していきます。
バーコードをA2からA100まで連続で記録する表では、B2からD2の数式を下方向へコピーします。
B2からD2を選択し、選択範囲の右下に表示される小さな四角形であるフィルハンドルを下へドラッグしてください。
数式中のA2は、次の行ではA3、その次はA4へ自動的に変化します。
一方、商品マスターの検索範囲は$A$2:$A$1000のようにドル記号を使って絶対参照にしているため、コピーしても範囲がずれません。
検索値だけを相対参照にし、商品マスターの範囲は絶対参照にすることが数式コピーの重要な考え方です。
テーブル機能を使う場合は、データ範囲を選択してCtrlキーとTキーを押すと、新しい行へ数式が自動反映されやすくなります。
【操作のポイント】XLOOKUP関数をコピーする前に、マスター範囲へドル記号を付けて固定します。
VLOOKUP関数とIFERROR関数の活用
続いては、XLOOKUP関数が使えないExcelでも対応しやすいVLOOKUP関数とエラー処理について確認していきます。
| 検索値 | 使用関数 | 表示内容 |
|---|---|---|
| 登録済みコード | VLOOKUP | 商品名 |
| 未登録コード | IFERROR | 未登録商品 |
VLOOKUP関数による商品名検索
続いて、VLOOKUP関数で商品名を検索する方法について解説していきます。
VLOOKUP関数は、指定した表の左端列から検索し、同じ行の右側にある値を取り出す関数です。
検索シートのB2セルへ、次の数式を入力します。
=IFERROR(VLOOKUP(A2,商品マスター!$A$2:$D$1000,2,FALSE),”未登録商品”)
A2は検索するバーコード、商品マスターのA2からD1000は検索対象の表、2は表の左から2列目である商品名を意味します。
FALSEは完全一致で検索する指定です。
バーコード検索では、似た数値を近似で探す必要がないため、FALSEを指定しましょう。
VLOOKUP関数は検索列が表の最も左にある必要があります。
商品マスターでバーコードがB列にある場合は、バーコード列を左端へ移すか、XLOOKUP関数やINDEX関数とMATCH関数の組み合わせを検討します。
未登録バーコードの表示
続いて、商品マスターにないバーコードを読み取った場合の表示について確認していきます。
登録されていないコードをVLOOKUP関数で検索すると、そのままでは#N/Aエラーが表示されます。
エラーを作業者が見落とすと、未登録品の確認が遅れるかもしれません。
そこでIFERROR関数を組み合わせ、エラー時だけ未登録商品や要確認という文字を表示します。
単価用のC2セルであれば、次のように設定できます。
=IFERROR(VLOOKUP(A2,商品マスター!$A$2:$D$1000,3,FALSE),”確認中”)
未登録商品を見つけたら、バーコードの読み取り不良、マスター未更新、商品コード変更のいずれかを確認しましょう。
エラーを隠すだけでなく、確認すべき状態だと分かる文言を表示することが運用では大切です。
検索できないときのデータ確認
続いて、読み取ったのに商品名が表示されない場合の確認方法を解説していきます。
最初に、検索シートと商品マスターでバーコードの桁数が同じか確認します。
入力値の末尾に空白が含まれると、一見同じコードでも完全一致では見つかりません。
リーダーの設定によってはEnterやTab以外の制御文字が付く場合もあるため、メモ帳で入力結果を確認すると原因を切り分けやすいです。
また、一方が数値形式で他方が文字列形式の場合、環境や関数の使い方によって検索できないことがあります。
両方の列を文字列形式へ統一し、必要に応じてデータタブの区切り位置機能で形式をそろえましょう。
【操作のポイント】検索できない場合は、数式を直す前に桁数、先頭ゼロ、空白、セルの形式を確認します。
バーコード管理表の実務的な作成
続いては、入庫や棚卸しで使いやすいバーコード管理表の作成について確認していきます。
| 日時 | バーコード | 商品名 | 数量 |
|---|---|---|---|
| 2026/10/11 | 4901234567890 | ミネラルウォーター | 1 |
入庫記録に日時を付ける方法
続いて、読み取り記録へ日時を残す方法について解説していきます。
入庫や出庫の履歴を残す表では、A列に日時、B列にバーコード、C列に商品名、D列に数量を置くと確認しやすくなります。
その時点の日付と時刻を数式で表示する場合は、A2へNOW関数を入力します。
=NOW()
NOW関数はブックの再計算で時刻が変わるため、確定した作業記録として残したい場合には注意が必要です。
入力後にコピーし、形式を選択して貼り付けから値を選ぶと、その時点の日時として固定できます。
ショートカットを使う場合は、日付の入力にCtrlキーとセミコロン、時刻の入力にCtrlキーとShiftキーとセミコロンを使う方法もあります。
履歴表では日時を後から変わらない値として保存することが、正確な在庫管理につながります。
数量入力と在庫計算
続いて、数量を記録して在庫を計算する考え方について確認していきます。
バーコードを1回読み取るごとに1個として数える運用では、数量列へ1を入力する方法が分かりやすいです。
同じ商品をまとめて入庫する場合は、バーコードを読み取った後に数量列へ実数を入力します。
商品別の合計数量を別表で求める場合、SUMIF関数を使えます。
=SUMIF($B$2:$B$1000,F2,$D$2:$D$1000)
この数式では、B列のバーコードがF2と一致する行について、D列の数量を合計します。
入庫を正の数、出庫を負の数で入力するルールにすれば、同じ表から増減を集計できます。
作業担当者が複数いる場合は、担当者列や区分列も追加すると、後から履歴を追いやすくなります。
テーブル機能による入力範囲の拡張
続いて、データが増えても数式や書式を保ちやすいテーブル機能について解説していきます。
見出しを含む管理表の範囲を選択し、CtrlキーとTキーを押すとテーブルの作成画面が開きます。
先頭行をテーブルの見出しとして使用するにチェックが入っていることを確認してからOKを選択してください。
テーブル化すると、新しい行へ入力したときに罫線、数式、条件付き書式が引き継がれやすくなります。
バーコードの入力件数が日々増える表ほど、テーブル化の効果が大きくなります。
フィルター機能も自動で追加されるため、特定の日付、商品、担当者だけを表示する操作も行いやすくなります。
【操作のポイント】履歴を残す表は、バーコードだけでなく日時、数量、担当者を同じ行へ記録します。
まとめ エクセルでバーコードを読み取る方法
Excelでバーコードを読み取る場合、一般的なUSBバーコードリーダーはキーボード入力として動作するため、入力先セルを選択して読み取るだけで基本操作を始められます。
バーコード列は文字列形式に設定し、先頭ゼロや長いコードが崩れないよう準備することが重要です。
商品マスターと読み取り用シートを分け、XLOOKUP関数で商品名や単価を取得する構成にすると、日常の検索作業を効率化できます。
XLOOKUP関数が使えない環境では、VLOOKUP関数とIFERROR関数を組み合わせても、未登録コードを確認しやすい検索表を作成できます。
連続読み取りでは、リーダー本体のEnter送信やTab送信の設定と、Excel上の入力順を合わせることが作業効率を左右します。
また、重複チェック、日時の記録、テーブル化まで取り入れると、単なる検索表から入出庫や棚卸しに使える管理表へ発展させられます。
不明なバーコードを読み取ったときは、すぐにマスターへ追加するのではなく、桁数、先頭ゼロ、空白、商品情報を確認してから登録しましょう。
安全で正確な運用ルールを決めたうえで、バーコードリーダーとExcelを活用してみてください。