プロが教えるわが家の防犯対策術!

特定の1項目を一致させ、2つのシートのデータを一つにまとめたいのですが、エクセル初心者にもできる方法があったら教えてください。行数は20000件位です。列は10列程度です。

番号   あ   い   う
1001 aa  bb   a
1002 sd  bb   sd
1003 aa  bb   aa
1004 sd  bb   sd
1005 aa  bb   aa

番号  か   き
1002 abc  bbs
1004 sdb  gds
1005 aab  bba

を、まとめて
番号 あ  い   う    か  き
1001 aa  bb   a
1002 sd  bb   sd   abc  bbs
1003 aa  bb   aa
1004 sd  bb   sd   sdb  gds
1005 aa  bb   aa   aab  bba
といったように番号行数(2万件位)が多いデータを 番号を一致させてまとめたいのです。初心者にもできる簡単な方法があったら教えていただけると大変助かります。

A 回答 (6件)

こんばんは!


すでに同じような回答は出ていると思いますが・・・

一例です
Sheet1のA1~D6に「う」列までのデータが入力されていて
そのSheetのE列以降に、Sheet2のA1~C4に入っている「か」「き」列のデータを追加する場合です。

E1セル(「か」が入るセル)
=IF(COUNTIF(Sheet2!$A$1:$A$4,A1)<1,"",VLOOKUP(A1,Sheet2!$A$1:$C$4,2,0))
F1セル(「き」が入るセル)
=IF(COUNTIF(Sheet2!$A$1:$A$4,A1)<1,"",VLOOKUP(A1,Sheet2!$A$1:$C$4,3,0))

E1・F1セル両方を範囲指定 → F1セル右下のオートフィルマーク(+)でダブルクリック!
これで希望通りの表示にならないでしょうか?
ただし、列数が多いと結構手間がかかると思います。
行数は多くても問題ありませんけどね!
Excel2003での回答でした。
参考になれば幸いです。m(__)m
    • good
    • 4
この回答へのお礼

エクセルの基本も知らない私にとってやはり初心者過ぎて無理のようです。せっかくアドバイスいただきましたのに申し訳ありません。

お礼日時:2009/03/11 21:29

   A  B   C  D  E  F


1  番号 あ  い  う か  き
2  1001 aa  bb  a
3  1002 sd  bb  sd abc bbs
4  1003 aa  bb  aa
5  1004 sd  bb  sd sdb gds
6  1005 aa  bb  aa aab bba
7
8  番号 か  き
9  1002 abc bbs
10 1004 sdb gds
11 1005 aab bba

E2: =IF(COUNTIF($A$9:$A$11,$A2),VLOOKUP($A2,$A$9:$C$11,COLUMN(B2),0),"")
    • good
    • 1
この回答へのお礼

やはり超初心者には関数の使い方が十分理解できませんでした。もう少しトライしてみます。
ありがとうございました。

お礼日時:2009/03/09 22:26

数式を使わず編集作業で行う方法


