• ベストアンサー

「Excel」で、異なるブックのデータを一つにまとめたい。

「エクセル2000」を使用しています。 異なるブックのデータを、うまく一つにまとめる 方法があるかどうか、お教え頂きたいのですが…。 「Book1.xls」には A列に名前 B列に部署名 が、それぞれ入っています。 「Book2.xls」には A列に名前、 B列に内線番号 が入っているとします。 そこで、「Book1」のそれぞれの名前の行に 「Book2」の「内線番号」を表示させたいのですが… そんな事は可能でしょうか? 「Book1」と「Book2」の「名前」のデータは、 ほぼ同じものが入っているのですが 並び順は異なっています。 (「並べ替え」を行ったとしても、 「Book2」の方が遥かにデータ量が多いので、 どうしても行は一致しません) 「同じデータを探して貼り付ける」 という作業が必要になると思うので、 やはり難しいでしょうか…。 ご助言願います。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

No1の補足です Book1.xlsとBook2.xlsを立ち上げてください Book2.xlsのA列とB列全体を選択しコピー。 (列番号をクリックすると、列全体が選択できます) Book1.xlsのD、E列全体へ貼り付けます (D1を選択した状態で、エンターキーでも可能) これでBook1.xlsにデータが集まりました。 次に Book1.xlsのC1に =IF(ISERROR(VLOOKUP(A1,D:E,2,FALSE)),"",VLOOKUP(A1,D:E,2,FALSE)) と打ち込み、 A列にデータが入っているところまで複写します。 すると、C列に内線番号が入ってきます。

mami0810
質問者

お礼

お礼が遅くなってすみません。 VLOOKUPの事をすっかり忘れていました。 (あまり関数を使う事がないので…) 書いて下さったのは、エラー表示が 出ない方法ですね? 回答、ありがとうございました。

その他の回答 (6)

  • koichi8
  • ベストアンサー率0% (0/1)
回答No.7

簡単にはBook1.xls とBook2.xlsを開く 2つのbookをA列名前でソートしておきます book2のAB列をコピー Book1のCD列に貼り付けます Book1にABCD列ができます A列とC列に名前が入ってますので2つの名前を一致させます C列の方が多いので AとCで名前が不一致のところでA列に空白を挿入する  例えばA10を下にずらせるにはA10セルをクリック  右クリックで 挿入 下方向にシフト  でそこから下がすべて下にひとつずれます AC列の名前が一致したらC列を削除  Cをクリックして 右クリック 削除 これで 出来ると思いますがどうでしょうか 出来たら 別の名前Book3.xls等で保存するといいでしょう

mami0810
質問者

お礼

お礼が遅くなってすみません。 データ件数が多いので、手動でやるというのは 少し難しそうです。 そして質問文には書いていないのですが、 それぞれのデータをしばしば更新するので…。 回答、ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

既に両ブックは出来あがっていて、現在で締め切って、両者を融合して良いのですね。今後の行(レコード)の増減 はひとまず考慮しないで良いと言うことですね。 ブック1,2にはシートは1枚しかないのでしょうか。 複数だと更に面倒になる。 こう言うのは、(1)昔からある、バッチ処理のマッチングのロジックで処理するか(2)アクセスなどのSQLなどで処理する、 問題です。 エクセルでやるにしてもVBAを使う問題です。 VLOOKUP関数は該当の2つ目以後を探せないので、使えるかどうか。 以上がなじみがないのなら、手動で第3のシートに「ブック1のSheet1のデータ」と、「ブック2のSheet1のデータ」を貼りつけて統合し、それを名前順でソートする。それから1行にまとめることを関数で考える。 それと名前、部書名、内線番号と言うのは本当の例ですか、例えですか。内線番号が1名に2つ以上多数あるのは 考えられないが。

mami0810
質問者

お礼

お礼が遅くなってすみません。 「本当の例」なのですが、 実は大分端折って書かせて頂きました。 本当のところ、データが増えたり、更新したりと 様々な問題はあるのですが… とりあえず、VLOOKUPと 簡単なマクロの組み合わせで なんとかしてみます。 (VLOOKUPの事が何故かすっかり頭から 抜けていました。あまり関数を使わないもので…) 回答、ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

