ホーム > ツール・Excel・API

最終更新: 2026.10.24

スプレッドシートのVLOOKUPの使い方|受注CSVに商品台帳の原価・仕入先を引く

スプレッドシートのVLOOKUPの使い方|受注CSVに商品台帳の原価・仕入先を引く

VLOOKUPは、検索キー(商品管理番号など)で別の表を探し、同じ行の値を持ってくる関数です。 商品番号から原価や仕入先を取得するときは、完全一致にするため最後の引数をFALSEにします。 #N/Aの多くは、数値と文字列の違い・余分な空白・台帳にない番号が原因なので、順に確認します。

VLOOKUPの書き方

受注CSVに原価を引くVLOOKUPの書き方。基本形は=VLOOKUP(検索キー, 範囲, 番号, 並べ替え済み)で、引数ごとに指定する内容と今回の例(A2、'商品台帳'!$A:$C、原価は2、FALSE)を表で示す。原価を引く式は=VLOOKUP(A2,'商品台帳'!$A:$C,2,FALSE)、仕入先なら番号を3にする。番号は指定した範囲の中で数える位置であること、商品番号の照合では必ずFALSEを明示することも記載

受注CSVに原価を引くには、商品番号を検索キーにして商品台帳を探し、原価の列を指定します。

基本形は、=VLOOKUP(検索キー,範囲,番号,並べ替え済み)です。

引数指定する内容今回の例
検索キー探したい商品番号が入ったセルA2
範囲検索列と取得する列を含む表'商品台帳'!$A:$C
番号範囲の左端を1とした取得列の位置原価は2
並べ替え済み完全一致か近似一致かFALSE

商品台帳のA列が商品番号、B列が単位原価、C列が仕入先なら、原価を引く式は次のとおりです。

=VLOOKUP(A2,'商品台帳'!$A:$C,2,FALSE)

仕入先を引く場合は、取得列の番号を変えて、=VLOOKUP(A2,'商品台帳'!$A:$C,3,FALSE)とします。

番号はシート全体の列番号ではなく、指定した範囲の中で数える位置です。

最後の引数を省略すると近似一致になるため、商品番号の照合では必ずFALSEを明示します。

また、VLOOKUPが探すのは指定範囲の左端列なので、商品番号を含む列から範囲を指定します。

受注CSVと商品台帳の検索キーをそろえる

検索キーには、受注明細と商品台帳に共通して存在し、原価や仕入先を特定できる番号を使います。

以下の列配置は説明用であり、楽天市場の実際のCSV項目名や列順を示すものではありません。

データ列配置
商品台帳A列:検索キー、B列:単位原価、C列:仕入先
受注の計算シートA列:検索キー、B列:数量、C列:明細売上
追加する計算列D列:単位原価、E列:仕入先、F列:原価合計、G列:商品粗利、H列:商品粗利率

キーを決めるときは、列名が似ているかではなく、同じ商品単位を指しているか確認します。

キーの候補採用する前の確認
商品管理番号などの商品単位の番号色やサイズが違っても原価・仕入先が共通か
SKU単位の番号受注側と台帳側で同じ番号体系になっているか
JANや店舗独自の商品番号空欄や重複がなく、先頭の0も保持されているか

同じ商品でもサイズによって原価が違う場合は、その違いを識別できるキーで照合します。

複数条件で検索する補助列

Googleのヘルプでは、VLOOKUPを複数条件に直接使うことはできず、&で値をつないだ補助列を作る方法が案内されています。

たとえば商品番号とサイズの組み合わせで原価を引くなら、台帳の左端に補助列を入れ、=B2&"|"&C2のように2つの値をつなぎます。受注側も同じ順番と区切り文字でつないだキーを作り、そのキーでVLOOKUPを使います。

区切り文字を入れると、「AB」と「C」、「A」と「BC」のような別の組み合わせが同じキーになるのを防げます。台帳に列を足すと、取得列の番号も1つずれるので式を見直します。

商品台帳の重複を先に消す

台帳に同じキーが複数あると最初の一致が返るため、検索前に採用する原価と仕入先を確定します。

VLOOKUPは重複をエラーにしないので、原価が表示されたことだけでは正しさを判断できません。

