当サイトはアフィリエイト広告を利用しています。
Sheet1の内容をSheet2にも入力する必要がある場合、手入力すると誤入力の可能性がありますし、間違っていなくても後々内容に変更があった場合、両方のシートを修正しなければならず、面倒です。
そこで今回は、Excelで別シートにデータを自動反映させる方法をご紹介します。
この方法を知っていれば、無駄に同じ内容を何度も入力しなくて済むので、作業効率化になりますよ。
Excelで別シートにデータを自動反映させる方法
Excelで別シートにデータを自動反映させる方法には、以下のようなものがあります。
- セル参照を使う
- INDIRECT関数を使う
- リンク貼り付けを使う
- カメラ機能を使う
- Power Queryを使う
- ドロップダウンリストを使う
方法1:セル参照を使う
文字列を別シートに自動反映させたい場合は、セル参照を使う方法がおすすめです。
セル参照を使って別シートにデータを自動反映させるには、参照先のセルに以下のような数式を入力します。
=参照元シート名!参照元セル番地
たとえば、Sheet1のA1にSheet2のA1の内容を自動反映させたい場合は、Sheet1のA1に=Sheet2!A1
と入力します。
数式は手入力でも良いですが、参照先のセルに「=」と入力した後、参照元のセルをクリックして[Enter]を押すというやり方のほうが簡単です。Sheet1のA1に「=」と入力したあと、Sheet2のA1をクリックして[Enter]を押すといった感じです。
方法2:INDIRECT関数を使う
文字列を別シートに自動反映させたい場合で、かつ参照元のシート名やセル番地を文字列で指定したい場合は、INDIRECT関数を使う方法がおすすめです。
INDIRECT関数(インダイレクト関数)は、文字列で指定されたセル番地の値を返す関数です。
INDIRECT(参照文字列, [参照形式])
- 参照文字列(必須)
- 取得したい値があるセル番地を「A1形式」または「R1C1形式」の文字列で指定する。
- 参照形式(省略可)
- 【参照文字列】の種類を以下のいずれかで指定する。省略すると「TRUE」として処理される。
- TRUE:【参照文字列】をA1形式とみなす。
- FALSE:【参照文字列】をR1C1形式とみなす。
INDIRECT関数を使って別シートにデータを自動反映させるには、参照先のセルに以下のような数式を入力します。
=INDIRECT(参照元シート名が入力されたセル番地&"!"&参照元セル番地が入力されたセル番地)
たとえば、Sheet1のA1にSheet2のA1の内容を自動反映させたい場合で、Sheet1のC2に参照元のシート名が、D2にセル番地が入力されている場合は、Sheet1のA1に=INDIRECT(C2&"!"&D2)
と入力します。
方法3:リンク貼り付けを使う
表を別シートに自動反映させたい場合は、リンク貼り付けを使う方法がおすすめです。
リンク貼り付けを使って別シートにデータを自動反映させるには、まず参照元のセルを選択して[Ctrl]+[C]でコピーします。
参照先のセルを右クリックして「リンク貼り付け」をクリックします。
これで別シートにデータが自動反映されます。
参照元セルの書式も反映させたい場合は、リンク貼り付けの直後に右クリックして「書式設定」をクリックします。
これで参照元セルの色や配置なども反映されます。
なお、参照元セルの書式については、変更しても参照先セルには自動反映されません。
方法4:カメラ機能を使う
表やグラフを別シートに自動反映させたい場合は、カメラ機能を使う方法がおすすめです。
カメラ機能を使って別シートにデータを自動反映させるには、まずExcelのシート画面で[Alt]⇒[F]⇒[T]の順に押して「Excelのオプション」画面を表示し、「クイックアクセスツールバー」をクリック⇒メインエリア左側の「コマンドの選択」から「リボンにないコマンド」を選択⇒「カメラ」をクリック⇒「追加」ボタンをクリック⇒「OK」ボタンをクリックします。
たとえばグラフを別シートに自動反映させたい場合は、グラフが含まれるセル範囲を選択し、クイックアクセスツールバーにあるカメラアイコンをクリックします。
参照先のシートを開き、グラフを表示したい場所をクリックすると、グラフが自動反映されます。
方法5:Power Queryを使う
共通項目がある複数の表を結合して別シートに自動反映させたい場合は、Power Queryを使う方法がおすすめです。
Power Queryを使って別シートにデータを自動反映させるには、まず結合したい1つ目の表を選択して「データ」タブ⇒「テーブルまたは範囲から」をクリックします。
Power Queryエディターが表示されたら、必要に応じて「クエリの設定」で「名前」を変更し、「ホーム」タブ⇒「閉じて読み込む」をクリックします。
すると1つ目の表が新しいシートで作成されます。
結合したい2つ目の表も同様の操作を行いますが、最終的に作成された新しいシートは削除してしまってOKです。
新しいシートの表を選択して「クエリ」タブ⇒「編集」をクリックします。
共通項目以外で結合する際に不要な列がある場合は、必要に応じて左側の「クエリ」で表を切り替え、不要な列の見出しを右クリックして「削除」をクリックします。今回は「売上」表をベースに「商品」表の「単価」を結合したいので、「商品」表から「商品名」列を削除します。
「ホーム」タブ⇒「クエリのマージ」をクリックします。
「マージ」画面が表示されたら、ドロップダウンリストから結合するもう一方の表を選択します。
それぞれの表で共通項目をクリックして「OK」ボタンをクリックします。
値が「Table」となっている列の見出しの右端のボタンをクリックします。
結合したい見出し名にチェックを付けて「OK」ボタンをクリックします。
「Table」が正しい値に変わったことを確認して「ホーム」タブ⇒「閉じて読み込む」をクリックします。
これで表が結合されます。
なお、元の表を変更した場合は、結合した表内にカーソルを置いて「クエリ」タブ⇒「更新」をクリックすると、変更が反映されます。
方法6:ドロップダウンリストを使う
文字列を選択肢として使いたい場合は、ドロップダウンリストを使う方法がおすすめです。
ドロップダウンリストを使って別シートにデータを自動反映させるには、まず選択肢として使用したいセル範囲を選択して右クリックし、「名前の定義」をクリックします。
「新しい名前」画面が表示されたら、任意の名前を付けて「OK」ボタンをクリックします。
選択肢を表示したいセルをクリックし、「データ」タブを開いて「データの入力規則」をクリックします。
「データの入力規則」画面が表示されたら、「設定」タブを開き、「入力値の種類」から「リスト」を選択⇒「元の値」に「=定義した名前」と入力⇒「OK」ボタンをクリックします。
これで別シートのデータが選択肢として自動反映されます。
入力方式を選択式にしたい方には、以下の記事もおすすめです。
Excelで別シートにデータが自動反映されないときの対処法
Excelで別シートにデータが自動反映されないときの対処法には、以下のようなものがあります。
- シート名を半角シングルクォーテーションで囲む
- 表示形式を「標準」にする
- 未入力のセルにスペースを入力する
- IF関数を使う
対処法1:シート名を半角シングルクォーテーションで囲む
「シート名に空白がある」または「シート名が数字で始まる」といった場合は、シート名を半角シングルクォーテーションで囲むで囲むと良いでしょう。
たとえば、=Sheet1 (2)!A1
のような数式を入力している場合は、「Sheet1 (2)」を半角シングルクォーテーションで囲めば良いので、='Sheet1 (2)'!A1
のようにします。
対処法2:表示形式を「標準」にする
参照先のセルに数式が表示される場合は、表示形式が「文字列」になっていることが原因と考えられますので、表示形式を「標準」にすると良いでしょう。
表示形式を「標準」にするには、まず参照先のセルを選択⇒「ホーム」タブ⇒「数値の書式」から「標準」を選択します。
参照先のセルの数式バーにカーソルを置いて[Enter]を押します。これで参照元のデータが反映されます。
対処法3:未入力のセルにスペースを入力する
参照先のセルに「0」と表示される場合は、参照元のセルが未入力であることが原因と考えられますので、未入力のセルにスペースを入力すると良いでしょう。
参照元のセルにスペースを入力すると参照先のセルにもスペースが自動反映されるので、「0」と表示されなくなります。
対処法4:IF関数を使う
参照元のセルが未入力で参照先のセルに「0」と表示される場合は、IF関数を使って「セルが入力されていれば入力内容を自動反映し、入力されていなければ空白にする」という処理を行うのも良いでしょう。
IF関数(イフ関数)は、条件を満たす場合と満たさない場合とで処理を変える関数です。
IF(論理式, 真の場合, 偽の場合)
- 論理式(必須)
- 条件を指定する。
- 真の場合(必須)
- 条件を満たす場合の処理を指定する。
- 偽の場合(必須)
- 条件を満たさない場合の処理を指定する。
このような処理を行うには、参照先のセルに以下のような数式を入力します。
=IF(参照元シート名!セル番地<>"",参照元シート名!セル番地,"")
たとえば、Sheet1のA1にSheet2のA1の内容を自動反映させたい場合は、Sheet1のA1に=IF(Sheet2!A1<>"",Sheet2!A1,"")
と入力します。すると、Sheet2のA1が未入力でなければその内容が自動反映され、未入力であれば空白が表示されます。
Excelで別シートにデータを転記・蓄積する方法
「入力フォームに入力した内容を住所録に追加したい」といったように、別シートにデータを転記・蓄積したい場合は、「マクロ」を使いましょう。
以下の記事にて入力フォームのデータを住所録に転記・蓄積するマクロをご紹介していますので、興味のある方はぜひご覧ください。
Excelで条件に合うデータを別シートに抽出する方法
「IDで検索して一致する名前を別シートに抽出したい」といったように、条件に合うデータを別シートに抽出したい場合は、以下のような方法があります。
- VLOOKUP関数を使う
- HLOOKUP関数を使う
- XLOOKUP関数を使う
- INDEX関数を使う
- FILTER関数を使う
詳しくは以下の記事をご覧ください。
Excelで別ファイルにデータを自動反映させる方法
Excelで別ファイルにデータを自動反映させる方法には、以下のようなものがあります。
- 外部参照を使う
- データの取得機能を使う
詳しくは以下の記事をご覧ください。
まとめ
今回は、Excelで別シートにデータを自動反映させる方法をご紹介しました。
別シートにデータを自動反映させるには、セル参照、INDIRECT関数、リンク貼り付け、カメラ機能、Power Query、ドロップダウンリストなどを使います。
それぞれ適したシーンが異なりますので、「何を自動反映させたいのか」「自動反映させて何がしたいのか」といったことをはっきりさせ、その目的に合った方法で自動反映させましょう。
Udemyでは、買い切りの動画講座で好きな分野について自分のペースで学ぶことができます。
パソコンだけでなくスマホにも対応しているので、移動時間や休憩時間にスマホで学習することも可能です。
30日間の返金保証付きなので、初めてでも安心して受講できますよ。
▼ おすすめのExcel VBA講座はこちら ▼