dポイントプレゼントキャンペーン実施中!

エクセルで重複データ(行)を両方削除
   A         B       C
1  山田さん   090-111-   東京
2  鈴木さん   090-222-   埼玉
3  高橋さん   090-333-   茨城
4  山田さん   090-111-   東京

となっていた時、重複した行を削除して
以下のようにしたい場合はどうしたらいいでしょうか?

  A         B       C
2  鈴木さん   090-222-   埼玉
3  高橋さん   090-333-   茨城

A 回答 (8件)

添付図参照



Fig-1:Sheet1
 D2: =A2&"_"&B2&"_"&C2
 E2: =COUNTIF(D$2:D$5,D2)

Fig-2:Sheet1
 [オートフィルタ]で作業列2が数値 1 の行のみを表示させた結果を示しています。

Fig-3:Sheet1
 表示されたデータのA~C列のみを選択(その状態を示しています)して[コピー]を実行します。

Fig-4:Sheet2
 セル A1 を選択して[貼り付け]を実行した結果を示しています。
「エクセルで重複データ(行)を両方削除」の回答画像6
    • good
    • 1

参考までに



A~C列の3つのデータが一致する条件で検索する場合、数式が多くなると動きが重くなり実用性はあまりないと思いますが、最終的に表示するデータ数が少ないのであれば、以下のような数式で該当データを表示することもできます。
以下の式を入力し、右方向に3つ、下方向に適当数オートフィルしてください。

=INDEX(A:A,SMALL(INDEX((FREQUENCY(MATCH($A$1:$A$100&$B$1:$B$100&$C$1:$C$100,$A$1:$A$100&$B$1:$B$100&$C$1:$C$100,),ROW($A$1:$A$99))<>1)*1000+ROW($A$1:$A$100),),ROW(A1)))&""
    • good
    • 0

[回答No.6]の補遺



Fig-3:Sheet1
 表示されたデータのA~C列のみを選択(その状態を示しています)して、[編集]→[ジャンプ]→[セル選択]の画面で、“可視セル”に目玉を入れて[OK]をクリックした後で、[コピー]を実行します。
    • good
    • 0

こんばんは!


簡単なVBAになってしまいますので、参考にならなかったら読み流してください。

データは2行目からあるとします。
重複の検索項目は「電話番号」(B列)で判断するようにしています。
(氏名・住所は無視しています)

画面の左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
当方使用のExcel2003では メニュー → ツール → マクロ → マクロ → 実行
Excel2007では メニュー → 開発 → マクロ → 実行 だと思います
(手元にExcel2007がないので間違っていたらごめんなさい。)

Sub test()
Dim i As Long
Columns(1).Insert
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
Cells(i, 1) = WorksheetFunction.CountIf(Range("C:C"), Cells(i, 3))
Next i
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1) > 1 Then
Rows(i).Delete (xlUp)
End If
Next i
Columns(1).Delete (xlToLeft)
End Sub

尚、一旦マクロを実行すると元に戻せませんので別Sheetにコピーしてマクロを試してみてください。

以上、参考になればよいのですが・・・m(__)m
    • good
    • 1

次の方法は如何でしょうか。


(1)見出し行を挿入、項目名は任意文字列、空き列D列のD2に=SUMPRODUCT((CONCATENATE($A$2:$A$100,$B$2:$B$100,$C$2:$C$100)=A2&B2&C2)*1)=1を入力、下方向にコピー
   行範囲を100行としていますので実行数に変更して下さい
(2)表をオートフィルタを設定、D列のドロップボタンでFALSEを選択、抽出された行番号を選択→右クリックで削除
(3)オートフィルタを解除
    • good
    • 1

例えばA列の名前とB列の値は1:1に対応しているという条件があるなら、D2セル(1行目は項目名とする)に以下の関数を入力しオートフィルコピーし、この列で「○」を条件にオートフィルタをかけて該当データを抽出し、このA~C列の範囲をコピーして、新規シートに貼り付けてください。



=IF(COUNTIF(A:A,A2)=1,"○","")
    • good
    • 0

データは何件あるのでしょうか?



誰でも簡単な方法は Aセルをキーにして降順とか昇順に並べ替えて目視で削除となりますが

それ以外はプログラム組み込まなければ無理です
    • good
    • 0

まず、並べ替えを行ってから、


D2=IF(OR(A2&B2&C2=A3&B3&C3,A2&B2&C2=A1&B1&C1),"",A2&B2&C2)
以下ドラッグコピー、
として、並べ替えしてはいかがでしょう。
ちなみに、記載順をもとに戻すために、E列に連番を打っておいてください。
    • good
    • 0

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