Excelで配列内の空白セルを削除して左詰め・上詰めにする計算式の構造【1:TEXTJOINとTEXTSPLIT】
Excelで配列内の空白セルを削除してデータを左詰めや上詰めにする方法について解説します。この方法を使用すると、データの整列が簡単に行えます。今回は、TEXTSPLIT関数とTEXTJOIN関数を組み合わせて、空白セルを削除する計算式の構造を紹介します。
以下に、サンプルデータを示します。このサンプルデータを基にして、空白を削除して左詰めおよび上詰めにする計算式を説明します。
サンプルデータ【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 |
空白を削除して左詰めにする計算式
配列内の空白を削除して左詰めにするためには、TEXTJOIN関数で空白を除いた文字列を作成し、それをTEXTSPLIT関数で分割します。
=TEXTSPLIT(TEXTJOIN("区切り文字",TRUE,配列),"区切り文字")
区切り文字を「_」とすると以下の式になります。
=TEXTSPLIT(TEXTJOIN("_",TRUE,配列),"_")
具体例として、1行目のデータ(A1:F1)を左詰めにする計算式は以下の通りです。区切り文字は「_」として作式をします。
=TEXTSPLIT(TEXTJOIN("_", TRUE, A1:F1), "_")
この計算式をセルH1に入力し、13行目までオートフィルでコピーした図は下記のようになります。
上記の計算式の説明……
TEXTJOIN("_", TRUE, A1:F1)
: セル範囲A1:F1のデータをアンダースコアで結合し、空白セルを無視します。TEXTSPLIT(TEXTJOIN("_", TRUE, A1:F1), "_")
: 結合した文字列をアンダースコアで分割し、空白セルを除いた新しい配列を作成します。
空白を削除して上詰めにする計算式
次に、配列内の空白を削除して上詰めにする方法を説明します。縦方向に空白を削除して詰める場合は、TEXTSPLIT関数の第3引数に区切り文字を指定します。
=TEXTSPLIT(TEXTJOIN("区切り文字",TRUE,配列),,"区切り文字")
区切り文字を「_」とすると以下の式になります。
=TEXTSPLIT(TEXTJOIN("_",TRUE,配列),,"_")
具体例として、A列のデータを上詰めにする計算式は以下の通りです。
=TEXTSPLIT(TEXTJOIN("_", TRUE, A1:A13), , "_")
この計算式をセルA15に入力し、F列までオートフィルでコピーした図は下記のようになります。
上記の計算式の説明……
TEXTJOIN("_", TRUE, A1:A13)
: セル範囲A1:A13のデータをアンダースコアで結合し、空白セルを無視します。TEXTSPLIT(TEXTJOIN("_", TRUE, A1:A13), , "_")
: 結合した文字列をアンダースコアで分割し、空白セルを除いた新しい配列を縦方向に作成します。
次の記事:空白セルや0セルを削除して詰める計算式【2:FILTER関数】
同様のことはFILTER関数でも処理可能です。次の記事ではFILTER関数を用いた空白セルの詰め処理を解説します。
配列内の空白セルや0セルを削除して左詰め・上詰めにする計算式【2:FILTER関数】
Excelで配列内の空白セルや0セルを削除して左詰め・上詰めにするFILTER関数を用いた計算式の構造 Excelで配列内の空白セルや0セルを削除してデータを左詰めや上詰めにする方法について解説します。前回の記事ではTEXTSPLIT関数と...
コメント