Excelで配列内の空白セルや0セルを削除して左詰め・上詰めにするFILTER関数を用いた計算式の構造
Excelで配列内の空白セルや0セルを削除してデータを左詰めや上詰めにする方法について解説します。前回の記事ではTEXTSPLIT関数とTEXTJOIN関数を使って空白セルを削除して詰める計算式をご紹介しました。↓前回の記事↓
類似のケースとして、今回はFILTER関数を使用して空白セルや0セルを削除する計算式の構造を紹介します。
以下に、サンプルデータを示します。このサンプルデータを基にして、空白や0セルを削除して左詰めおよび上詰めにする計算式を説明します。
サンプルデータ【A1:F13】
72 | 46 | 0 | 38 | 75 | |
75 | 57 | 94 | 53 | 19 | 60 |
16 | 72 | 31 | 34 | 76 | |
25 | 26 | 97 | 14 | ||
40 | 24 | 34 | 85 | 97 | |
42 | 39 | 0 | 21 | 50 | 11 |
83 | 80 | 0 | 81 | ||
25 | 20 | 13 | 60 | 18 | 11 |
68 | 64 | 19 | 97 | ||
42 | 48 | ||||
39 | 74 | 49 | 69 | 22 | 39 |
34 | 94 | 27 | 48 | 33 | |
95 | 43 | 52 | 68 | 77 | 87 |
空白セルおよび0セルを削除して左詰めや上詰めにする計算式
式のひな型
配列内の空白セルや0セルを削除して左詰めにするためには、FILTER関数を使用します。FILTER関数を用いることで、配列内の特定の条件に一致する値を抽出し、詰めて表示します。「配列」には同じ範囲を登録します。
=FILTER(配列,配列<>0)
この式は配列の中から値が0でないものを抽出し、スピル形式で出力します。除外されるのは0と空白になります。
左詰めのサンプル
具体例として、1行目のデータを左詰めにする計算式は以下の通りです。
=FILTER(A1:F1, A1:F1<>0)
この計算式をセルH1に入力し、13行目までオートフィルでコピーします。
FILTER(A1:F1, A1:F1<>0)
: セル範囲A1:F1のデータから0でない値を抽出し、左詰めにします。
上詰めのサンプル
A列のデータを空白セルおよび0セルを削除して上詰めにする計算式を示します。
=FILTER(A1:A13, A1:A13<>0)
この計算式をセルA15に入力し、F列までオートフィルでコピーします。
FILTER(A1:A13, A1:A13<>0)
: セル範囲A1:A13のデータから0でない値を抽出し、上詰めにします。
空白セルだけを削除して左詰めや上詰めにする計算式
式のひな型
配列内の空白セルだけを削除して左詰めや上詰めにするためには、FILTER関数の抽出条件で「配列<>””」を使用します。これは「空白でない」を意味します。「配列」には同じ範囲を登録します。
=FILTER(配列,配列<>"")
この式は配列の中から値が空白でないものを抽出し、スピル形式で出力します。
左詰めのサンプル
空白セルだけを削除して左詰めにする場合も、FILTER
関数を使用します。以下に、1行目のデータを空白セルを削除して左詰めにする計算式を示します。
=FILTER(A1:F1, A1:F1<>"")
この計算式をセルH1に入力し、13行目までオートフィルでコピーします。
FILTER(A1:F1, A1:F1<>"")
: セル範囲A1:F1のデータから空白セルを除いた値を抽出し、左詰めにします。
上詰めのサンプル
以下に、A列のデータを空白セルを削除して上詰めにする計算式を示します。
=FILTER(A1:A13, A1:A13<>"")
この計算式をセルA15に入力し、F列までオートフィルでコピーします。
FILTER(A1:A13, A1:A13<>"")
: セル範囲A1:A13のデータから空白セルを除いた値を抽出し、上詰めにします。
コメント