- ベストアンサー
エクセルで2つのファイルを参照する方法について
教えて頂ければ非常に助かります、、 ファイル1は、Aセルに1~500ぐらいまでの通し番号が振られているデータ、 ファイル2は、Aセルに飛び飛びの番号(例3、7、15…)のデータが入っている という状態で、 このファイル2の番号をファイル1の番号の行にデータ追加したい場合、どのようなマクロ若しくは関数を使えば良いのでしょうか。 アクセスがインストールされていないPCなので、エクセルで作成したいと考えています。 どうか宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ファイル1のどこか空いてる列(仮にE列)の1行目に =if(iserror(vlookup(a1,ファイル2!A:D,4,0)),vlookup(a1,ファイル2!A:D,4,0)) と入れて、その結果をファイル1のD列に、 ”値の貼り付け”したら如何ですか?? ヘルプを見ていただければお分かりになりかと思いますが、 要は ・ファイル2にその番号がない場合はそのままdのデータ ・番号があれば、ファイル2のデータ となります。
その他の回答 (2)
- table_1969
- ベストアンサー率21% (66/302)
ファイル2のファイル名を「Book2」とし、その「Sheet1」のA1からA8に番号、B1からB8にデータが入っているとします。 そこでファイル1のD1に =IF(ISERROR(VLOOKUP(A1,[Book2]Sheet1!$A$1:$B$8,2,0)),"",VLOOKUP(A1,[Book2]Sheet1!$A$1:$B$8,2,0)) と入力し、あとは最終行までコピーすればOKじゃないでしょうか?
お礼
ありがとうございます。 今、お教えいただいた方法で作業してみました。 関数というものは、奥が深く、使いこなすには大変なことと思いました。 ご指導ありがとうございました。とても助かりました。
- moon00
- ベストアンサー率44% (315/712)
いまいち状況がよく掴めないのですが。 新しいファイルのA列にファイル1のA列、B列にファイル2のB列を リンクとして持ってくるという前提での話をします。 1)ファイル1のA列全体をコピー(列番号をクリックすると列全体を選択します)し、 新しいファイルのA列に「形式を選択して貼り付け」で「リンク貼り付け」を選択。 2)同じようにしてファイル2のA列全体を新しいファイルのB列にコピー。 これでどうでしょうか? もし、ファイル1とファイル2のA列の数字を合計したいと言うことであれば、 上記の2)のところでコピー先をデータ入力済のA列とし、 「形式を選択して貼り付け」で演算の「加算」を選択。(この場合、ファイル2のデータははリンクされません) このような方法でどうでしょうか?
補足
説明が不十分ですみません。補足いたします。 ファイル1のA列は1~500番までの番号が通しで(抜けてません)入力されていて、B列とC列にはデータが入力されています。 ファイル2は上記ファイル1のD列に追加させたいデータで、A列には残念ながらファイル1のように1~500までの番号がすべて入力されているわけではなく、追加させたい番号だけが入力されているのです。(追加させたいD列がフィルター表示されているように思ってください。)
お礼
教えていただいた通りの関数を書き入れて無事に作業を終えました。 いくつかの関数を一度に使うことで、複雑なことを簡単にしてしまうのはすごいですね、とても参考になりました。エクセル関数もすばらしい! 実際に振られていた番号は1000まであり(今後も増えるようです)、範囲指定を列全部に書いていただき、分かり易く実行できました。 本当にご回答いただいてありがとうございました。