エクセル重複データの比較方法と整理手順

このQ&Aのポイント
  • エクセルで重複データがある2つの列を比較する方法について教えてください。現在の住所を確認するための確認資料作成に困っています。
  • エクセルのIF関数を使用して、重複データがある2つの列を比較し、相違があるかどうかを確認する方法を試しましたが、ベストな結果ではないと思います。
  • マクロやエクセルの機能を使用して、エクセルの重複データを整理する方法を教えていただきたいです。表の形式にする必要はありません。
回答を見る
  • ベストアンサー

エクセル重複データのある列同士の2列を比較したい

エクセルに詳しい方、教えて頂きたいです。 文で説明すると、難しいので例と一緒に説明させてください。 例えば、下のようなデータがあるとします。 A列 B列 山田さん 栃木県 山田さん 栃木県 山田さん 大阪府 山田さん 栃木県 鈴木さん 三重県 鈴木さん 三重県 大野さん 千葉県 大野さん 東京都 大野さん 東京都 A列はA列で重複したデータがあり、B列はB列で重複したデーターがある場合。 A列 B列 C列 山田さん 栃木県 大阪府 鈴木さん 三重県 大野さん 千葉県 東京都 上ような結果にできる方法はないでしょうか。 例えば住所録をデータで何年分かためており、整理したいが、現在の住所は一つのはずなのに間違えて住所入力したか引越ししたかで複数住所がある。現在はどちらが正しいのか確認するために、その確認資料を作成したい。(同じ名前の人で別人の人はいないとする。) 相違があるかどうかを調べるだけならと、 C列にif関数をいれて見ましたが、ベストな結果ではないと思います。 ちなみに入れた関数は、元のデータのC列目に IF(A1=A2,IF(B1=B2," ","相違あり")," ") 上のIF関数をいれて、下にデータの分だけコピペしました。 エクセルを触るのは久々で、思いつく方法をしてみました。 ですので関数でできるのか、マクロでできるのか、またはエクセルの機能を使用してできるのか、またその方法を教えて頂きたいです。 そんな表にしなくても、こういうのでいいんじゃないの?等の提案でも構いません。 よろしくお願いいたします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

質問にある通りのレイアウトを算式やマクロで出力するのは大変なので並べ替えとフィルターグループの詳細設定ボタンを使ってみます。算式は一切使いません。質問のように氏名で並べ替えている方がきれいに出力されます。 A列とB列の最初に「氏名」と「住所」の表題を付けます。添付図のように列を空けて表題を2つコピーしてください。検索条件範囲と抽出範囲の指定用の列になります。     A列のデータをクリック データタブ>並べ替えとフィルター>詳細設定をクリック フィルターオプションの設定ダイアログボックスで  ・抽出先を「指定した範囲」  ・リスト範囲は「$A$1:$B$10」 (選択されているはず)  ・検索条件範囲はクリアして何も入力しない  ・抽出範囲は「$D$1」  ・「重複するレコードは無視する」にチェックして「OK」    これで、D2=山田さん、D3=鈴木さん、D4=大野さんになったはず。   次に、 A列のデータをクリック データタブ>並べ替えとフィルター>詳細設定をクリック フィルターオプションの設定ダイアログボックスで  ・抽出先を「指定した範囲」  ・リスト範囲は「$A$1:$B$10」 (選択されているはず)  ・検索条件範囲は「$D$1:$E$1」にする。  ・抽出範囲は「$G$1:$H$1」  ・「重複するレコードは無視する」にチェックして「OK」    これで、G、H列に抽出されたはずです。 レイアウトは少し違います。実際の項目はもっと多いかもしれませんが、G、H列を変化させればできるでしょう。

emaplais
質問者

お礼

早速の回答ありがとうございます! こんな機能があったんですね。 参考にして、使って行けそうです!ありがとうございました(_ _)

その他の回答 (2)

  • answer119
  • ベストアンサー率64% (31/48)
回答No.3

