エクセルで重複するデータを非表示にする方法は、[データ]→[フィルタ]→[フィルタオプションの設定]を選択し、[重複するレコードは無視する]にチェックを入れればできますが、デフォルトでは重複行の最初の行だけを表示し、残りの重複行を非表示にしてしまいます。
最初の重複行ではなく最後の重複行だけを残し、他の行を非表示にしたいのですが方法がわかりません。
ちなみに上記の[重複するレコードは無視する]にチェックするまでの流れをマクロに記録させ、マクロの編集をクリックすると下記のような記述になっていました。
Columns("A:A").Select
Range("A1:A100").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
このソースのどの部分を変更すれば、1番最後の重複行だけを残し他の行を非表示にすることが可能になるのか教えてください。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
フィルタの設定には無いようです
シンプルに
Sub test()
Dim i, ii As Integer
For i = Range("a65536").End(xlUp).Row To 2 Step -1
For ii = i - 1 To 1 Step -1
If Cells(i, 1).Value = Cells(ii, 1).Value Then
Rows(Cells(ii, 1).Row).EntireRow.Hidden = True
End If
Next ii
Next i
End Sub
A列の重複を対象にしています
最終行から比較していく方法です
回答していただきありがとうございました。
最終的にこの方法を参考にした結果、問題を解決することができました。
結構悩んでいましたので助かりました。
No.2
- 回答日時:
フィルタオプションの設定のマクロの記録の延長でなく、
別の考えに基づいてコードを作らないとダメでしょう。
ーーーー
1つの方法
行番号順の降順ソートして、重複を非表示とする。
Sub test01()
d = Range("A65536").End(xlUp).Row
MsgBox d
S = "H"
Range(S & 1) = 1
Range(S & "1:" & S & d).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1
Range("A1:" & S & d).Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range(S & 1), Order2:=xlDescending
m = Cells(1, "A")
For i = 2 To d
MsgBox m & " " & Cells(i, "A")
If Cells(i, "A") = m Then
Rows(i).EntireRow.Hidden = True
Else
End If
m = Cells(i, "A")
Next i
End Sub
ーーー
別の考えで(こちらのほうがソートしたり、行番号を作業列に持たないだけ、ベターか)、
自分の行より下行で、自分と同じ値の行の件数が1になったとき(自分が最後を意味する)だけ残す。
Sub test02()
d = Range("A65536").End(xlUp).Row
For i = 1 To d
x = Cells(i, "A")
If Application.WorksheetFunction.CountIf(Range("A" & i & ":A1000"), x) = 1 Then
Else
Rows(i).EntireRow.Hidden = True
End If
Next i
End Sub
上記はデータが1000行までと仮定したコード。A1000を適宜増減のこと。
ーーーー
例データ
A列 B列
a1
a2
a3
f4
d5
d6
s7
結果
a3
f4
d6
s7
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) エクセルで重複データを行ごとに抽出したい 4 2022/12/05 08:18
- Excel(エクセル) Excel vba 重複行削除 4 2022/06/02 06:52
- Excel(エクセル) エクセルでフィルタ後の列の重複を回避したい 6 2022/10/13 12:50
- その他(クラウドサービス・オンラインストレージ) Googleスプレッドシートについて 1 2022/05/11 15:26
- Excel(エクセル) Excel フィルタ後のコピー貼付けと可視セルの関係について 3 2023/02/07 16:42
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
はがきについて。
-
エクセル 文字を増やしたい。
-
セルの内容表示が邪魔になる
-
Microsoft365に変えたのですが...
-
エクセルの計算
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
Excel ピボットテーブルで日付...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
Excelのチェックボックスの使い...
-
エクセル 白黒印刷で白線を印刷...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの条件付き書式につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報