関数・メソッド

重複するデータを非表示にする【AdvancedFilterメソッド】【ExcelVBA】

重複しているデータを省きたい

AdvancedFilterメソッドには重複したデータを省いて抽出する機能があります。
例えば、名前がずらりと並んでいるリストから同じ名前を非表示にして見やすくすることができます。

基本の形
Range(“抽出範囲”). AdvancedFilter  Action:=xlFilterInPlace,  Unique:=True

複数列で重複するデータを非表示にする場合は、抽出範囲を他列にまたがって指定します。
ただしデータが隣接していなければならないので、表の作成を工夫する必要があります。

 

重複するデータを非表示にするサンプルコード

以下をA1セルに貼り付けてください。

名前個数
A10
B20
C50
A30
A10
B20
Public Sub Sample()
  'A列の重複するデータを非表示にして抽出する
  ActiveSheet.Range("A1:A7").AdvancedFilter Action:=xlFilterInPlace, Unique:=True

  '隠れているデータを表示する
  ActiveSheet.ShowAllData

  'A列とB列の重複するデータを非表示にして
  '抽出した結果をD1セルにコピーする
  ActiveSheet.Range("A1:B7").AdvancedFilter Action:=xlFilterCopy, _
                              CopyToRange:=Range("D1"), _
                              Unique:=True

End Sub

 

注意点

  • 複数列を選択した場合、全てのデータが一致している行を非表示にします。
    ※上記を参考にすると、2行目と6行目がA,B共に一致しているので6行目が非表示になります。
  • 抽出範囲に見出し行(先頭行)を含ませることを忘れずに。

 

関連記事

 

コメント

タイトルとURLをコピーしました