「エクセルで別のシートにあるデータを自動で表示させたい」「手作業でコピーするのは面倒だしミスが怖い」と悩んでいませんか?そんなときに便利なのが、エクセルの別シートへ転記できる関数です。関数を一度設定してしまえば、元のデータを更新するだけで転記先も自動的に反映されるため、入力の手間を大幅に削減できます。
この記事では、定番のVLOOKUP関数から最新のXLOOKUP関数、さらに応用的なINDEX関数やMATCH関数まで、具体的な手順を優しく解説します。パソコンやスマートフォンの操作で役立つ効率化テクニックとして、仕事やプライベートのデータ管理にぜひ役立ててください。初心者の方でもすぐに実践できるよう、各関数のメリットや使い分けのコツも詳しく紹介します。
エクセルの別シート転記に関数を使うメリットと基本操作

エクセルでデータを管理していると、特定のデータを別のシートに抽出したり、まとめ直したりする場面が多々あります。これを手動で行うと、コピー&ペーストのミスや更新漏れが発生しやすくなりますが、関数を使えば正確かつスピーディーに処理できます。
そもそも「転記」とは?関数を使うと何が変わる?
エクセルにおける「転記」とは、ある場所にあるデータを別の場所に書き写すことを指します。特に「別シートへの転記」は、顧客名簿から請求書を作成したり、在庫リストから特定の商品の状況を引き出したりする際に欠かせない作業です。
関数を使って転記を行う最大のメリットは、データが連動することです。元のシート(参照元)の数値を書き換えるだけで、転記先のシートも自動的に最新の状態に更新されます。これにより、複数のシートを一つずつ修正する手間がなくなり、事務作業の効率が劇的に向上します。
また、関数でルールを決めておくことで「入力ミス」という人間ならではのエラーを防ぐことができます。一度数式を組んでしまえば、誰が操作しても同じ結果が得られるため、チームでファイルを共有する際にも非常に有効な手段となります。
最もシンプルな「=(イコール)」を使った別シート参照
最も基本的な転記方法は、セルに「=(イコール)」を入力して、別シートのセルを直接指定する方法です。これは特定の1つのセルをそのまま表示させたいときに便利で、難しい関数を覚える必要もありません。
手順は簡単です。転記先のセルで「=」を入力し、マウスで別シートに移動して、反映させたいセルをクリックしてEnterキーを押すだけです。これで、シートをまたいだリンクが作成されます。非常に直感的で分かりやすい操作と言えるでしょう。
この方法は「参照」と呼ばれ、元のセルの値が変われば即座に反映されます。ただし、大量のデータを条件に合わせて抽出するのには向いていないため、あくまで特定の値を1対1でつなぎたい場合に使用するのがおすすめです。
参照するシート名を正しく記述するルール
関数の中で別シートを指定する場合、エクセル内では「シート名!セル番地」という形式で記述されます。例えば「売上」というシートの「A1」セルを参照したいときは「売上!A1」という書き方になります。この「!」(感嘆符)が区切りの役割を果たします。
自分でキーボードを使って数式を打つ際、このビックリマークを忘れるとエラーになってしまいます。エクセルが「これはシートの名前だよ」と認識するために必要な記号ですので、手入力する際は注意が必要です。
もしシート名が長い場合や、入力ミスが心配な場合は、数式の途中でマウスを使って直接そのシートのセルをクリックしてください。そうすれば、エクセルが自動的に正しい形式でシート名を数式の中に組み込んでくれます。
シート名にスペースや記号がある場合の特殊な書き方
シート名に「2024年度 売上」のようにスペースが含まれていたり、特定の記号が含まれていたりする場合、エクセルはシート名を「’(シングルクォーテーション)」で囲うルールになっています。具体的には「’2024年度 売上’!A1」のような表記になります。
このシングルクォーテーションを忘れると、エクセルはどこまでがシート名でどこからが計算式なのか判断できず、エラーを返してしまいます。自分で数式を修正する際に「シート名を変えたらエラーが出た」というときは、この記号の有無を確認してみましょう。
基本的にはマウス操作でセルを選べば自動で付与されますが、関数の応用テクニックを使うようになると手書きする機会も増えます。このルールを知っておくだけで、シート参照のトラブルを未然に防ぐことができるようになります。
VLOOKUP関数で別シートから必要なデータを取り出す

