Excel:特定の列のセルが空白の場合、行を削除しますか?


23

私はExcelの完全な初心者ですので、これが簡単なことであればすみません。私は多くのオプションを調べてきましたが、必要なものが見つかりませんでした。

基本的に、列Cに値が含まれていない行をすべて削除したいのですが、どうすればよいでしょうか?

私はこれを5000以上の製品で今手動で行っていますが、それは私を狂気にさせています。


2
VBAソリューションを備えたStack OverFlowで質問がスーパーユーザーに移行されたのはなぜですか?
brettdj

回答:


31

セルが本当に空白の場合、これを非常に迅速に行うことができます SpecialCells

マニュアル

  • 列Cを選択
  • を押しF5、次にSpecial
  • をチェックしてBlanksからOK(下の写真のこのステップを参照)
  • 現在選択されている行を削除します(たとえば、選択で右クリック> セルを削除... > 行全体またはリボン経由(2番目のスクリーンショットを参照)

VBA

Sub QuickCull()
    On Error Resume Next
    Columns("C").SpecialCells(xlBlanks).EntireRow.Delete
End Sub

Go To Special-> Blanksメニューを示すスクリーンショット リボンを使用して選択範囲の行全体を削除する方法を示すスクリーンショット


8

これは簡単な手動の方法です

  1. Auto Filterシートに適用する
  2. Cブランクでフィルター
  3. 表示されているすべての行を選択します
  4. 行を削除
  5. フィルターを削除

このプロセスは、必要に応じてVBAで自動化できます。マクロレコーダーを実行して開始してみてください


シンプルでありながら効果的。驚異の仕事!
Tiana987642

2

他のセルに他の数式の束がないと仮定した最も簡単なことは、列Cですべてを並べ替えてから、列Cに空白があるすべての行を削除することです(ソート関数は空白の値を入れますファイルの上部の列Cの場合)。

要約すれば:

  • 「1」とマークされたセルの上の「A」とマークされたセルの左側にある折り畳まれた紙のセルをクリックします(すべてを強調表示するには)
  • [データ]をクリックして、並べ替えます
  • 列Cでソートし、最小値を最初にする
  • 列Cの値を持つ最初の行が表示されるまで行をハイライトし、ハイライトしたものをすべて削除します

0

これは動作するはずです。

Columns("C:C").Select
Set rngRange = Selection.CurrentRegion
lngNumRows = rngRange.Rows.Count
lngFirstRow = rngRange.Row
lngLastRow = lngFirstRow + lngNumRows - 1
lngCompareColumn = ActiveCell.Column
For lngCurrentRow = lngLastRow To lngFirstRow Step -1
If (Cells(lngCurrentRow, lngCompareColumn).Text = "") Then _
Rows(lngCurrentRow).Delete
Next lngCurrentRow

-1

このコードをシートモジュールに配置できます(マウスの右ボタンで[シート]タブをクリックし、[コードの表示]を選択します)。

Sub Delete_Blank_Rows()


'Deletes the entire row within the selection if the ENTIRE row contains no data.

'We use Long in case they have over 32,767 rows selected.

Dim i As Long
Dim LastRow As Integer

'We turn off calculation and screenupdating to speed up the macro.

 With Application
     .Calculation = xlCalculationManual
     .ScreenUpdating = False

     'Reduce the work on the calc and define the range

     LastRow = Range("A" & Rows.Count).End(xlUp).Row
     Range("A2:A" & LastRow).Select

     'We work backwards because we are deleting rows.

     For i = Selection.Rows.Count To 1 Step -1
          If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
              Selection.Rows(i).EntireRow.Delete
          End If
     Next i

    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With

End Sub

1
これにより、行全体が空白の行が削除されますか?-する場合、@ drnewmanの回答に似ています。特定の列のセルが空白の場合、行は削除されます。
ダビデンコ

スーパーユーザーへようこそ!質問を注意深く読んでください。あなたの答えは元の質問には答えませ
DavidPostill
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.