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

エクセルでA列のセルの中身が重複しているときに
その重複のある行を非表示にするにはどうすればいいのでしょうか?

追記していくデータであるので一番下の重複データを残したいです
重複の削除等では下のデータが消されてしまい、フィルタで個別で見る分にはやや数が多いので困っております

A 回答 (3件)

こんばんは!



VBAになりますが一例です。
データは2行目以降にあるとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim i As Long, k As Long, cnt As Long
Dim myCnt As Long, myRng As Range
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row - 1
If WorksheetFunction.CountIf(Range(Cells(2, "A"), Cells(i, "A")), Cells(i, "A")) = 1 Then
myCnt = WorksheetFunction.CountIf(Range("A:A"), Cells(i, "A"))
If myCnt >= 2 Then
If myRng Is Nothing Then
Set myRng = Cells(i, "A")
Else
Set myRng = Union(myRng, Cells(i, "A"))
End If
cnt = 1
For k = i + 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(k, "A") = Cells(i, "A") Then
cnt = cnt + 1
If cnt = myCnt Then Exit For
Set myRng = Union(myRng, Cells(k, "A"))
End If
Next k
End If
End If
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Hidden = True
End If
End Sub 'この行まで//

※ 尚、再表示のコードも必要かと思いますので、↓の3行のコードを同じ画面に追加し
再表示したいときはこちらのマクロを実行してください。

Sub 再表示()
ActiveSheet.Rows.Hidden = False
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

助かりました

1日で専用のマクロまで作っていただけるとは非常にありがたいです。驚きです。凄すぎます…

お礼日時:2015/11/04 08:49

》 重複の削除等では下のデータが消されてしまい…


この性質を次のように逆手に取れませんか?
1.列Aに1列挿入して、上から 1、2、3、…と連続数値を入力
2.全レコードを列Aをキーに[降順]で[並べ替え]
3.重複削除
4.全レコードを列Aをキーに[週順]で[並べ替え]
5.列Aを削除
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2015/11/04 08:46

マクロを使うことになるのでしょうが、当方力不足、、、。


で、条件付き書式での代替え案
添付図参照で
A2:C13セル範囲をA2セルから選択(A2セルがアクティブ)
[Alt]押しつつ[O][D]、条件付き書式
 数式が =COUNTIF($A:$A,$A2)<>COUNTIF($A$2:$A2,$A2)
 書式でパターンを暗くしておく

代替え案2
作業列としてD列、D2セルに
=COUNTIF($A:$A,$A2)=COUNTIF($A$2:$A2,$A2)
下へオートフィル
オートフィルターを掛けて[TRUE]を抽出

ただ、COUNTIFが重い、、、。
「同一列に重複のある行を非表示にするには」の回答画像1
    • good
    • 0
この回答へのお礼

Thank you

ありがとうございます!

お礼日時:2015/11/02 17:42

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