関数 EXCEL&VBA

エクセルで空白以外のセルを抽出する方法|横(行)方向

今回は、横方向のフィルターです。
エクセルで 空白以外のセルを抽出するときに、オートフィルターはとても便利な機能です。

でも、方向)では使えなくて困ったことはありませんか?

そこで、関数を使った『空白以外のセルを抽出する方法』をピックアップします。
関数が苦手な方も、この記事のサンプルをマネして必要な個所を変更すればすぐに使えます。
別シートに表示することも可能な便利なテクニックです。



行の中の空白以外のセルを抽出する

冒頭で述べたとおり、オートフィルターは縦(列)方向にしか使えません。

横方向のフィルター(空白以外のセルを抽出)をかけるために、下のサンプル表をつかって説明します。


▲1行目には空白セルが紛れ込んでいる(黄色セル)

1行目の空白以外のセルの値を、3行目に抽出します。

INDEX関数をつかう

セルA3には以下の数式が入ります;

{INDEX (1:1, SMALL (IF (1:1 <> "", COLUMN (1:1)), COLUMN () )) }

※わかりやすく説明するため、まだ完成形の数式ではありません
※赤い部分{ }は配列関数を表しています(解説はのちほど)

関数が苦手な方は、あまり難しく考える必要はなく下に表示する【完成形】の関数をマネしていただければよいのですが、数式の概要を説明します。

1. 1行目で空白以外の列番号を出す → 2, 4, 5
2. 列番号を小さい順(セルの列番号を利用)で取り出す
3. 取り出した列番号をINDEX関数の○列部分に引き渡し、指定された値を返す
→ INDEX(1:1,2)、INDEX(1:1,4)、INDEX(1:1,5) のように

今回は 配列関数をつかっているので、数式を入力した最後には 必ずCTRL+SHIFT+ENTERキーを押します

すると、セルA3は以下のような表示になります。

さらに、セルA3のフィルハンドルを右方向にドラッグして、数式をセルG3までコピーします。
すると3行目のセルの表示は以下のようになります。


▲空白以外のセルの値が抽出された!(左詰めになった)

しかし、セルE3からG3にかけてエラー表示になってしまいました。
このエラーを回避するために、IFERRORを数式に加えて数式を完成形にします。

【完成形】

{=IFERROR (INDEX (1:1, SMALL (IF (1:1 <> "", COLUMN (1:1)), COLUMN ()) ), "") }

数式入力の最後には 必ずCTRL+SHIFT+ENTERキーを押します


▲エラーが消えた

複数行の表であっても理屈は同じです。
数式の「1:1」と表示されている部分が「1行目」を指しているので、2行目に適用するのならば「2:2」となります。
※数式を下にコピーするだけでよいのですが、、、

下のような表の編集、空白以外のセルを抽出するのもカンタンです。

この数式の便利なところは、別シートに表示させることが可能ということ。
このアイディアをきっかけに色々アレンジしてみてください。

以上で『エクセルで空白以外のセルを抽出する方法|横(行)方向』は終了。
その他の関連記事と合わせて仕事や趣味に役立ててください。

関連記事・広告






-関数, EXCEL&VBA
-, ,