重複行の削除(Microsoft Excel)
大きなデータテーブルで作業している場合、本質的に重複する情報がテーブルに含まれることは珍しくありません。テーブル内の情報を処理するには、重複していると思われる行を削除して、処理する必要のある情報の量を減らすことができます。
たとえば、各行の最初のセルに部品番号が含まれているとします。最初のセルに重複する部品番号がある行を削除する場合はどうなりますか?このソリューションが必要な場合は、次のマクロが適しています。
Sub DelDupRows() Dim rngSrc As Range Dim NumRows As Integer Dim ThisRow As Integer Dim ThatRow As Integer Dim ThisCol As Integer Dim RightCol As Integer Dim J As Integer, K As Integer Application.ScreenUpdating = False Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address) NumRows = rngSrc.Rows.Count ThisRow = rngSrc.Row ThatRow = ThisRow + NumRows - 1 ThisCol = rngSrc.Column RightCol = ThisCol + rngSrc.Columns.Count - 1 'Start wiping out duplicates For J = ThisRow To (ThatRow - 1) If Cells(J, ThisCol) > "" Then For K = (J + 1) To ThatRow If Cells(J, ThisCol) = Cells(K, ThisCol) Then Cells(K, ThisCol) = "" End If Next K End If Next J 'Remove rows with empty key cells For J = ThatRow To ThisRow Step -1 If Cells(J, ThisCol) = "" Then Range(Cells(J, ThisCol), _ Cells(J, RightCol)).Delete xlShiftUp End If Next J Application.ScreenUpdating = True End Sub
マクロは、呼び出す前に行った選択に対して機能します。したがって、範囲D7:G85から重複する行を削除する必要がある場合は、その範囲を選択してからマクロを実行するだけです。 D7:D85の範囲から重複を削除してから、D列のセルが空白であるD7:G85のすべての行(行ごとに4列)を削除します。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2108)は、Microsoft Excel 97、2000、2002、および2003に適用されます。