Excelで関数による偽空白を削除して有効データだけを詰める方法

Excel

ExcelでCOUNTIF関数などを使ってデータをE列に集めた場合、空欄のセルは関数の影響で見かけ上空白でも「偽空白」として認識され、通常の空白セル削除では消せないことがあります。本記事では、関数による偽空白を除去して有効データだけを詰める方法を解説します。

偽空白とは何か

関数で生成された空白セルは、見た目は空欄でも実際には空文字(””)が入っており、Excelは空白セルとして認識しません。

例えば、=IF(A1>0,A1,””) のような式で空欄を作った場合、セルには””が入っているため、ジャンプや空白行削除では無視されます。

関数を値に変換して空白を削除

最も簡単な方法は、関数の結果を値としてコピーすることです。

手順は以下の通りです:E列を選択→右クリック→コピー→同じ列に右クリック→『値として貼り付け』。これでセル内は空文字ではなく本当に空白になり、通常の空白削除が可能になります。

フィルターを使った空白セルの詰め方

値に変換した後、フィルター機能を使う方法も有効です。E列にフィルターを適用し、空白セルだけを非表示にしてからコピー&貼り付けでデータを詰めます。

具体例として、フィルターで空白を非表示にした状態で別の列にコピーすると、空白を除いた連続したデータ列が作れます。

VBAで偽空白を削除する方法

VBAを使う場合、空文字のセルを検出して削除するマクロを作ることができます。

例えば以下のコードでE列の偽空白を詰めることができます:
Sub RemoveEmptyCells()
Dim rng As Range, cell As Range
Set rng = Range("E1:E" & Cells(Rows.Count, "E").End(xlUp).Row)
For Each cell In rng
If cell.Value = "" Then cell.Delete xlShiftUp
Next cell
End Sub

まとめ

関数で作られた偽空白は、通常の空白セル削除では処理できません。値として貼り付ける方法、フィルターを利用する方法、VBAで削除する方法を使い分けることで、E列の有効データだけを詰めることができます。作業内容やデータ量に応じて最適な方法を選択しましょう。

コメント

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