名前が同じで住所が異なるとき、住所を横に展開するのではなく、縦のままとし、重複する名前は最初に現れる行以外は見えなくするというやり方もあると思います。 次のような感じです。 名前....... 住所 山田さん 栃木県 ............... 大阪府 鈴木さん 三重県 大野さん 千葉県 ............... 東京都 重複する名前を表示しないようにするには、「書式」→「条件付き書式」で、値が一つ上のセルと同じときには、文字の色を白(あるいは背景と同じ色)に設定すれば、見えなくなります。 名前列のもっとも上のセルでこの書式を設定して、名前列全体にその書式をコピーします。 あとは、先の回答者さんが示しているように、名前順に並べて、「フィルタ オプションの設定」で重複する行を隠せばいいと思います。 横に展開すると住所が長く、重複する件数が多かったらやたらと横長になってしまいますし、縦の展開で維持していた方がその後の利用もしやすいと思うのですが。 当方、古いバージョンのExcelしか持っていないもので、最新のバージョンならもっといい方法があるのかもしれませんが。

emaplais
質問者

お礼

本当に色々な提案して頂き参考になります! いろいろ試してみて、自分のしたいことができるように調整してみたいと思います。 本当にありがとうございます(_ _)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

ご利用のエクセルのバージョンがご相談に書かれていないので、エクセル2007以降を使う方法を2つ。 方法1) A:B列を選択する データタブの「重複の削除」を行う 山田さん 栃木県 山田さん 大阪府 鈴木さん 三重県 大野さん 千葉県 大野さん 東京都 という5つのデータが全てである事が確認できる。 方法2) C1セルに =IF(COUNTIFS($A$1:A1,A1,$B$1:B1,B1)>1,"","初出") と記入、以下コピーする 5種のデータが初出である(それ以外は重複である)ことが確認できる。 バリエーション: D1セルに =IF(COUNTIFS($A$1:A1,A1,$B$1:B1,B1)>1,"重複あり",IF(COUNTIFS(A:A,A1,B:B,"<>"&B1)>0,"別バージョン","残す")) と記入、以下コピーする 残す:そのまま残しておいてよいデータ 重複あり:名前、住所がダブってるデータが自分より上にあるので、問答無用で削除して良い 別バージョン:名前が同じで住所の違うデータが存在してる 【参考】 エクセル2003以前をご利用の場合; =IF(SUMPRODUCT(($A$1:A1=A1)*($B$1:B1=B1))>1,"重複あり",IF(SUMPRODUCT(($A$1:$A$999=A1)*($B$1:$B$999<>B1))>0,"別バージョン","残す")) といった関数にする。 #ご相談投稿では、普段あなたがご利用のソフトのバージョンまで、キチンと明記する事を憶えて下さい。次回以降のご参考に。

emaplais
質問者

お礼

記述忘れてすみません。エクセル2007でした。 こんな簡単な作業でできるのを初めて知りました! 今後も活用できそうです。 ありがとうございました(_ _)

