配列内の空白セルを削除して左詰め・上詰めにする計算式【1:TEXTJOINとTEXTSPLIT】

Excelで配列内の空白セルを削除して左詰め・上詰めにする計算式の構造【1:TEXTJOINとTEXTSPLIT】

Excelで配列内の空白セルを削除してデータを左詰めや上詰めにする方法について解説します。この方法を使用すると、データの整列が簡単に行えます。今回は、TEXTSPLIT関数TEXTJOIN関数を組み合わせて、空白セルを削除する計算式の構造を紹介します。

以下に、サンプルデータを示します。このサンプルデータを基にして、空白を削除して左詰めおよび上詰めにする計算式を説明します。

サンプルデータ【A1:F13】

724603875
755794531960
1672313476
25269714
4024348597
42390215011
8380081
252013601811
68641997
4248
397449692239
3494274833
954352687787

空白を削除して左詰めにする計算式

配列内の空白を削除して左詰めにするためには、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関数と...

コメント