【Excel】空白セルを詰める方法【Office365】

こんな状態のとき、空白詰めたいときあるじゃん、て話

これを詰めるためにわざわざVBA組むのめんどくさいじゃん

Office365のみサポートだが、2パターン紹介

・TEXTJOINで文字列を結合後、分割してセルに展開(スピル)
・TOCOL(TOROWでもOK)で空白を飛ばして展開(スピル)

使用例

①TEXTJOINで文字列を結合後、分割してセルに展開

上の式では以下の工程で空白詰めが成り立っている

・TEXTJOINで”A,B,C,D,E,F”という文字列を生成
・TEXTSPLITにてカンマ区切りの文字列を列方向に分割

一見数式が野暮ったくも見えるが、「何をしてどうなっているか」が数式から読み取れる。

②TOCOL(TOROWでもOK)で空白を飛ばして展開

こちらの方法は非常に記述がシンプル。

左の引数に範囲を選択、隣の引数は「特定の値を無視する」というものだが、
これをTRUEにすることで空白セルを飛ばして表示できるという仕組み。

ただ、「特定の値」として判定されない場合は思い通りに表示できないかもしれない。

まとめ

  • INDEXとROWを使う方法があるが、Office365であれば圧倒的にこの方法が楽。
  • 「スピル」をうまく使うことでVBAでユーザー関数を作ったり、複雑な数式を組む手間が省ける。