エクセルのA列とB列で重複するデータを抽出して別の列に表示する方法

このQ&Aのポイント
  • エクセルのA列とB列で重複するデータを抽出して、別の列に表示する方法を解説します。
  • 抽出する条件は、A列にもB列にあるデータすべて、A列にしかないデータすべて、B列にしかないデータすべてです。
  • C列には重複するデータを表示し、D列にはA列にしかないデータを表示し、E列にはB列にしかないデータを表示します。
回答を見る
  • ベストアンサー

エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させた

エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列に約1,000行くらいのデータが有ります。 このA列内で重複レコードがあります。 B列に約1,000行くらいのデータが有ります。 B列内でも重複レコードが有ります。 この条件の中で (1)A列にもB列にあるデータすべて (2)A列にしかないデータすべて (3)B列にしかないデータすべて を抽出したいのですが、どんな方法がありますか? それで (1)をC列 (2)をD列 (3)をE列 に並べて表示させたいです。 さらに抽出されたデータで重複レコードの場合は1件のみで表示したいです。 複数の操作を繰り返すのではなく C,D,E列に式を入れるだけで済ませる事は可能でしょうか? よろしくお願いします。 例    A   B    C   D   E 1-001-002--001--004--007 2-002-002--002--006--008 3-001-001--005--010 4-005-007 5-001-005 6-004-005 7-004-008 8-010-007 9-006-007 A列には001が3個、002が1個、005が1個有ります。 B列には001が1個、002が2個、005が2個有ります。 A列にもB列にも有るのは、001と002と005ですから これがC列に表示されます。 でそれぞれA列にもB列にも複数有りますが、1個として判定なので よって、C列には 001 001 001 001 002 002 005 005 と表示ではなく 001 002 005 と表示したい。 次にD列はA列に有る物だけですから 004 006 010 となります。B列には004は2個有りますが同じ値なので 004 004 006 010 では無く004は1個の表示です。 E列はB列のみのデータなので 007 008 です。 同じくB列には007が3個有りますが1個ともなします。 007 007 007 008 では無く 007 008 です。

  • gx9wx
  • お礼率95% (440/460)

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2です! たびたびすみません。 投稿した後で質問文を読み返してみるとデータが約10000行あるということなので、 前回の数式の「1000」の部分を全て「10000」に変更してみてください。 そして余計なお世話かもしれませんが、10000行までオートフィルでコピーするのは大変でしょうから、 当方使用のExcel2003の場合ですが もう1列A列に列を挿入します。 A2セルに「1」を入力後、A2セルをアクティブにします  → メニュー → 編集 → フィル → 連続データの作成 → 「列」を選択 → 「停止値」に「10000」としてOK そして、B2~D2セルに作業列が移動しているはずですので、B2~D2セルを範囲指定し、 D2セルのフィルハンドルの(+)マークでダブルクリック 10000行目までコピーできますが、少し時間がかかると思います。 最後にA列全てを削除します。 以上、何度もごめんなさいね。m(__)m

gx9wx
質問者

お礼

丁寧にありがとうございました。 今回1回だけの編集なんですが、おかげで助かりました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 一例です。 No.1さんとほとんど同様の方法になります。 ↓の画像のように作業用の列を3列使っています。 とりあえず、1000行目まで対応できるようにしています。 3列挿入していますので、元の列は右にずれてしまいます。 作業列A2セルに =IF(COUNTBLANK(D2:E2)=2,"",IF(AND(COUNTIF($E$2:$E$1000,D2),COUNTIF($D$2:D2,D2)=1),D2*1000+ROW(A1),"")) B2セルに =IF(COUNTBLANK(D2:E2)=2,"",IF(AND(COUNTIF($E$2:$E$1000,D2)=0,COUNTIF($D$2:D2,D2)=1),D2*1000+ROW(A1),"")) C2セルに =IF(COUNTBLANK(D2:E2)=2,"",IF(AND(COUNTIF($D$2:$D$1000,E2)=0,COUNTIF($E$2:E2,E2)=1),E2*1000+ROW(A1),"")) という数式を入れ、A2~C2セルを範囲指定し、C2セルのフィルハンドルで下へずぃ~~~!っとコピーします。 そしてF2セルは =IF(COUNT(A$2:A$1000)<ROW(A1),"",INDEX($D$2:$D$1000,MOD(SMALL(A$2:A$1000,ROW(A1)),1000))) として隣のG2セルまでコピー。 H2セルは =IF(COUNT($C$2:$C$1000)<ROW(A1),"",INDEX($E$2:$E$1000,MOD(SMALL($C$2:$C$1000,ROW(A1)),1000))) という数式を入れています。 最後にF2~H2セルを範囲指定し、H2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 以上、長々と書きましたが 参考になれば幸いです。m(__)m

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

