人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelの質問です。重複するデータを行毎削除するような関数やマクロを教えていただけますでしょうか。

今、図のようなデータが、B?E列にかけて12000行ぐらい並んでおります。
この状況におきまして、「1 りんご」「2 ごりら」「3 らっぱ」のデータが重複しております。
B列にて、重複する番号が2つ以上ありましたら、1つの行だけを残して、それ以外の行は全て削除したいです。
B列の番号は1?99999番までのパターンがあります。

皆様のお力添えをいただければ幸いです。
よろしくお願い致します。

1436755990
●拡大する

●質問者: moon-fondu
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●150ポイント
Sub main()
Dim a As Long
Dim b As Long
Dim c As Long

対象シート = "Sheet1"

b = Worksheets(対象シート).Cells(Rows().Count, "B").End(xlUp).Row
If b = 1 And Worksheets(対象シート).Cells(2, "B") = "" Then
Else
 b = b + 1
End If
 

For a = b To 2 Step -1
 For c = a - 1 To 2 Step -1
 If Worksheets(対象シート).Cells(a, "B") = Worksheets(対象シート).Cells(c, "B") Then
 Worksheets(対象シート).Rows(c).Delete Shift:=xlUp
 Exit For
 End If
 Next c
Next a

End Sub

きゃづみぃさんのコメント
一行目は 空白になっていましたので、二行目以降を対象としています。

moon-fonduさんのコメント
ありがとうございます、うまく稼働して消せました!

2 ● a-kuma3
●150ポイント ベストアンサー

一発で重複行削除をするメソッドがあります。
https://msdn.microsoft.com/ja-jp/library/office/ff193823.aspx

こんな感じで使います。

Sub 重複削除()
 ActiveSheet.Range("B:E").RemoveDuplicates Columns:=1, Header:=xlYes
  ' ↑ ↑ ↑
  ' ↑ ↑ 範囲の最初の行を見出しとして扱う
  ' ↑ ↑
  ' ↑ 範囲の左から1列目を重複行の判定に使う
  ' ↑
  ' B?E列で全ての行を対象
End Sub

B?E列以外の範囲では、消された行のデータはそのまま残ります。


moon-fonduさんのコメント
すごいです!一瞬でした・・・。

3 ● 株式会社JIVE
●150ポイント

関数ではないのですが、Excelの機能として「重複の削除」があります。
これは、行ごと削除できますし、行数制限などはありません。
手順は
1)B列にカーソルを置く
2)メニュー[データ]-[重複の削除]を選ぶ
3)列選択が出るのでB列のみチェックを入れる
(B列以外はチェックを外す)
4)OKを押す

これだけで、重複された行は削除されます。
ただし、Ver2003の場合は、また別の手段が必要です。

この説明が下記です。
http://www.microsoft.com/ja-jp/atlife/tips/archive/office/tips/002.aspx

■この手順をマクロ登録することで、ボタン1つで実行できます。

1.マクロの登録方法はこちら
※[マクロ記録終了]を押すまで、上記の1)?4)作業を行い、[マクロ記録終了]を押すことで、その作業を登録できます。

2.マクロ登録したら、ボタンを作る
[開発]タブ-[挿入]でボタンを選び、シート上に置く

3.ボタンに1で登録したマクロを選び、「ok」を押すと登録完了

4.作成したボタンを押す

以上でマクロの登録から実行まで行えます。

お役に立てれば幸いです。


moon-fonduさんのコメント
すごいです、Excelにこんな便利な機能があるなんて・・・知りませんでした! ありがとうございます。

質問者から

みなさまありがとうございます!どれもすばらしいご回答でした!
なので、ポイントは同じ配分にさせていただきましたが、一番処理スピードが早かったa-kuma3さんのメソッドをベストアンサーにさせていただきました。
また何かありましたらよろしくお願いします。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