- ベストアンサー
エクセルで重複するセルを削除したい
エクセル2000で同じ内容のセルが複数あったとき、ひとつだけを残し他を削除する方法を教えてください。 ただし少し条件があります。 データーは5列100行位からなっています。 A列にある重複したデーターのセルを削除したいのですが、A列は同一なのですがB列は異なっています。B列に数字が入っているセルとうでないセルがあるのですが、数字が入っているものを残したいのです。 具体例は次のとおりです。 A列に 「ホンダCIVIC」 B列 「-」と書かれた行と A列に 「ホンダCIVIC」 B列 「2」と書かれた行、 A列に 「ホンダCIVIC」 B列 「5」と書かれた行、 のA列だけを見ると重複した3行が有ったとします。 B列に「5」または「2」の入った行ひとつだけ残し、他を削除したいのです。 何かよい方法があればお教えください。よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- happypoint
- ベストアンサー率36% (521/1422)
回答No.6
- happypoint
- ベストアンサー率36% (521/1422)
回答No.5
- imogasi
- ベストアンサー率27% (4737/17070)
回答No.3
- imogasi
- ベストアンサー率27% (4737/17070)
回答No.2
- arukamun
- ベストアンサー率35% (842/2394)
回答No.1
お礼
何度もご迷惑をおかけし申し訳ありません。 #6さんの回答をきっかけに原因がわかってきました。 問題は私のデーターにあるようです。 webファイルで出力しソースを確認したところ、半角スペースが特殊文字である で記入されていました。これが半角スペースが除去できなかった原因であると思われます。 ご迷惑をおかけし申し訳ありませんでした。 今回教えていただいたことで改めてVBAがいろいろできることを認識しました。 もしよろしければご推奨のサイトとか書籍があればお教えいただけないでしょうか。 よろしくお願いします。
補足
たびたびで申し訳ありません。 ご指摘部分を修正したのですが、変化はありませんでした。 RTrim Trimともに同じです。 まだ何か有りましたらよろしくお願いいたします。 最終的には次のようになっています。 Sub test01() Dim sheet1, sheet2 As Worksheet Set sheet1 = Worksheets("sheet2") Set sheet2 = Worksheets("sheet3") '-----ソート sheet1.Range("A3:D1500").Sort Key1:=sheet1.Range("A1"), Order1:=xlAscending, Header:=xlNo, _ Key2:=sheet1.Range("B1"), Order2:=xlAscending, Header:=xlNo '----- d = sheet1.Range("a1").CurrentRegion.Rows.Count '--------初期設定 m = RTrim(sheet1.Cells(1, 1)) j = 1 For k = 1 To 4 sheet2.Cells(j, k) = RTrim(sheet1.Cells(1, k)) Next k '--------前行とダブり判定 For i = 2 To d If m = RTrim(sheet1.Cells(i, "A")) Then b = sheet1.Cells(i, "B") If IsNumeric(b) = True Then For k = 1 To 4 sheet2.Cells(j, k) = RTrim(sheet1.Cells(i, k)) Next k End If Else j = j + 1 m = RTrim(sheet1.Cells(i, "A")) For k = 1 To 4 sheet2.Cells(j, k) = RTrim(sheet1.Cells(i, k)) Next k End If Next i End Sub