A列、B列に入っているのが文字列ではなく数値で、書式設定で「001」の様に表示しているだけの場合、以下の様にすることで可能です。 作業列を3つ使います。 G1に =IF(COUNTIF(A$1:A1,A1)=1,IF(COUNTIF(B:B,A1)>0,A1,""),"") H1に =IF(COUNTIF(A$1:A1,A1)=1,IF(COUNTIF(B:B,A1)=0,A1,""),"") I1に =IF(COUNTIF(B$1:B1,B1)=1,IF(COUNTIF(A:A,B1)=0,B1,""),"") と、入れてG1:I1を下方向にコピーします。 これで途中に空白が入ったデータが出来ます。 これをC~E列に空白セルを詰めて表示します。 C1に =IF(ROW()>COUNT(G:G),"",SMALL(G:G,ROW())) と入れてコピーし、C1:E1000(データが1000行以上ある時はその行まで)に貼り付けます。

関連するQ&A

  • エクセルでA列B列C列の重複するレコードのみを表示

    エクセルのA列とB列とC列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列とB列とC列にそれぞれ1000行くらいのデータがあります。 それぞれの列内には重複レコードがあります。 この条件の中で 「A列とB列とC列に重複するデータすべて」 を抽出したいのですが、どんな方法がありますか。 抽出されたデータで重複レコードの場合は1件のみで表示したいです。 よろしくお願いします。 例   A   B   C   抽出  1-001-002--002--002 2-002-002--005--007 3-003-007--007--008 4-007-008--008--011 5-008-008--010 6-008-010--011 7-011-011--012 8-013-014--013

  • 重複するデータの抽出について(エクセル)

    エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば   A列   B列   C列    D列    E列・・・ 1  色  1回目  2回目  3回目   4回目 2  赤   あ    a      A       0 3  白   い    b      B       1 4  黄   う    c      C       2 5  黄   え    d      D       3 6  黒   お    e      E       4 7  赤   か    f      F       5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。

  • エクセルで重複しないものだけを抽出したい

    下記のようなデータがあります。 A B C D 1 20 30 40 1 20 32 41 1 20 30 49 1 20 81 39 2 20 76 40 2 20 32 41 2 20 30 49 3 20 81 39 3 20 39 40 3 20 32 41 4 20 30 49 4 20 81 98 このうち、列Aの他と重複しない部分であり、かつ先頭行を抽出するにはどのようにしたらよいでしょうか? 上記の例で言うと、列Aの1から4までのそれぞれ1行目を選ぶという作業です。 抽出後 A B C D 1 20 30 40 2 20 76 40 3 20 81 39 4 20 30 49 vlookupなどの関数でできるのでしょうか?教えてもらえたらうれしいです。お願いします。

  • 【エクセル】重複データ抽出時にうまくいかない

    エクセル2003で、[データ]→[フィルタ]→[フィルタオプションの設定]で下記のように 設定して重複データを省きました、 ・「指定した範囲」にチェック ・「リスト範囲」に$A$1:$A$13を入力。 ・「抽出範囲」に$B$1を入力 ・「重複するレコードは無視する」にチェック の条件で実行すると。 [元データ]  A列 1 a 2 a 3 b 4 b 5 c 6 c 7 c 8 d 9 d 10 d 11 e 12 e 13 e が [フィルタ実行後]  A列  B列 1 a  a 2 a  a 3 b  b 4 b  c 5 c  d 6 c  e 7 c 8 d 9 d 10 d 11 e 12 e 13 e の様にB列でaが2つ出てしまいます。 なにが原因でしょうか?

  • ExcelでA列内で重複するレコードを削除

    A、B、C列にデータが入力されており、A列の店名が重複する場合、最初の1つを残して、他の重複するレコード(行全体)を削除する方法を教えてください。 A列で重複していても、B、C列で内容が違う可能性があります。 例えば、 A列:田中商店 B列:本町1-1-1 C列:0120-000-000 A列:田中商店 B列:本町1-1-11 C列:0120-000-001 この様にA列で田中商店が重複する場合、1番目の田中商店の行だけを残し、2番目以降は行全体を削除して上方向に詰めたいです。

  • 番号が一致したら別の列の値を抽出したい

    こんばんわ。 Excelについて教えてください。 A列に数字が1~10と並んでおり、 C列には数字が穴あきで5つ(1,2,4,6,8)あったとし、 A列とC列を比較して比較し、数字が重複した場合は、 D列にある値をB列に抽出したいのですが、行番号を指定して 抽出する事なんてできますでしょうか? ↓こんな事をしたいです。 A列 B列 C列 D列 1  A  1  A 2  B  2  B 3     4  C 4  C  6  D 5     8  E 6  D 7 8  E 9 10

  • エクセルマクロ重複した列を削除した結果を抽出したい

    お世話になります。 各行で、重複したセルを除いた文字列を結合してA列へ表示させたいのですが、全然わからず困っています。宜しくお願い致します。 【抽出前】 セルB2:あいうえお セルC2:かきくけこ セルD2:さしすせそ セルE2:あいうえお セルB3:たちつてと セルC3:らりるれろ セルD3:たちつてと         ・         ・         ・ 【抽出後】 ※重複した部分を除いた抽出結果を、A列に表示させたい セルA2:あいうえおかきくけこさしすせそ セルA3:たちつてとらりるれろ         ・         ・         ・ 【補足】 ※列数は決まっていません。値が入っているところ迄、となります。例では最長E列迄になっておりますが、もっと長い場合もあれば、B列だけの場合もあります。 ※行数は、数100行あります。こちらも値が入っているところ迄、抽出結果をA列のA2から順番に表示させたいです。

  • Excelで、A列に「ある特定のキーワード」が入っていたら、それをB列に抽出したい

    タイトルの通りなのですが、具体的な例を以下に記載します。 A列には、3行~5行からなるアンケートに対する回答がテキストとして存在している。 このテキストの中に「ありがとう」という文字列が存在した場合、B列に「1」と入力されるようにしたい。 やりたいこととしては、単純にこれだけです。 で、ここからさらに「複数のキーワードを抽出したい」というのが今回の質問です。 A列に以下のテキストデータがあるとします。 ---------------------------------------------------------- いつも親切にしてくれてありがとう。 近いうちに、私からあたなに対してお礼をしたいと思います。 よかったら食事にでも行きましょう。 ---------------------------------------------------------- この中から「ありがとう」「親切」「お礼」「食事」というキーワードを 拾い、B列、C列、D列、E列にそれぞれ「1」と反映されるようにしたい。 イメージ画像を添付したので、そちらを見ていただければと思います。 イメージ画像はすべて手動で入力した結果ですが、これを自動で行いたいと思っています。 画像でいうと、C列にテキストデータをペーストしたら、自動的にD、E、F、G列に「1」という数字が入るようにしたいです。 エクセル2003を使っています。 どうか、よいアドバイスをいただければと思います。

  • excelの複数シートを検索対象にして重複行を抽出する方法

    ある値が重複する行を抽出したいのですが 抽出元データが600,000行近くあり、1sheetに入らず9シート程に分けました。 countifを使おうとしたのですが検索範囲に複数シート指定が出来ず(3D-参照の対象関数ではないようです)、 =COUNTIF('sheet1:sheet9'!$C:$C,C1)としてみたのですが、重複行があっても全て#VALUE!となってしまうので機能できていないようです。 具体的には sheet1~8に下記のようなデータがあり、C列が重複する行を抽出したい。 A列:id、B列:名前、C列:メアド、D列:xx 宜しくお願い致します。

  • エクセル 重複データの抽出方法を教えてください。

    複数のセルの値が同じである重複データを抽出する方法を教えてください。 (A)伝票No.、(B)勘定科目CD、(C)金額、(D)取引先CDとなっている場合で、(B)(C)(D)のすべての値が同じデータ(重複データ)のみを抽出したいのです。 例: (A)伝票No.、(B)勘定科目CD、(C)金額、(D)取引先CD 12120 005 10,000 1234 ※ 12121 005 20,000 1234 12122 004 20,000 1235 12123 003 20,000 1236 12124 005 10,000 1234 ※ 12125 003 20,000 1237 12126 006 10,000 1237 ※印の2つの行が重複データとなり、この行のみを表示または色や印を付けてわかる状態にしたいのです。 重複しているデータは双方わかるようにしたいのですが可能でしょうか? (伝票No.12120と12124の両方が解る状態) データ件数が5000件ちょっとあるのでソートしただけでは時間がかかってしまいます。解る方おられましたら教えてください。(*- -)(*_ _)ペコリ

専門家に質問してみよう