関連するQ&A

  • エクセルでの列の文字列の一括置換え

    ご質問失礼いたします。 エクセルので以下のようなことを 行いたくご相談させて頂きます。 以下のようなExcel A | B   01 | 北海道 02 | 青森県 03 | 岩手県 04 | 宮城県 05 | 秋田県 06 | 山形県 07 | 福島県 08 | 茨城県 09 | 栃木県 10 | 群馬県 (47都道府県分あり) ~~~~~~ 別ワークシートに A      | B    | C    | D 山田太郎   群馬県  ○○市   ○○3丁目10-1 鈴木花子   秋田県  ○○市   ○○5丁目10-1 ~~~~~~ とあってB列の都道府県を前者のB列>A列の数字に変換し A      | B    | C    | D 山田太郎   10     ○○市   ○○3丁目10-1 鈴木花子   05     ○○市   ○○5丁目10-1 ~~~~~~ このようにしたいです。 後者の行が数千あるのと都道府県が多いので通常のExcelの一括置換えなどではなく、 効率の良い方法や関数などございましたら、是非ご教授いただければ幸いです。

  • エクセルで、1列に羅列されたデータを複数の列で並び変えたいのですが。

    具体的には、現状A列に、 103-0001 東京都中央区日本橋茅場町1-1-1 (株)○○商事 山田 太郎 103-0002 東京都中央区日本橋茅場町2-2-2 (株)○○物産 山田 花子 という4行ごとのデータが400近く並んでいます。 これを、A列に郵便番号、B列に住所、C列に社名、D列に名前という風に並び替えたいのですが、1件ずつコピペするわけにもいかず、困っています。 どなたか、簡単な方法をご教示頂ければ幸いです。VBAは使用できませんが、簡単な関数なら指示通り使うことができます。私の検索方法がわるかったのか、同様の質問が見つけられませんでした。 よろしくお願いいたします。

  • Excelの一覧から重複データを削除したい(関数)

    Excelに関する質問です。 表から重複するデータを削除したいのですが、 並び替えて、重複を目でみて削除するのは大変なので、 「名前」と「郵便番号」が一致するデータに「1」などの フラグを立てる関数を教えて下さい。 もしくは、表の中に「指定した郵便番号」が何個 存在するのかをカウントする関数でも結構です。 ちなみに、表はこんな感じです。 A列、B列、C列の順に 名前   郵便番号 都道府県 住所 山田一郎 630-8888 北海道 札幌市北区新川×× 山田ニ郎 001-1234 東京都 小平市×××××× 山田三郎 555-8888 鹿児島 櫻島時×××××× こんな表があって、全部で500レコードほどあります。

  • エクセルで重複したデータをひとつにまとめる。

    オフィス2010を使用して、エクセルデータの作成をしています。 Sheet1のA列に氏名、B列に金額が入力しています。 A列の氏名には同じ人が重複している場合もあれば 一度だけしか氏名が出てこないひともいます。 B列の金額はバラバラです。 山田 200 池野 300 一条 200 尾本 500 宝田 600 池野 600 吉川 200 増田 800 山田 600 A列の名前で重複しているものについては合計たした数字を、 重複していないものに関しては そのままの数字を求めたいのですが 関数を使用して可能でしょうか? 出来れば別のSheet2でその表を作成したいのですが まったくわかりません。 詳しいかたがいましたら 教えてください。

  • Excelで各行の最小値となる列の探索

    Excelで,各行ごとに,最小値を探索し,その最小値が どの列のデータかを計算したいのですが,どのようにすればよいのでしょうか? 例えば      山田  鈴木  田中 データ(1) 10.3  0.42  0.5 データ(2) 1    10.1   4 データ(3) 5    11.8   2 といった感じのデータに対して,      山田  鈴木  田中 データ(1) 10.3  0.42  0.5  鈴木 データ(2) 1    10.1   4   山田 データ(3) 5    11.8   2   田中    という感じで,各列の1行目の値が出力されるように したいのですが。 一応,LookUp関数,Match&Index関数を使ってみましたが,探索する文字列が小数のためか,探索できる行と N/Aになるものとが存在し,その差がなぜ生じるのかが わかりません。 上記関数にはこだわらないので,何か良い方法がありましたらご教授ください。

  • エクセル

    いつもご回答いただきありがとうございます。 エクセルで分からないことがありますので、質問させてください。 下記のようにA列には都道府県名が順不同で入力されており、 B列にA列にある都道府県を1つずつ書き出したいのですが、そのよう な関数はありますでしょうか? A      B -------------------- 愛知県   愛知県 岐阜県   岐阜県 愛知県   三重県 三重県   東京都 三重県   静岡県 東京都    愛知県    三重県    静岡県    東京県    東京県    愛知県    静岡県    わかりにくくて申し訳ありませんが、よろしくお願いします。

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • エクセル キーとなる項目で判別し重複データ行を削除したい

    エクセル2002を使用しています。 差込印刷用のデータとして整える方法を教えていただきたいと存じます。 具体的には、子供ごとのレコードデータから、親宛の封筒宛名ラベルを作成したいと考えていて、2人兄弟や3人兄弟の場合でも封筒は1通なので、 キーとなる項目を目安に、不必要な行を削除すればできると考えましたが、具体的な方法がわからないでいます。 現在のデータは、以下のものです。(簡潔にするために列を部分的に省いています) 世帯コード   親の氏名   住所           子の氏名 0011223    鈴木 一郎  東京都千代田区一丁目   鈴木 次郎 0011223    鈴木 一郎  東京都千代田区一丁目   鈴木 三郎 0011223    鈴木 一郎  東京都千代田区一丁目   鈴木 四郎 0011556    山田 花子  埼玉県川口市中央     山田 洋子 0011556    山田 花子  埼玉県川口市中央     山田 和夫 0153355    佐藤 次郎  千葉県船橋市海浜     佐藤 みく 0002333    鈴木 一郎  神奈川県川崎区高津区   鈴木 空 0002333    鈴木 一郎  神奈川県川崎区高津区   鈴木 陸 これを、次のように「世帯コード」で判別して世帯ごとの最初の行だけを抜き出したり、2行目以降を削除したりできれば、差込印刷用のデータとして利用できると思います。 世帯コード   親の氏名   住所           子の氏名 0011223    鈴木 一郎  東京都千代田区一丁目   鈴木 次郎 0011556    山田 花子  埼玉県川口市中央     山田 洋子 0153355    佐藤 次郎  千葉県船橋市海浜     佐藤 みく 0002333    鈴木 一郎  神奈川県川崎区高津区   鈴木 空 (世帯ごとに一行ずつになっています。親の氏名のうち、鈴木 一郎 さんは、同姓同名の方です。世帯コードが違うので区分できます。) エクセルの機能でこのようにできる方法はあるでしょうか? もしくは別の方法でも、宛名ラベルを親宛に一枚印刷できる方法があるでしょうか? お願いいたします。 データ用のシートですので、行や列の挿入や別シートの利用などはすべてできますので、よろしくお願いいたします。

  • 2つ以上の条件でエクセルで重複したデータを抽出したい

    下記のようなエクセルのデーターがあったとします。 「氏名が重複していてかつ個数も重複するもの」 を抽出したいのですがどうすればよいでしょうか? いろいろ検索したところIF(SUMPRODUCT(($A$3:A3=A3)*($B$3:B3=B3))>1,"同じ人","") という風にすればよいようなのですが、この式自体がよくわかりません。IF関数の中にSUMPRODUCTを ネストするところまではわかるのですがその後の式「:A3=A3)*($B$3:B3=B3))」までがわかりません。 何を選んでこういった式になるのでしょうか??初歩的な質問で申し訳ないのですが、教えてください。 よろしくお願いします。 A列 B列 氏名 個数 加藤 1 新妻 2 加藤 1 鈴木 3 加藤 6 小島 8

  • Excelで2列にまたがるデータを比較したい

    こんばんは。 A列とB列の比較に困っています(>_<) 例えば、  ======A===========|=========B==========|=======C======== 2 セパタクロー==========ペタンク==============  3 ペタンク==============カモギー==============    4 クリケット============ブズカシ==============    5 ブズカシ==============ホルヌッセン==========ホルヌッセン 6 コクボル==============ヤールギレッシュ======ヤールギレッシュ 7 ハーリング============クロッケー============クロッケー 8 カモギー==============タスポニー============タスポニー ・            ・             と、データが並んでおりまして、この中から「B列にはあるがA列にはないデータ」を、C列に抽出したいのです。 この場合「ホルヌッセン」「ヤールギレッシュ」「クロッケー」「タスポニー」が、B列にはあるがA列にはないデータなので、関数などを使ってC列にそのデータをそのまま抽出したいのですが、どの関数を使えばいいのか頭を悩ませています・・・。 B2「ペタンク」という文字列を、A列全てを検索範囲として検索し、もしA列に「ペタンク」という文字列があれば、C2には“空白”を返します。 もし、A列全てから検索しても「ペタンク」という文字列がなかった場合、C2にはそのまま「ペタンク」を返します。 それによって最終的に、「A列にはないがB列にはあるデータ」を、C列に抽出したいのです。 皆様のお力をお借しいただきたい次第です(>_<) よろしくお願いします<m(__)m>

専門家に質問してみよう