バリーは、数千行のデータを含む大きなワークシートを持っています。

列Bには日付が含まれており、列Bの日付が特定の締め切り日より前のすべての行を削除する必要があります。バリーは、非常に多くのデータに対してこれを行う最も簡単な方法について疑問に思います。

これはかなり簡単に実行できます。使用するアプローチは、実行する必要のある頻度とデータの操作方法によって異なります。データの順序を気にしない場合、最も簡単な方法は、私が「並べ替えと削除」方法と呼ぶ方法です。

。セルB2を選択します。 (これは、行1にヘッダーが含まれているため、B2がデータ行の最初の日付であると想定しています。)

。リボンの[データ]タブを表示します。

。 [古いものから新しいものに並べ替え]ツールをクリックします。 Excelは、列Bの日付に従ってデータを並べ替え、行2の日付が最も古いものです。

。カットオフより前の日付を含む行を選択して削除します。

これは、そのタスクをたまに実行する必要があるだけで、データの行が並べ替えられてもかまわない場合に最適です。並べ替えが問題になる場合は、データに列を追加し、その列に1からデータの行数までの値を入力することをお勧めします。その後、「並べ替えと削除」メソッドを実行できますが、その後、追加した列の値に基づいてデータを再利用します。

もちろん、「フィルターと削除」メソッドを使用することもできます。これにより、ヘルパー列を必要とせずにデータが元の順序のままになります。

。セルB2を選択します。 (これは、行1にヘッダーが含まれているため、B2がデータ行の最初の日付であると想定しています。)

。 Ctrl + Shift + Lを押します。 Excelはデータにオートフィルターを適用します。 (行1のヘッダーの横にある小さなドロップダウン矢印が表示されるはずです。)

。セルB1の日付ヘッダーの横にあるドロップダウン矢印をクリックします。 Excelには、いくつかの並べ替えとフィルタリングのオプションが表示されます。

。 [日付フィルター]オプションにマウスポインターを合わせます。 Excelにはさらに多くのオプションが表示されます。

。 [前]オプションを選択します。 Excelに[カスタムオートフィルター]ダイアログボックスが表示されます。

。 [以前]の右側のボックスで、締め切り日の1日後の日付を指定します。

。 [OK]をクリックします。 Excelはフィルターを適用し、カットオフ日以前の行のみを表示できます。

。行1ではなく、すべての行を選択します(これは、行1にヘッダーが含まれているためです。)

。リボンの[ホーム]タブを表示します。

。削除ツールをクリックします。 Excelは、選択されたすべての行を削除します。

。リボンの[データ]タブを表示します。

。フィルタツールをクリックして、オートフィルタを削除します。

行を頻繁に削除するタスクを実行する必要がある場合は、マクロを使用する便利さに勝るものはありません。次のマクロは、カットオフ日付をセルK1に配置したことを前提としています。この日付を取得してから、データの各行を調べ、この締め切り日より前の行を削除します。

Sub DeleteRowsBeforeCutoff()

Dim LastRow As Integer     Dim J As Integer

Application.ScreenUpdating = False     LastRow = Cells(Rows.Count, 2).End(xlUp).Row     For J = LastRow To 1 Step -1         If Cells(J, 2) < [K1] Then             Cells(J, 2).EntireRow.Delete         End If     Next J     Application.ScreenUpdating = True End Sub

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(1566)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。