• ベストアンサー

エクセルで重複セルを削除するマクロを考えています

maruru01の回答

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 要は、A列で一番上を残して重複データの行を削除したいということですね。 それなら、前半の処理をする必要はないと思います。 A列のデータが入力されている最下行から上に向かってループさせればいいと思います。 Sub macro()   Dim rastrow As Long   Dim i As Long   rastrow = Range("A65536").End(xlUp).Row   For i = rastrow To 2 Step -1     If Cells(i, 1).Value = Cells(i - 1, 1).Value Then       Cells(i, 1).EntireRow.Delete Shift:=xlUp     End If   Next i End Sub データがA列の昇順になっていないのなら、この処理の先頭に、並べ替え処理を付ければいいでしょう。 なお、並べ替え処理は、実際の操作をマクロ記録してみましょう。 他の作業でも、まずマクロ記録が基本です。

ennkai
質問者

お礼

回答ありがとうございました。 私が思っていたよりもシンプルな内容で 且つ 作業時間も30秒くらいですんだので 非常に満足しています。 「下から上へ向かってループ」・・・ 非常に分かりやすかったです ありがとうございました

関連するQ&A

  • エクセルでの重複セルの削除

    こんにちは いつもお世話になっています。 エクセル2003を使っています。 A列に文字列があり、条件付書式で重複データのセルに背景色を付けています。 A列は、ふりがなで昇順でソートしてあります。 条件付書式は数式に =COUNTIF(A:A,A1)>1としています。 B列にはA列の特定セルの行にだけ数字データがあります  A列の特定セルとはA列の重複セルの下側のセルです。 重複データは常に2つだけ出てきます。ソートしてあるのでB列にデータの無いセルが上側に配置されているのだと思います。 例えば、 A    B 事項 該当箇所 (見出しです) 愛知  秋田 秋田 12.23.34. 石川 愛媛 愛媛 5.68.78. (A列の秋田、愛媛のセルの背景色が条件付書式で黄色くなっています) という具合です。 ここで質問ですが、 重複セルの上側のセルだけを削除する方法を教えてください。上の例ではB列にデータの無い秋田、愛媛です。 フィルタオプションで「重複セルを無視する」にチェックをいれても重複セルの下側のセルが無視されてしまいます。また、検索で色つきセルだけを表示しようとしても条件付書式ではできないようです。 わかりにくい説明ですみません。よろしくお願いします。

  • エクセルのオートフィルタについて

    エクセルのオートフィルタについて教えてください。 エクセル2003です。 データ-並べ替え で複数の列に対してレベルごとに昇順で並べ替えをしますが、これをオートフィルタではできないのでしょうか? 例えば、A列にクラスデータがあり、それをオートフィルタで昇順にしておいて、それをレベル1として、B列に点数があり、それをオートフィルタで降順にして、それをレベル2とするような使い方です。

  • エクセルで重複するセルを削除したい

    エクセル2000で同じ内容のセルが複数あったとき、ひとつだけを残し他を削除する方法を教えてください。 ただし少し条件があります。 データーは5列100行位からなっています。 A列にある重複したデーターのセルを削除したいのですが、A列は同一なのですがB列は異なっています。B列に数字が入っているセルとうでないセルがあるのですが、数字が入っているものを残したいのです。 具体例は次のとおりです。 A列に 「ホンダCIVIC」 B列 「-」と書かれた行と A列に 「ホンダCIVIC」 B列 「2」と書かれた行、 A列に 「ホンダCIVIC」 B列 「5」と書かれた行、 のA列だけを見ると重複した3行が有ったとします。 B列に「5」または「2」の入った行ひとつだけ残し、他を削除したいのです。 何かよい方法があればお教えください。よろしくお願いします。

  • EXCELで2つのファイルから重複データで抜き出したいです。

    EXCELで2つのファイルから重複データで抜き出したいです。 『A』ファイルという顧客データと『B』ファイルという顧客データがあります。 それぞれ項目は同じで、 A列=顧客コード B列=顧客名 C列=住所   ・   ・   ・ となっています。 『A』ファイルと『B』ファイルそれぞれのファイルには顧客コードに重複はありません。 『A』ファイルと『B』ファイルを比べて 重複データ以外のダブリのないファイルを作成したいです。 よろしくお願いします。

  • エクセルVBAでセルの選択する方法

    B3セルからI200セルまで全部データが入力されている データを C3キー昇順と、F3キー昇順並べ替えしたいと考えています。 まず B3を選択して 次に I列の最終データを xldownを使用? 選択し 並べ替えすればいいのでは? と考えましたが、 その選択方法が分かりません。 よろしくお願いします。 直接I200を指定しないのは、 データによって 200行だったり 220行だったりすることがあるためです。

  • エクセル2003 

    エクセル2003  昇順・降順を行う対象列の設定について(オートフィルタ) ----------------------------------------------------- 会社名 ========= 株式会社た (カブシキガイシャタ) さ株式会社 (サカブシキガイシャ) とあるところに会社名列にオートフィルタを設定し、昇順並べ替えをすると セルに設定されたふりがなから判断されるため、 「株式会社た」 「さ株式会社」 の順となります。 しかし「さ」が「た」よりも上にくるよう、昇順にしたいので、 以下のように作業用としてのフリガナ列を作り フリガナ    会社名 ←実際にはここのセルに昇順・降順を選択できるものをつける ======= ========== た      株式会社た さ      さ株式会社 とし、会社名のセルにある昇順・降順を選択すると、会社名の列の ふりがなを参照して並べ変えるのではなく、フリガナ列を参照して並べ替えるよう、 オートフィルタを会社名のセルの部分に設定したいです。 つまり、 会社名のセルを始点とし会社名のある列を範囲選択後、「データ」→「フィルタ」→「オートフィルタ」 を選択すると、会社名のセルの部分に選択した列の昇順・降順を行うものがついてしまい、 昇順・降順の対象がその範囲選択した列になってしまうものを、 フリガナ列を参照して昇順・降順を行うオートフィルタとしたいという意味です。 基本的なことかもしれませんが、よろしくお願いします。

  • EXCEL

    EXCELで、 (1) 例えばA1に『著作権』、B2、B3、B4にその言葉についての 『説明』が入力されていたとします。  B2~B4 の セルの結合を行うと、  『選択範囲には複数のデータ値があります。  1つのセルとして結合すると選択したセル範囲にある最も左上端にあ るデータのみが保持されます(空白セルは無視されます)』  とコメントが出て  結合したセルには B2に入力した内容しか残らなくなってしまいま す。  こうなると『説明』の部分をすべて打ち直し、または他のセルにうつ してから貼り付け作業を行わなくてはなりません。  なんとか良い方法はありませんか?    (2)またA列には用語を、B列以降はその用語の説明をどんどん入れて  いき、最後にA列のデータ並べ替え(五十音順)を行いたいのです  が、A列の並べ替えをおこなっても、用語説明が数行にわたる為、  B列以降を一緒に並べかえすることができません。 (1)だけでも良いので回答いただければとおもいます。

  • Excelのフィルタについて

    ~で始まるフィルタを掛けたいのですが、例えば A列(数値形式) B列(文字列形式) 112 113 221 222 224 445 551 といったデータがあり、22で始まるデータのみフィルタしたいとします。 数値形式のA列ではフィルタが掛けられないので、 (1)B列を文字列形式に設定 (2)A列をコピー (3)B列に値でコピー この状態で22で始まるデータでフィルタを掛けると、何も表示されません。 ですが、B列の各セルをWクリックしていくと、Wクリックしたセルはフィルタが かかるようになります。 データが大量にある場合は、いちいちWクリックしてられないので、 何か方法はないでしょうか?

  • 重複データの削除、一致するセルのみ

    A列とB列にそれぞれデータがあり、A列内にあるデータ と一致するものがB列内にある場合、B列内のデータ(セル)を 削除する簡単な方法がありましたら教えてください。 例 A列    B列 123    778 456    358     789    456 1011    228 1213    123 B列の「123」と「456」のデータがA列と一致    ↓ A列    B列 123    778 456    358     789     1011    228 1213   B列の「123」と「456」のデータを削除 よろしくお願いします。  

  • マクロで重複データの削除

    過去ログを使っていろいろ試したのですが、うまくいかなかったので助言お願いします。 データ的には B列 C列 AAA 50 AAA 50 BBB 70 BBB 70 BBB 72 CCC 25 のようなデータあります。 これを「AAA」でC列のデータが同じやつはひとつにするということをやりたいのです。 B列 C列 AAA 50 BBB 70 BBB 72 CCC 25 のようになります。 B列第一優先にC列第二で並べ替えをして、過去ログ参照より、下のデータからループしてくというのを試したのですが、全部削除されてしまいます。 しかし、これでは並べ替えの場合によってはCの重複がおかしくなると思うので、B列参照したほうがいいのかな? 別シートに書き出しタイプでないやり方をしたいと思っています。お助けくださいよろしくお願いします。