エクセルの転記といえば、まず名前が挙がるのがVLOOKUP(ブイルックアップ)関数です。特定のキーワード(IDや商品名など)を元に、別シートの巨大なリストから関連する情報を探して持ってくるのが得意な関数です。
VLOOKUP関数の基本的な仕組みと引数の書き方
VLOOKUP関数は、指定した範囲の「一番左側の列」を上から順番に検索し、目的のデータが見つかったらその行の指定した列にある値を返します。基本の形は「=VLOOKUP(検索値, 範囲, 列番号, 検索方法)」となります。
1つ目の「検索値」には、探したい手がかり(社員番号など)を入れます。2つ目の「範囲」には、データが格納されている別シートの表全体を指定します。3つ目の「列番号」は、その表の左から何番目のデータが欲しいかを数字で指定します。
最後の「検索方法」は、実務ではほとんどの場合「0」または「FALSE」を指定します。これは「完全に一致するものだけを探してほしい」という意味です。ここを省略すると意図しないデータが表示されることがあるため、必ず「0」を入れる癖をつけておきましょう。
別シートの表を「範囲」として指定する方法
別シートのデータを参照する場合、数式の「範囲」の部分を入力するときにマウスで別のシートを選択し、表全体をドラッグして囲みます。このとき、数式バーには「シート名!$A$1:$D$100」のように表示されます。
ここで重要なのが「$(ドルマーク)」をつけた絶対参照にすることです。数式を下のセルにコピーした際、範囲がズレてしまうのを防ぐためです。範囲を選択した直後にキーボードの「F4」キーを1回押すと、自動的にドルマークがつきます。
別シートにあるマスターデータを常に正しく参照するためには、この絶対参照の設定が欠かせません。もし「1行目は正しく転記できるのに、2行目以降がエラーになる」という場合は、この範囲の固定が漏れている可能性が高いです。
VLOOKUPで範囲を指定する際は、見出し(タイトル行)を含めても含まなくても動作しますが、データが増えることを想定して余裕を持って広めに範囲をとっておくのがコツです。
完全に一致するデータを探す「FALSE」の設定
VLOOKUP関数の4番目の引数である「検索方法」についてもう少し詳しく解説します。ここには「TRUE(近似一致)」か「FALSE(完全一致)」を指定しますが、転記作業においては99%の場面でFALSE(0)を使用します。
例えば商品コード「A-101」を探しているときに、似ているからといって「A-102」のデータを持ってこられては困りますよね。FALSEを指定することで、完全に一致するコードがない場合は「#N/A」というエラーを出し、間違った情報を出すのを防いでくれます。
初心者の方がよくやってしまうミスが、この引数を省略してしまうことです。省略するとデフォルトでTRUE扱いになり、データが昇順に並んでいない場合に誤った数値を拾ってくる原因になります。正確な転記のためにも、最後は必ず「0」で締めくくりましょう。
VLOOKUP関数がうまく動かないときのチェックポイント
「正しく入力したはずなのにエラーが出る」というときは、いくつかの原因が考えられます。まず確認したいのは、検索したいキーワードが「範囲の左端の列」にあるかどうかです。VLOOKUPは構造上、検索列より左側にあるデータは取得できません。
次に、データの「型」が一致しているかを確認しましょう。見た目は同じ「101」でも、一方が数値で、もう一方が文字列(テキスト)として保存されていると、エクセルは別物だと判断してしまいます。セルの書式設定を揃えることで解決する場合が多いです。
また、不要な「空白スペース」がデータの前後に入っていないかも重要です。人間の目には見えなくても、エクセルにとっては「田中」と「田中 」は別の文字です。もしエラーが消えないときは、TRIM関数などで空白を取り除いてみるのも一つの手です。
VLOOKUP関数の引数のおさらい
1. 検索値:何を基準に探すか(例:A2セル)
2. 範囲:どこから探すか(例:マスタシート!$A$1:$C$100)
3. 列番号:左から何列目の値が欲しいか(例:2)
4. 検索方法:0(完全一致)を指定
最新のXLOOKUP関数を使って別シートのデータを転記する