台帳の補助列に、=IF(A2="","",COUNTIF($A$2:$A,A2))を入力すると、同じキーの件数を確認できます。

結果・状態確認して行う処理
件数が1そのキーは範囲内で重複していない
件数が2以上で内容も同じ元台帳を保存して重複行を整理する
同じキーで原価が違う適用する原価を決めて照合用台帳を作る
同じキーで仕入先が違う採用する仕入先や管理単位を見直す
過去と現在の原価が混在履歴用と今回の照合用の台帳を分ける
  1. 元台帳のコピーを保存します。
  2. 重複候補の原価・仕入先・適用時点を確認します。
  3. 照合用台帳を、検索キーごとに採用情報が決まった状態へ整理します。

[データ]→[データ クリーンアップ]→[重複を削除]でも、判定対象の列を選んで整理できます。

ただし、キー列だけで機械的に削除すると、原価や仕入先の食い違いを見落とすおそれがあります。

COUNTIFは大文字と小文字を区別せず、*や?をワイルドカードとして扱う点にも注意します。

別シートの商品台帳を参照する方法

同じファイルにある別シートの台帳は、シート名と感嘆符を範囲の前に付けて参照します。

たとえば、計算シートのD2には、=VLOOKUP(A2,'商品台帳'!$A:$C,2,FALSE)と入力します。

'商品台帳'!は参照先シート、$A:$Cは固定した検索範囲を表しています。

検索キーのA2は固定しないため、下へコピーするとA3、A4へ順に変わります。

一方、台帳範囲は絶対参照で固定することで、コピーによる検索範囲の移動を防げます。

別ファイルの台帳はIMPORTRANGEで取り込む

別ファイルの商品台帳は、IMPORTRANGEで専用シートに取り込み、接続を許可してから検索します。

  1. 「設定」シートのB1に、参照元ファイルのURLを入力します。
  2. 「台帳取込」シートのA1に、=IMPORTRANGE('設定'!$B$1,"'商品台帳'!A:C")を入力します。
  3. 接続を求める#REF!が表示されたら、内容を確認して[アクセスを許可]を選びます。
  4. 取り込み後、=VLOOKUP(A2,'台帳取込'!$A:$C,2,FALSE)で原価を取得します。

元ファイルを閲覧できない場合は、接続許可の前に、所有者からアクセス権を得る必要があります。

確認項目Google公式の案内と運用上の注意
受信データ量リクエストごとに10MBが上限なので、必要な列・行に絞る
取り込み先の編集者接続後は、参照元の別範囲もIMPORTRANGEで取得できる
ファイル間の参照の連鎖何層にもつなぐと更新反映が遅くなることがある
更新間隔計算設定ヘルプは30分ごと、個別ヘルプは開いている間に1時間ごとと記載

更新間隔は公式資料間に記載差があるため、一定時間内の反映を前提にせず、集計前に元台帳と確認します。

また、共有範囲を限定したい場合は、連携に必要な情報だけを置いたファイルを用意します。

#N/Aになる原因と直し方

VLOOKUPで#N/A(完全一致できない)になる原因と直し方の一覧。確認の順番は検索キーの登録有無、データ型、空白、検索範囲。台帳に番号がない、数値と文字列が違う(ISNUMBERで確認し型を統一)、前後に余分な空白がある、検索列が違う、コピーで範囲が動いた(絶対参照にする)、先頭の0が消えている、の6原因それぞれに確かめ方と直し方を対応させている。下段に、コード内部の空白に意味がある場合は整形で別商品が同じキーにならないか確認すること、失われた桁はTO_TEXTだけでは復元できないので推測でゼロを補わないことを注記

#N/Aは、検索キーに一致する値が見つからないという意味です。完全一致で#N/Aが出た場合は、検索キーの登録有無・データ型・空白・検索範囲を順に確認します。

原因確かめ方直し方
台帳に番号がない元データと台帳で同じ番号を探す登録漏れや番号変更を確認する
数値と文字列が違う両側で=ISNUMBER(A2)を試す両側を同じ型へ統一する
前後に余分な空白がある元の値と整形後の値を比較する両側のキーを同じ規則で整形する
検索列が違う指定範囲の左端列を確認するキー列が左端になる範囲へ直す
コピーで範囲が動いたエラー行の式を確認する台帳範囲を絶対参照にする
先頭の0が消えている元CSVの識別子と比較する正しい文字列を元データから取り直す