Sheet1
┌─┬──┬─┬─┬─┬─┬─┐
│ │ A │ B│ C│ D│ E│ F│
├─┼──┼─┼─┼─┼─┼─┤
│1 │番号│あ│い│う│か│き│
│2 │1001│aa│bb│a │ │ │
│3 │1002│sd│bb│sd│ │ │
│4 │1003│aa│bb│aa│ │ │
│5 │1004│sd│bb│sd│ │ │
│6 │1005│aa│bb│aa│ │ │
└─┴──┴─┴─┴─┴─┴─┘
Sheet2
Sheet1にある列を挿入して、空き列を作成
┌─┬──┬─┬─┬─┬──┬──┐
│ │ A │ B│ C│ D│ E │ F │
├─┼──┼─┼─┼─┼──┼──┤
│1 │番号│ │ │ │か │き │
│2 │1002│ │ │ │abc │bbs │
│3 │1004│ │ │ │sdb │gds │
│4 │1005│ │ │ │aab │bba │
└─┴──┴─┴─┴─┴──┴──┘
Sheet3
Sheet1とSheet2のデータをコピーして貼り付ける
┌─┬──┬─┬─┬─┬──┬──┐
│ │ A │ B│ C│ D│ E │ F │
├─┼──┼─┼─┼─┼──┼──┤
│1 │番号│あ│い│う│か │き │
│2 │1001│aa│bb│a │  │  │
│3 │1002│sd│bb│sd│  │  │
│4 │1003│aa│bb│aa│  │  │
│5 │1004│sd│bb│sd│  │  │
│6 │1005│aa│bb│aa│  │  │
│7 │1002│ │ │ │abc │bbs │
│8 │1004│ │ │ │sdb │gds │
│9 │1005│ │ │ │aab │bba │
└─┴──┴─┴─┴─┴──┴──┘
A列基準にして昇順に並び替える
┌─┬──┬─┬─┬─┬──┬──┐
│ │ A │ B│ C│ D│ E │ F │
├─┼──┼─┼─┼─┼──┼──┤
│1 │番号│あ│い│う│か │き │
│2 │1001│aa│bb│a │  │  │
│3 │1002│sd│bb│sd│  │  │
│4 │1002│ │ │ │abc │bbs │
│5 │1003│aa│bb│aa│  │  │
│6 │1004│sd│bb│sd│  │  │
│7 │1004│ │ │ │sdb │gds │
│8 │1005│aa│bb│aa│  │  │
│9 │1005│ │ │ │aab │bba │
└─┴──┴─┴─┴─┴──┴──┘
セル範囲E3:F3を選択して、右クリック、削除を選択、削除ダイアログボックスで、「上方向にシフト」で
同じ番号のデータを揃える。
次に不要となった行を削除するために
B列を選択して、F5キーをおし、セル選択ボタンを押し、選択オプションダイアログボックスで
空きセルを選択して、OKをクリック。
その状態で編集→削除で、削除ダイアログボックスで行全体を選択して、OKをクリック
    • good
    • 0
この回答へのお礼

行数が少ない場合は初心者にとってわかりやすいですね。ありがとうございました。

お礼日時:2009/03/09 22:25

回答No2のhallo-2007さんとほぼ同じですが、計算速度がほしい場合で


かつ、番号が昇順の場合です
G2セルに =MATCH(A2,$B$9:$B$11)
E2セルに
=IF(ISNA($G2),"",IF($A2<>INDEX($B$9:$B$11,$G2),"",INDEX(C$9:C$11,$G2)))
右へオートフィル
E2:G2セルを下へオートフィル
参考まで
「エクセル 一致項目を基準にデータを合わせ」の回答画像3
    • good
    • 0
この回答へのお礼

やはり超初心者には関数の使い方が十分理解できませんでした。もう少しトライしてみます。
ありがとうございました。

お礼日時:2009/03/09 22:22

関数案ですが、


番号  あ   い    う     か   き
1001  aa   bb    a
1002  sd   bb    sd   
と準備して、かの列には
=IF(COUNTIF(もう一方のデータ!A:A,A1)>0,VLOOKUP(A1,もう一方のデータ!A:C,2,FALSE),"")
きの列は
=IF(COUNTIF(もう一方のデータ!A:A,A1)>0,VLOOKUP(A1,もう一方のデータ!A:C,3,FALSE),"")
下へコピィします。
    • good
    • 0
この回答へのお礼

これでできそうかなあと思いましたが、やはり超初心者には関数の使い方が十分理解できませんでした。もう少しトライしてみます。
ありがとうございました。

お礼日時:2009/03/09 22:21

メニューバー[データ]-[統合]ではいかがでしょうか?



参考URL:http://kokoro.kir.jp/excel/tougou.html
    • good
    • 0
この回答へのお礼

早急にありがとうございました。

お礼日時:2009/03/09 22:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!