Office 2021やMicrosoft 365を使っているなら、VLOOKUPの進化版である「XLOOKUP(エックスルックアップ)」が非常におすすめです。これまでの不便な点が解消されており、より直感的でミスが少ない転記が可能になります。
XLOOKUP関数がVLOOKUPより優れているポイント
XLOOKUPの最大の魅力は、データの「列番号」を数える必要がないことです。VLOOKUPでは「左から3番目」などと数字で指定していましたが、XLOOKUPは「検索する列」と「返してほしい列」をそれぞれ範囲で指定します。
これにより、途中で列を挿入したり削除したりしても数式が壊れないという強みがあります。VLOOKUPの場合、列を増やすと「3番目」だった場所がずれてしまい、エラーや誤表示が起きるのが悩みどころでしたが、XLOOKUPならその心配は無用です。
また、VLOOKUPの弱点だった「左側の列にあるデータを取得できない」という問題も克服しています。検索列の左右どちらにあるデータでも自由自在に転記できるため、表のレイアウトを気にせずに関数を使えるようになります。
XLOOKUP関数で別シートの範囲を指定する手順
XLOOKUP関数の基本形は「=XLOOKUP(検索値, 検索範囲, 戻り範囲)」です。別シートへの転記を行う際は、この「検索範囲」と「戻り範囲」の両方を、別シートへ移動して指定することになります。
例えば、シート1に「商品名」、シート2に「商品名と価格のリスト」がある場合を考えます。検索値にシート1の商品名を選び、検索範囲としてシート2の商品名列を選びます。最後に、戻り範囲としてシート2の価格列を選べば完了です。
範囲の指定が2回に分かれるため、少し手間に感じるかもしれませんが、引数の意味がはっきりしているため慣れると非常に使いやすいです。ここでも範囲を固定するために「F4」キーで絶対参照($)にすることを忘れないようにしましょう。
エラー時の表示を簡単に設定できる「見つからない場合」の機能
XLOOKUPには、4番目の引数として「見つからない場合」という便利なオプションが備わっています。これまでの関数では、データがない場合に表示される「#N/A」エラーを消すためにIFERROR関数を組み合わせる必要がありました。
しかし、XLOOKUPなら「=XLOOKUP(A2, 範囲1, 範囲2, “データなし”)」のように書くだけで、検索に失敗したときに好きな文字を表示させることができます。数式が短くスッキリし、後から見直した際の内容把握もスムーズになります。
特に、大量のデータを転記する際に「どのデータがマスターに登録されていないか」を判別したい場合、この機能で「未登録」と表示させるようにしておくと、チェック作業が非常にやりやすくなります。エラー対策が1つの関数で完結するのは大きなメリットです。
左側の列にあるデータも取得できる柔軟性
従来のVLOOKUPでは、検索キーとなる列が表の一番左側に配置されている必要がありました。しかし、実際の業務で使う資料が常にそうなっているとは限りません。名簿の右側にある「電話番号」から、左側にある「氏名」を引きたいケースもあるでしょう。
XLOOKUPであれば、検索列と抽出列を独立して指定するため、位置関係を問わずにデータを引っ張ってこれます。わざわざ関数を使うために、元データの列の順番を入れ替えるといった準備作業が必要なくなります。
この柔軟性のおかげで、既存の複雑な表を壊すことなく、安全に別シートへの転記設定が行えます。より高機能でエラーに強く、メンテナンスもしやすいため、環境が整っている方はぜひXLOOKUPを優先して使ってみてください。
INDEX関数とMATCH関数を組み合わせて複雑な転記に対応する