ISNUMBERは数値ならTRUE、数字に見える文字列など、数値以外ならFALSEを返します。

文字列へそろえる補助列には、=TO_TEXT(A2)を使えますが、既存の表示形式も引き継ぎます。

先頭・末尾の空白を整える例は、=TRIM(TO_TEXT(A2))で、検索側と台帳側の両方へ適用します。

ただし、TRIMですべての空白文字を除去できるわけではなく、残っている文字の確認が必要です。

全角スペースが原因なら、=TRIM(SUBSTITUTE(TO_TEXT(A2)," "," "))で置換してから整形できます。

コード内部の空白に意味がある場合は、整形によって別の商品が同じキーにならないか確認します。

先頭の0の消失や指数表記があれば元CSVと照合し、表示形式と実際の値を分けて確かめます。

すでに失われた桁はTO_TEXTだけでは復元できないため、推測でゼロを補わないようにします。

IFNAで未一致の明細を残す

未登録の商品を見落とさないため、#N/Aは空欄やゼロではなく「要確認」と表示して残します。

計算シートのD2には、=IF(A2="","",IFNA(VLOOKUP(A2,'商品台帳'!$A:$C,2,FALSE),"要確認"))と入力します。

E2も同じ形にして、VLOOKUPの番号を3に変えると、仕入先を取得できます。

関数置き換える対象確認作業での使い分け
IFNA#N/Aのみ未一致を表示し、ほかのエラーを残す
IFERRORエラー全般エラーをまとめて指定表示へ置き換える

原価未登録をゼロにすると粗利を過大に計算するため、「要確認」の明細を解消してから集計します。

台帳側の原価空欄は未一致とは別の問題なので、検索前に数値が登録されているか確認します。

XLOOKUP・INDEX/MATCHとVLOOKUPの違い

検索列の左側を取得したい場合や、列番号を数えず指定したい場合は、ほかの検索関数も選択肢です。

比較項目VLOOKUPXLOOKUPINDEX/MATCH
検索方法範囲の左端列を検索検索範囲と結果範囲を指定MATCHで位置を探しINDEXで取得
左側の列の取得通常の範囲指定では不可可能可能
完全一致の指定FALSE0、省略時も完全一致MATCHに0
未一致の表示IFNAなどを併用引数で指定できるIFNAなどを併用
取得列の指定範囲内の列番号結果範囲を直接指定結果範囲を指定

原価を取得するXLOOKUPの例は、=XLOOKUP(A2,'商品台帳'!$A:$A,'商品台帳'!$B:$B,"要確認",0)です。

INDEX/MATCHでは、=INDEX('商品台帳'!$B:$B,MATCH(A2,'商品台帳'!$A:$A,0))と書けます。

MATCHは検索の種類を省略すると近似検索になるので、商品番号の照合では0を明示します。

どの関数を使う場合も、検索範囲と結果範囲は、同じ商品の行に対応するようにそろえます。

原価から粗利の列を作る方法

商品粗利は明細売上から数量分の原価を引き、売上と原価の税区分や適用時点をそろえて計算します。

B列の数量とC列の明細売上が数値であることを確認したうえで、次の計算列を追加します。

セル項目式
F2原価合計=IF(A2="","",IF(ISNUMBER(D2),B2*D2,"要確認"))
G2商品粗利=IF(A2="","",IF(ISNUMBER(F2),C2-F2,"要確認"))
H2商品粗利率=IF(A2="","",IF(ISNUMBER(G2),IF(C2=0,"対象外",G2/C2),"要確認"))

H列はパーセント表示にし、売上ゼロの明細では除算せず、「対象外」として確認できる状態にします。

計算前に決めること確認内容
明細売上単価ではなく、数量分の売上になっているか
税区分売上と原価で税込・税抜が混在していないか
値引きどの金額を差し引き、明細へどう配分するか
原価の時点現在の原価か、受注時点の原価か
返品・取消集計対象と数量の扱い
送料・手数料別の費用列で管理するか