book1に名前と部署名の対応表があり、 その表の範囲を「部署」という名前で範囲名を付けてあるとします。 book2に名前と内線番号の対応表があり、 その表の範囲を「内線」という名前で範囲名を付けてあるとします。 その時 book3で 名前、部署、内線の結合した表を作成するには メニューから「データ」~「外部データの取り込み」~「新しいデータベースクエリ」で 取込先でエクセルファイル、book1かbook2かどちらかを選びます、 範囲名が表示されるので、そのまま、「>」で右窓へ移して完了します。 SQLの作業ウインドウが開くので、そこで、新しい「テーブル」~「テーブルの追加」、 もう一つのブックと範囲名を取り込みます。 SQLボタンを押して SQLステートメントを下記を参考に編集します SELECT 内線.名前, 部署.部署, 内線.内線 FROM `D:\Excel\book2`.内線 内線, `D:\Excel\book1`.部署 部署 WHERE 部署.名前 = 内線.名前 ORDER BY 内線.名前 作業ウインドウを閉じると、クエリの保存をして、 シートに取り込み位置をしていしたら、 結合したデータが得られます。 book1,boo2が更新された場合、 範囲が変わっていたら範囲を変える必要がありますが、範囲が変わっていない場合、内容が変わっても特にbook1,book2は、いじる必要がありません。 book3で、「データ」~「データの更新」で更新することができます。

mami0810
質問者

お礼

お礼が遅くなってすみません。 こんな機能があるんですね。 初めて知りました。 accessみたいなカンジでしょうか? これから色々とやってみたいと思います。 回答、ありがとうございました。

  • taocat
  • ベストアンサー率61% (191/310)
回答No.4

  Book2のデータ範囲を A2-B99 とした場合。 Book1とBook2両方とも開いた状態で Book1の C2 に次の式を入れ必要行コピー。 =VLOOKUP(A2,[Book2.xls]Sheet1!$A$2:$B$99,2,0) Book1,Book2ともデータは、それぞれのSheet1にあるもとする。   以上です。

mami0810
質問者

お礼

お礼が遅くなってすみません。 VLOOKUPの事をすっかり忘れていました。 (あまり関数を使う事がないので…) 事情により並べ替えが出来ない等々の 問題はあるのですが、作業用シートを作ったり マクロの自動登録などを組み合わせたりすれば、 なんとかなりそうです。 回答、ありがとうございました。

  • 12SA
  • ベストアンサー率19% (4/21)
回答No.2

vlookup関数で出来るのではないでしょうか。

mami0810
質問者

お礼

お礼が遅くなってすみません。 VLOOKUPの事をすっかり忘れていました。 (あまり関数を使う事がないので…) 事情により並べ替えが出来ない等々の 問題はあるのですが、作業用シートを作ったり マクロの自動登録などを組み合わせたりすれば、 なんとかなりそうです。 回答、ありがとうございました。

回答No.1

まず、新規ブックか、どちらかのブックにシートをまとめましょう。 で、 VLOOKUP関数で、内線番号を検索すれればいいかと思います。

mami0810
質問者

お礼

お礼が遅くなってすみません。 VLOOKUPの事をすっかり忘れていました。 (あまり関数を使う事がないので…) 事情により並べ替えが出来ない等々の 問題はあるのですが、作業用シートを作ったり マクロの自動登録などを組み合わせたりすれば、 なんとかなりそうです。 回答、ありがとうございました。