「VLOOKUPを使いたいけれど、元データの並び順が変えられない」という場合や、より動作が軽く柔軟な方法を求める中級者以上の方に愛用されているのが、INDEX(インデックス)関数とMATCH(マッチ)関数の組み合わせです。
INDEX関数とMATCH関数それぞれの役割を理解する
この手法は、役割の違う2つの関数を「合体」させて使います。まず、MATCH関数は「探したいデータが、指定した範囲の中で上から何番目にあるか」を数字で教えてくれる役割を持っています。いわば「住所を特定する」役割です。
一方、INDEX関数は「指定した範囲の中で、上から〇番目にあるデータを取り出す」という役割を持っています。つまり「指定された住所にある荷物を取ってくる」というイメージです。これらを組み合わせることで、検索と抽出を同時に行います。
一見するとVLOOKUPより複雑に見えますが、それぞれの役割が分かれていることで、エクセル内部での処理効率が良く、データの量が多いシートでも動作が重くなりにくいという特徴があります。プロのエクセルユーザーの間では定番の組み合わせです。
2つの関数を組み合わせて別シートを検索する記述法
具体的な書き方は「=INDEX(取り出したい列, MATCH(検索値, 検索される列, 0))」という形になります。例えば、別シートから価格を転記したい場合は、INDEXの引数に「別シートの価格列」を指定し、MATCHの引数に「別シートの商品名列」を指定します。
MATCH関数の最後につける「0」は、VLOOKUPの「FALSE」と同じく、完全一致で探すための指定です。これを忘れると正しい行番号を返してくれないため、必ず入れるようにしましょう。入れ子(ネスト)構造になるため、カッコの閉じ忘れにも注意が必要です。
この方法は、XLOOKUPが使えない古いバージョンのエクセルでも動作し、かつVLOOKUPの「左側のデータが取れない」という制約を回避できるため、非常に汎用性が高いテクニックとして重宝されます。
行と列の両方を動的に指定してデータを抽出する方法
INDEX関数とMATCH関数の真価は、縦方向だけでなく横方向の検索も同時に行える点にあります。MATCH関数を2つ使って「=INDEX(範囲, 行のMATCH, 列のMATCH)」と記述すれば、縦横自在に交差するポイントのデータを転記できます。
例えば、縦軸に「商品名」、横軸に「月(1月〜12月)」が並んでいる表から、特定の月の特定の商品の売上だけを別シートに転記したい場合に非常に役立ちます。条件を2つ設定して、ピンポイントでデータを抜き出すイメージです。
これを使えば、複雑な集計表から必要な値だけをスマートに抜き出したレポートを自動作成することができます。手作業では膨大な時間がかかる「クロス表からの抽出」も、この組み合わせを使えば一瞬で終わらせることが可能です。
INDEX/MATCHは一見難しそうですが「INDEX(答えの列, MATCH(検索キー, キーの列, 0))」という定型文として覚えてしまうのが上達の近道です。
INDEX/MATCHを使うことで動作を軽くするメリット
エクセルファイルに数万行のデータがある場合、VLOOKUPを多用すると再計算に時間がかかり、ファイルを開くだけで動作がカクつくことがあります。これはVLOOKUPが毎回、指定された範囲全体をメモリ上でスキャンし直すためです。
一方、INDEX/MATCHは検索列と抽出列のみをピンポイントで参照するため、計算負荷が比較的低く抑えられます。特に、同じ検索結果(行番号)を使って複数の情報を転記する場合、計算の重複を避ける工夫もしやすくなります。
ビジネスの現場で使うツールは「正確さ」と同じくらい「スピード」も重要です。シートが重くて仕事が進まないというストレスを抱えている方は、関数の構成を見直して、このINDEX/MATCHの組み合わせに切り替えてみる価値があります。
FILTER関数で複数の条件に合うデータを一気に別シートへ転記する