ここでの商品粗利は店舗内の管理用の計算例なので、会計帳簿と照合する際は費用の範囲も確認します。

台帳を更新すると過去分の原価も変わり得るため、月次確定時には適用原価と計算結果を保存します。

CSVの貼り直しで範囲がずれない工夫

CSV更新時は原本と計算シートを分け、検索範囲を列全体で固定すると、式の上書きや追加行の漏れを減らせます。

'商品台帳'!$A:$Cなら検索対象の終端行を固定しないため、台帳の末尾に追加した商品も対象になります。

ただし、列全体の指定で防げるのは範囲外の問題であり、計算式のコピー漏れは別に確認します。

起きやすい問題対策
CSVを貼って式が消える「受注原本」と「計算」を分ける
新商品が検索対象に入らない台帳を列全体で参照する
新しい受注明細に式がない数式の適用行を確認する
前回の注文が末尾に残る旧データの内容を消してから更新する
台帳の列追加で違う値が返る列構成と取得列の番号を再確認する

コピー漏れを減らすには、D2へ=ARRAYFORMULA(IF(A2:A="","",IFNA(VLOOKUP(A2:A,'商品台帳'!$A:$C,2,FALSE),"要確認")))と入力する方法があります。

この場合は結果が展開するD列へ別の値を入れず、仕入先や粗利の列も新しい行まで計算させます。

  1. 同じ受注原本シートを維持し、旧データの内容を消してCSVを更新します。
  2. 列名・列順と、先頭の0を含む検索キーを元CSVと比較します。
  3. 台帳の重複・原価空欄・「要確認」を解消してから集計を確定します。

よくある質問(FAQ)

VLOOKUPで迷ったら、検索条件・台帳の構造・元データを順に確認すると、原因を切り分けやすくなります。

FALSEでも違う原価が返るのはなぜですか

重複キーがあると最初の一致が返るため、台帳の重複、取得列の番号、検索キーの管理単位を確認します。

なお、検索キーの*や?は、FALSEでもワイルドカードとして働くため、文字を含むコードは注意が必要です。

台帳を昇順に並べ替える必要はありますか

完全一致のFALSEでは昇順への並べ替えは不要なので、商品番号の照合ではFALSEを明示します。

#REF!も未登録の商品という意味ですか

列番号が範囲の列数を超えた場合や、IMPORTRANGEの接続許可が必要な場合もあるため、表示内容を確認します。

先頭の0はTO_TEXTで戻せますか

TO_TEXTは文字列へ変換する関数なので、すでに消えた0は元CSVや正式な台帳から取り直します。

値が見つからないのに台帳には番号があるのはなぜですか

見た目が同じでも、片方が数値でもう片方が文字列だったり、前後に空白があったりすると一致しません。ISNUMBERとTRIMで両側の型と空白をそろえてから、もう一度検索します。

原価が見つからない明細をゼロにしてよいですか

原価未確定の明細をゼロにすると粗利を過大に計算するため、「要確認」で残して登録内容を確認します。

ご相談・お問い合わせ

店舗の「次の一手」を一緒に進めるなら

AI社員アプリ・運営代行・ECコンサルまで、現場を知るチームがワンストップで伴走します。

AI社員アプリ ラクリプで日々の作業を自動化。導入のご相談も
運営代行 受注・ページ・広告まで店舗運営をまるごと代行
ECコンサル/AI顧問 SOY受賞店の知見で戦略と改善、AI活用を設計
西尾 勝太

西尾 勝太株式会社ラクダ 代表

楽天SOY 2年連続受賞 / 楽天NATIONSリーダー店舗 / 楽天NATIONS AIエバンジェリスト

楽天市場の月商を5年で200万円→2億円に伸ばした現場の実践者。売れるECの方程式にAIを重ね、EC事業者の「次の一手」に伴走しています。

西尾勝太のブログを読む
415社 導入実績
1,000+人 ラクリプウォーク利用者
2年連続 楽天SOY受賞
西尾勝太

SYOTA NISHIO

西尾 勝太

#楽天SOY 2年連続#楽天NATIONS講師#NATIONS AIエバンジェリスト#AI×EC