関連するQ&A

  • Excelでブック間のデータの比較について教えてください。

    ブック間で同じようなデータ(A列に番号とB列に名前)が入力されているのですが、1つのデータは更新されて、番号と名前が増えています。1つは、おくれたままなのですが、この2つのブックで誰が抜けているのかを調べたいのです。=Countif(A:A,[Book2.xls]社員一覧!$A1)としたところ異なった名前は1で空白セルのみが0になってしまいます。 2つのブックを比較したい場合はどうすればよいのでしょうか。 宜しくお願い致します。

  • 一覧表から一行ごとのデータを別ブックに保存するには?

    あまり使用頻度はないかもしれませんが・・・・ (例) ○元になる一覧表のブック(BOOK_1.xls) 1行目:項目  (A1:一連番号 B1:氏名    C1:住所) 2行目:データ1(A2:1     B2:山田太郎 C2:東京都) 3行目:データ2(A3:2     B3:山田次郎  C3:大阪府)    ・    ・ 以降10行目まで同様のデータが入っているとします。 上記のファイルから ○あらかじめ決められた単票形式のブック(FORMAT.xls)  A1:一連番号(文字列) B1:空白  A2:氏名(文字列)   B2:空白  A3:住所(文字列)   B3:空白 を呼び出し ○BOOK_1.xlsの一行目の項目のデータを  FORMAT.xlsの B1 B2 B3 の空白部分にコピーペーストし ○BOOK_1.xlsのA2の一連番号の数字をファイル名として取得  し"1.xls"として新規保存をする。 ○そのあとは10行目までその作業を繰り返し、1.xlsから10.xls  というファイルを10個作成し終了する 以上のようなことが可能でしょうか? 実際は列数は30程度、行数が1500行程度あり、1500ほどの ファイルができるようになるんですけど・・・。 よろしくおねがいします。    

  • excel2003 連続データの作り方

    EXCEL2003で連続データの作り方で悩んでいます。 今発注書を作っています。 あるセルに他のブックから型番や金額等のデータを持ってきています。 このデータを行・列共に連続でデータを持ってきたいのですがうまくいきません。 cntlキーを押しながらやっても、右クリックでやってもうまくいきません。 書式設定を変えてもできません。 オートフィルオプションに連続データはありません。 データは例えば A1=[book1.xls]AV!$C$5 A2=[book1.xls]AV!$d$5 ・・・・・ B1=[book1.xls]AV!$C$6 B2=[book1.xls]AV!$D$6 ・・・・・ と増やしていきたいのです。 元データが1000件以上あるため是非実現させたいのです。 ご教示いただけます様宜しくお願いいたします。

  • ブック間でデータの移植をしたい(Excel2000)

    関数なら少しわかるけど,マクロはさっぱりなので質問します。 ブックが2つあります。 BOOK1はそれぞれシート名に個人名が入っていて, 1行目には科目名,A列には日付が入っています。 入力されているデータはその科目の点数が数値で入っています。 BOOK2は,ファイル名が日付(例:030115.xls)で1シートで構成されており, ある日の試験の成績がA列に個人名,B列以降に科目毎の点数が入っています。 (シート名はsheet1のまま) 次から次へと提出されるBOOK2のデータを BOOK1の個別シートに集めていきたいのですが... 関数でできればそれに越したことはありませんが, マクロででもできれば嬉しいです。 急ぎなので勉強をしている時間がなく,助けて下さい! わからないことがあればなるべく早く補足します。

  • VBAでデータの仕訳し新規ブックへ貼付け・登録

    VBAで指定(A列の値と同一)ファイルを開き、データ内C列の値を認識し、新規ブックへ1行全ての データをコピー貼付け処理後、各々仕訳されたブックB列値に-A・-B~を付加し、ファイル登録を行い たいのですが、VBA初心者でどうしてよいか教えてください。    A列   B列   C列    D列 1 J00001 11111 ABCDE BHBHB 2 J00001 22222 SDFAG NHNHN 3 J00001 22222 AZXCV NHNHN 4 J00001 11111 CVBNM LKLKL 5 J00001 33333 VBNM< TYTRE ※ 指定ファイル内行数は、可変です。 ※ 指定ファイル内A列値は同一 ↓ <book1>    A列   B列   C列    D列 1 J00001 11111 ABCDE BHBHB 2 J00001 11111 CVBNM LKLKL <book2>    A列   B列   C列    D列 1 J00001 22222 SDFAG NHNHN 2 J00001 22222 AZXCV NHNHN <book3>    A列   B列   C列    D列 1 J00001 33333 VBNM< TYTRE               ↓ book1⇒J00001-A.xlsで登録 book2⇒J00001-B.xlsで登録 book3⇒J00001-C.xlsで登録

  • excel2000マクロ抽出方法

    2つのファイルがあります。ブック名A.XLS シート名 WORK              ブック名b.XLS シート名 SORT              ブック名A.XLS シート名 WORKに下記のデータが入っています。 AD 1300G A227550 000PA505(C列2行目) 200112(F列)200201(G列)200202(H列)200203(I列)200204(J列)200205(K列)→1行目固定データ AD 1300G A227550 000PA533(C列3行目)   ブック名b.XLS シート名 SORTに下記のデータが入っています。 AD 1300G A227550 000PA505(A列2行目)200112(E列)200201(F列)200202(G列)200203(H列)200204(I列)200205(J列) →1行目E列~J列のデータは都度変わっている AD 1300G A227550 000PA533(A列3行目)    データ抽出条件  ブック名A.XLS シート名 WORKの F列~K列の1行目の列データとブック名b.XLS シート名 SORTの  E列~J列の1行目の列データが同じで、ブック名A.XLS シート名 WORKのC列の2行目以降のコードと  ブック名b.XLS シート名 SORTのA列の2行目以降のコードが同じだったら  ブック名b.XLS シート名 WORKの E列~J列の同じ行にデータを入れる。違うときは、  ブック名b.XLS シート名 WORKのデータはそのままにする。 上記の条件を満たしたマクロの記述の仕方を教えてください。 以上よろしくお願いします。

  • エクセルマクロ:別のブックから該当するデータをコピー

    Book1のSheet1、A列に日付、B列に対応するデータがあります。 Book2のSheet1A1セルに入力された日付と一致するBook1Sheet1B列の値を、Book2のB1セルに値貼り付けしたいのですが、どのように記述すればよろしいでしょうか。 宜しくお願いいたします。

  • VBA 別BOOKへのデータ転記について

    VBA初心者です。 以下のことがしたいのですが、 コードをご教示いただきたくお願いいたします。 BOOKが5つあります。 BOOK1:抽出用(Sheet2に日々の受注データを入れています)        BOOK2:転記100用 BOOK3:転記200用 BOOK4:転記300_400_500用 BOOK5:工事番号用 BOOK1:抽出用はA列からQ列まで工事番号ごとに2行目から受注データが入っています。 抽出用のsheet2のA列に「1」と入力することで転記したいデータだというフラグにし、 抽出用O列のコード100,200,300,400,500(工事の種類のようなものです)を見て、 該当のBOOK2から4にその工事番号が転記がされているか? (されていれば登録済みのメッセージ表示) 転記がされていなければ新規に登録、 新規登録の際に、抽出用Sheet2のD列の工事番号、I列の件名、K列の数量を表示して、 このデータを新規登録しますか?のようなメッセージを出し、Yesなら新規登録。 さらに、新規に登録した際にはその工事番号を名前とするBOOK5を新規作成、 BOOK5にも抽出用の受注内容を転記。 BOOK2から4に転記された工事番号をクリックすると その工事番号のBOOK5にジャンプするようにしたいのです。 抽出用A2とA4に「1」と入力された場合(O列は共に200) BOOK1抽出用データの転記したいセル番地  →  BOOK3転記200用のセル番地 A2のデータ D2 → A7 K2 → A8 C2 → A9 H2 → A10 I2 → A11 F2 → D7 L2 → D8 M2 → D9 J2 → D10 C2 → I5 Q2 → J5 A4のデータ D4 → A12 K4 → A13 C4 → A14 H4 → A15 I4 → A16 F4 → D12 L4 → D13 M4 → D14 J4 → D15 C4 → I10 Q4 → J10 BOOK2から4は1つの工事番号を5行使用して表わしています。 ですので、1つの工事番号が7から11の行、 2つ目の工事番号が12から16行目となり、それぞれ100件分の工事番号を入れられるように 作成してあります。 またBOOK5については、(A2のデータの場合)以下のように転記し、ファイル名を抽出用D2の工事番号にしたいです。 A2のデータ D2 → A3 K2 → A4 C2 → A5 H2 → A6 I2 → A7 F2 → F3 L2 → E4 M2 → E5 J2 → E6 大変長くなってしまいましたが、以上のようなことをしたいと考えておりますが、 当方、VBA初心者でして参考書とネットを駆使して抽出用のVBA(CSVデータをコピーして加工する)ことにすら大苦戦しております。 なんとかお力を貸していただけないでしょうか? ご教示よろしくお願いいたします。

  • エクセルで他のBookのデータを入力規則のリストに…

    エクセル(Excel2002)の入力規則についての質問です。 仮にBook1のsheet1のA列1~10行に元の値となるデータを作成し,これに「データ」と名前をつけます。 このデータをBook1とは異なるBook2のA列1行において入力規則の元のデータに設定しドロップダウンリストから選択することは可能でしょうか? Book1とBook2は同一フォルダにあります。 ご教示ください。

  • Excel関数 別のBookからの参照がうまくいきません

    Book1 の4月(Sheet1の名前) に      A   B   C   D  1       4 月        2  Aさん  100   80   20  3  Bさん  200  100  100 Book2 の4月(同じくSheet名)に      A   B    1       4 月        2  Aさん  20 (Book1の4月のAさんのD2がくるようにしたい)  3  Bさん  100              つまり、Book2のA列の名前とBook1のA列の名前を対応させて、Book1の4月のD1を入力すると、Book2の4月のB2が自動的に入力されるように設定したいのです。Book2の月名を5月に変えるとBook1の5月分が参照されるようにしたいのです。 これで、わかるでしょうか? 宜しくお願いします。

専門家に質問してみよう