これまでの関数は「1つの条件で1つの値」を探すものでしたが、最新のエクセルには「条件に合うものを全部まとめて転記する」という魔法のような関数があります。それがFILTER(フィルター)関数です。
スピル機能を使ったFILTER関数の驚きの便利さ
FILTER関数を理解する上で欠かせないのが「スピル」という機能です。これまでは、1つのセルに1つの数式を入力し、それを下にコピーして使っていました。しかしFILTER関数は、1つのセルに式を入れるだけで、結果が複数の行や列に「溢れ出す」ように表示されます。
例えば「東京都の顧客だけを別シートに一覧表示したい」という場合、FILTER関数を一つ書くだけで、該当する10人なり100人なりのデータが自動的にズラリと並びます。オートフィルター機能を使って手作業でコピペしていた作業が、完全に自動化されるのです。
この挙動は初めて使うと感動するほど便利です。データが増えれば表示される行数も自動で伸び、データが減れば自動で縮みます。表の形が動的に変わるため、常に最新のリストを維持することができる画期的な転記方法です。
別シートにある大量のデータから特定の項目だけを抜き出す
FILTER関数の基本は「=FILTER(範囲, 条件, [空の場合])」です。別シートの表全体を「範囲」に指定し、条件として「別シートの都道府県列 = “東京都”」のように指定します。これだけで、特定の条件に合致するデータ行が丸ごと転記されます。
条件の部分は、特定のセルを参照させることもできます。例えば、転記先のシートに「検索窓」のようなセルを作っておき、そこに「大阪府」と入力すれば、瞬時に大阪府のデータだけが表示される、といったインタラクティブな使い方も可能です。
ただし、FILTER関数で表示されたデータは「数式による結果」なので、その中の一部のセルの文字を手書きで修正することはできません。修正したい場合は必ず元のデータ(参照元シート)を直すようにしましょう。
複数条件(AND/OR)を指定して転記データを絞り込む
さらに応用すると、「2023年度」かつ「売上100万円以上」といった複数の条件でデータを絞り込んで転記することも可能です。AND条件(〜かつ〜)の場合は条件式を「*(アスタリスク)」でつなぎ、OR条件(〜または〜)の場合は「+(プラス)」でつなぎます。
具体的には「=FILTER(範囲, (条件1) * (条件2))」のような書き方になります。これにより、非常に細かい抽出ルールを数式だけで構築できるようになります。これまで複雑なマクロ(VBA)を使わないと実現できなかったような処理も、これ一つで完結します。
複数のシートに散らばった情報を、条件ごとに整理された「動くレポート」として別シートにまとめることができるため、データ分析や状況確認のスピードが格段に早まります。事務作業の付加価値を高めてくれる強力な武器になります。
SORT関数と組み合わせて見やすく並べ替える
FILTER関数でデータを抽出した際、元のシートの並び順のまま表示されますが、それをさらに見やすくしたい場合は「SORT(ソート)関数」を組み合わせるのがおすすめです。「=SORT(FILTER(…), 並べ替え列番号)」のように重ねて記述します。
例えば、特定の条件で抽出したリストを「日付の新しい順」や「金額の大きい順」に自動で並べ替えて表示することができます。転記した後にわざわざ「並べ替え」ボタンを押す必要がなく、常に整理された状態をキープできます。
このように、複数の新しい関数を組み合わせることで、エクセルはただの表計算ソフトから、高度な「データ表示システム」へと進化します。別シートへの転記を単なるコピー作業で終わらせず、見やすさまで自動化するのが現代風の使いこなし術です。
| 関数名 | 主な用途 | 特徴 |
|---|---|---|
| VLOOKUP | 単一データの抽出 | 最も一般的。左側は検索不可。 |
| XLOOKUP | 万能な検索・転記 | 最新版のみ。簡単・安全・高機能。 |
| INDEX/MATCH | 複雑な表の検索 | 動作が軽い。どのバージョンでも動く。 |
| FILTER | 複数データの抽出 | 条件に合う行をまとめて転記できる。 |
エクセルの別シート転記に関数を使うときの注意点とトラブル解決

