問題の定式化
空のセルを含むデータを含むセルの範囲があります。
タスクは、空のセルを削除して、情報を含むセルのみを残すことです。
方法 1. ラフで高速
- 元の範囲の選択
- キーを押します F5、次へボタン 特徴 (特別な). 開いたウィンドウで、 空のセル(空白) をクリックし OK.
範囲内のすべての空のセルが選択されます。
- 選択したセルを削除するコマンドをメニューに表示します: 右クリック - セルを削除する (セルを削除) 上向きシフトで。
方法 2: 配列数式
簡単にするために、次を使用して作業範囲に名前を付けましょう 名前管理者 (ネームマネージャー) タブ 式 (数式) または、Excel 2003 以前では、メニュー 挿入 – 名前 – 割り当て (挿入 — 名前 — 定義)
範囲に B3:B10 という名前を付けます 持っている空、範囲 D3:D10 – なし空. 範囲は厳密に同じサイズである必要があり、相互に関連する任意の場所に配置できます。
次に、3 番目の範囲 (DXNUMX) の最初のセルを選択し、次の恐ろしい式を入力します。
=IF(ROW() -ROW(NoEmpty)+1>NOTROWS(YesEmpty)-COUNTBLANK(YesEmpty);””;INDIRECT(ADDRESS(LOWEST((IF(Empty<>””,ROW(Empty);ROW() + ROWS(空がある))); LINE()-ROW(空がない)+1); COLUMN(空がある); 4)))
英語版では次のようになります。
=IF(ROW()-ROW(NoEmpty)+1>ROWS(空)-COUNTBLANK(空),””,INDIRECT(ADDRESS(SMALL((IF(空<>””,ROW(空),ROW() +ROWS(空がある))),ROW()-ROW(空がない)+1),COLUMN(空がある),4)))
また、配列数式として入力する必要があります。つまり、貼り付け後に を押します。 入力します (いつものように)そして Ctrl + Shift + Enter. これで、オートコンプリートを使用して数式をコピーできます (セルの右下隅にある黒い十字をドラッグします)。元の範囲が取得されますが、空のセルはありません。
方法 3. VBA のカスタム関数
範囲から空のセルを削除する手順を頻繁に繰り返す必要があると思われる場合は、空のセルを削除するための独自の関数を標準セットに一度追加し、その後のすべてのケースでそれを使用することをお勧めします。
これを行うには、Visual Basic Editor (Alt + F11)、新しい空のモジュールを挿入します (メニュー インサート – モジュール)、この関数のテキストをそこにコピーします。
Function NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng As Range Dim MaxCells As Long Dim Result() As Variant Dim R As Long Dim C As Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result(1 To MaxCells, 1 To 1) DataRange.Cells の各 Rng If Rng.Value <> vbNullString then N = N + 1 Result(N, 1) ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 then NoBlanks = Application.Transpose(Result) Else NoBlanks = Result End If 終了関数
ファイルを保存し、Visual Basic Editor から Excel に戻すことを忘れないでください。 この関数をこの例で使用するには:
- F3:F10 など、空のセルの十分な範囲を選択します。
- メニューに行く 挿入 – 関数 (挿入 — 関数)またはボタンをクリックしてください 挿入機能 (挿入機能) タブ 式 (数式) 新しいバージョンの Excel では。 カテゴリ内 ユーザー定義 (ユーザー定義の) 私たちの機能を選択してください ノーブランクス.
- 関数の引数としてボイド (B3:B10) でソース範囲を指定し、 Ctrl + Shift + Enter関数を配列数式として入力します。
:
- 単純なマクロを使用して、テーブル内のすべての空の行を一度に削除する
- PLEX アドオンを使用して、ワークシート内のすべての空の行を一度に削除する
- すべての空のセルをすばやく埋める
- マクロとは、VBA でマクロ コードを挿入する場所