金融系システム会社で10年以上、システムとデータに向き合う現場経験を積む。その後、家業でもある75年続く老舗化粧品店にジョインし、EC事業の立て直しに着手。

広告に頼らず、商品ページ・レビュー・リピート導線を一つずつ磨き込む地道な運営で、楽天市場の月商を5年で200万円から2億円へと100倍に成長。2024年・2025年と2年連続で楽天ショップ・オブ・ザ・イヤーを受賞し、楽天NATIONS講師として全国の店舗運営も支援してきた。

「現場で結果を出す人が、もっと創造的な仕事に時間を使えるように」

その思いから、売れるECの方程式にAIを掛け合わせたEC特化型AIエージェント「ラクリプ」を開発。

いまも一人のプレイヤーとして店舗に立ちながら、ECに携わる事業者の「次の一手」に伴走し続けている。

100倍楽天月商
200万→2億円(5年)
13/15NATIONS講師として
短期で売上2倍達成
415社ラクリプの導入実績
(EC事業者)
250名AI×EC
オンライン勉強会主催

CAREER TIMELINE

数字と熱量で塗り替えた、EC×AIの軌跡

  • SYSTEM ERA金融系システム会社で10年以上の実戦経験を積む
  • EC ERA START75年続く老舗化粧品店にジョイン。EC事業の改革に着手
  • 2024楽天月商を5年で200万→2億へ。楽天ショップ・オブ・ザ・イヤー受賞
  • 2024-楽天NATIONS講師に就任。短期で15店舗中13店舗の売上2倍を達成
  • 2024-花王など大企業向けECセミナーで熱狂を呼ぶダントツ講師として登壇
  • 2025EC事業者向け200名規模のAIセミナーを開催。100名超のECコミュニティ「COD」を運営
  • 2025株式会社ラクダを創業。EC特化型AIエージェントサービス「ラクリプ」をリリース
  • 2025楽天ショップ・オブ・ザ・イヤー 2年連続受賞
  • 2026.01楽天新春カンファレンスでAIをテーマに登壇
  • 2026.03楽天NATIONS AIエバンジェリストに就任
  • 2026.04AI×EC勉強会で約250名規模のオンライン勉強会を主催
  • 2026.08楽天グループ最大級のビジネスイベント「Rakuten AI Optimism」に登壇。三木谷社長とセッションを行う
  • NOWラクリプは導入実績415社に到達。Chrome拡張「ラクリプウォーク」も1,000+ユーザーが利用中

HONORS & POSITIONS

主要な受賞・公職

01楽天SOY 2年連続受賞2024・2025年 楽天ショップ・オブ・ザ・イヤーを連続受賞。EC業界でも稀有な実績
02楽天NATIONS講師短期で15店舗中13店舗の売上2倍を達成
03NATIONS AIエバンジェリスト2026年3月就任。AI×ECの最前線を牽引
04楽天新春カンファレンス登壇2026年1月、AIテーマで登壇
05ECコミュニティ「COD」運営EC事業者100名超のコミュニティを主宰。AI×ECの知見を継続発信
06ラクリプの導入実績415社2025年創業のラクダで開発したEC特化AIエージェントが拡大中
07大手企業講演に継続登壇花王をはじめとする企業の社内講演に継続的に登壇
08Chrome拡張「ラクリプウォーク」楽天店舗運営を支援する拡張が1,000+ユーザーへ。現場ツールとして支持が拡大
09株式会社やよい 副社長75年続く老舗化粧品店の副社長として実店舗を運営し、人材育成に注力

MESSAGE

EC事業者の、いちばん近くの味方でありたい

私自身、朝から晩まで受注処理やページ修正に追われ、「本当にやりたい企画に手が回らない」もどかしさを、現場で何年も味わってきました。AIは、その時間を事業者の手に取り戻すための道具です。派手な魔法ではなく、日々の一手間を静かに肩代わりしてくれる相棒——ラクリプをそんな存在に育てていきます。

EC運営は、ともすれば孤独になりがちな仕事です。だからこそ、数字にも、迷いにも、いちばん近くで伴走する。それが私たちラクダの役割だと思っています。

西尾 勝太

実務家が磨いたAIを、無料で試してみる