関数を使った転記は非常に便利ですが、エクセルの仕組みを正しく理解していないと「計算が合わない」「エラーが消えない」といったトラブルに直面することもあります。ここでは、長く安定して使い続けるための注意点を紹介します。
転記元のデータを削除・移動した際の影響
関数はあくまで「元の場所にあるデータを見に行く」という指示書です。そのため、参照元となっているシートの行を削除したり、列を入れ替えたりすると、関数がデータの場所を見失い「#REF!」というエラーを出してしまいます。
特に怖いのが、エラーが出ずに「隣の列の違うデータ」を表示し続けてしまうケースです。これはVLOOKUPなどで列番号を数字で指定しているときに起こりがちです。データの構造を変える可能性がある場合は、列の増減に強いXLOOKUPやINDEX/MATCHを使っておくと安全です。
もし元のシートを整理したい場合は、いきなり削除するのではなく、関数を使っているシートへの影響がないかを慎重に確認しましょう。大規模な修正を行う前には、念のためファイルのバックアップをとっておくことを強くおすすめします。
セル参照の「絶対参照」と「相対参照」の使い分け
関数をコピーしたときにうまく動かない原因の第1位は「参照のズレ」です。別シートの範囲を指定するとき、エクセルは標準では「相対参照(場所が相対的に動く)」になっています。これを固定するのが絶対参照です。
数式の中のセル番地に「$A$1」のようにドルマークがついているのが絶対参照です。これをつけることで、数式をどこにコピーしても、常に同じ範囲(別シートの表全体など)を見に行ってくれます。ドルマークがないと、コピーした分だけ参照範囲も下にズレてしまい、正しい検索ができなくなります。
数式を入力中に「F4」キーを押すだけで、このドルマークは簡単に付け外しができます。1行目は正しいのに、下の行にコピーすると変な結果になる、というときは、数式バーの中のアルファベットや数字の前にドルマークがついているかを確認してください。
エラー値(#N/Aなど)をきれいに消すIFERROR関数
関数で検索した際、データが見つからないと「#N/A」というエラーが表示されます。これは「値がないですよ(Not Available)」というエクセルからの報告ですが、印刷物や共有資料としては見た目があまり良くありません。
そんなときに役立つのが「IFERROR(イフエラー)関数」です。「=IFERROR(元の数式, ” “)」のように囲うことで、エラーが発生したときだけ空白にしたり、「該当なし」という文字を出したりすることができます。XLOOKUP以外の古い関数を使う場合には必須のテクニックです。
ただし、エラーをすべて隠してしまうと「実は入力ミスがあったのに気づかなかった」というリスクも生まれます。構築中はエラーを表示させておき、正しく動くことが確認できてから最後にIFERRORで整える、という手順がミスを防ぐコツです。
重いブックにならないための工夫と計算方法の設定
数万行におよぶ膨大なデータを複数の関数で転記させていると、何かを入力するたびに画面が数秒止まるほどファイルが重くなることがあります。これは、一箇所書き換えるたびにすべての数式をエクセルが計算し直そうとするためです。
あまりにも重い場合は、エクセルの「数式」タブにある「計算方法の設定」を一時的に「手動」に切り替えるのも手です。こうすれば、F9キーを押すまで計算が行われないため、入力をスムーズに進められます。ただし、保存前に再計算を忘れないよう注意が必要です。
また、可能な限り「最新の関数」を使うことも重要です。最新の関数は処理が最適化されているため、古い書き方の数式を何千個も並べるより軽快に動くことが多いです。また、どうしても重い場合は、必要な部分だけを「値として貼り付け」で確定させてしまい、関数を消すという判断も必要になります。
まとめ:エクセルの別シート転記に関数を使いこなしてミスをゼロにしよう
エクセルで別のシートにデータを転記する方法は、基本の「=」参照から、高度な「FILTER関数」まで多岐にわたります。どの方法が最適かは、転記したいデータの量や条件の複雑さ、そしてお使いのエクセルのバージョンによって異なります。
まずは最も汎用性の高いVLOOKUP関数から練習し、慣れてきたらより柔軟でエラーに強いXLOOKUP関数へ移行していくのがスムーズなステップアップです。また、大量のリストを自動生成したい場合はFILTER関数の驚異的な便利さをぜひ体験してみてください。
関数を使って別シートへの転記を自動化することは、単なる時間の節約だけでなく、データの正確性を守ることにも直結します。手作業による「コピペミス」の不安から解放されれば、よりクリエイティブな作業や、データの分析・活用に時間を割けるようになります。
今回ご紹介したポイントや注意点を参考に、まずは身近な集計表や管理簿から関数の設定に挑戦してみてください。一度仕組みを作ってしまえば、日々の業務が驚くほど楽になるはずです。パソコンのトラブル解決と同様、一つ一つの機能を正しく理解して、エクセルをあなたの最強のパートナーにしていきましょう。



