「データ範囲の端に空白行・空白列が混じっていて、集計がうまくいかない」──そんな場面、ありませんか?
コピペで持ってきたデータや、フィルターを外したあとに残る余分な空白行は、数式のエラーや集計ミスの原因になります。
手作業で削除するのも面倒ですし、データが増えるたびに繰り返す必要がありますよね。
ExcelのTRIMRANGE関数を使えば、配列やセル範囲の端にある空白行・空白列を数式1つで除去できます。
データが変わっても自動で更新されるので、メンテナンスの手間がなくなりますよ。
この記事では、TRIMRANGE関数の構文・引数・使い方から、実務ユースケース・関連関数との使い分けまで解説します。
TRIMRANGE関数とは?Excelでのバージョン確認
TRIMRANGE関数は、配列またはセル範囲の「端にある空白行・空白列」を除去した配列を返す関数です。
「端」というのは配列の上端・下端・左端・右端のことで、中間にある空白は除去されません。
読み方は「トリムレンジ」です。
“TRIM”(切り取る・除去する)と “RANGE”(範囲)を組み合わせた名前です。
たとえば、A1:C6の範囲に6行のデータがあるけれど、1行目と6行目が空白だとします。=TRIMRANGE(A1:C6) と入力すると、空白の1行目と6行目を除いたA2:C5相当の配列が返されます。
元の範囲に空白が増減しても、数式が自動で調整してくれますよ。
Microsoft 365 / Excel 2024以降のみ使用可能
TRIMRANGE関数は、以下の環境でのみ動作します。
| 環境 | 対応 |
|---|---|
| Microsoft 365(Windows / Mac / Web) | ○ |
| Excel 2024(Windows / Mac) | ○ |
| Excel 2021 | × |
| Excel 2019 / 2016 | × |
スピル(数式の結果が複数セルに自動展開される機能)に対応した環境が必要です。
バージョンが古い場合は使えませんので、事前に確認してみてください。
Excel 2021以前では代替方法が必要
Excel 2021以前では、TRIMRANGE関数は使えません。
FILTER関数(Excel 2019以前では使用不可)やOFFSET+COUNTAの組み合わせで同様の処理が可能です。
ただし数式が複雑になるため、可能ならMicrosoft 365への移行を検討してみてください。
TRIMRANGE関数の書き方(構文と引数)
基本構文
=TRIMRANGE(array, [rows_trim], [cols_trim])
引数は3つで、2番目と3番目は省略できます。
引数の詳細
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| array | 必須 | 空白を除去する配列またはセル参照 |
| rows_trim | 省略可 | 行方向の除去方法。0〜3で指定(デフォルト: 3) |
| cols_trim | 省略可 | 列方向の除去方法。0〜3で指定(デフォルト: 3) |
第1引数 array(必須):空白を除去する対象
arrayには、空白を除去したい配列やセル範囲を指定します。
1次元配列(1行または1列)でも、2次元配列(複数行×複数列)でも使えます。
第2引数 rows_trim(省略可):行の除去方向
rows_trimには、行方向でどの端の空白を除去するかを指定します。
| 値 | 動作 |
|---|---|
| 0 | 行方向の空白を除去しない |
| 1 | 先頭(上端)の空白行のみ除去 |
| 2 | 末尾(下端)の空白行のみ除去 |
| 3 | 先頭と末尾の両方の空白行を除去(デフォルト) |
省略した場合は 3(両端を除去)になります。
第3引数 cols_trim(省略可):列の除去方向
cols_trimには、列方向でどの端の空白を除去するかを指定します。
| 値 | 動作 |
|---|---|
| 0 | 列方向の空白を除去しない |
| 1 | 先頭(左端)の空白列のみ除去 |
| 2 | 末尾(右端)の空白列のみ除去 |
| 3 | 先頭と末尾の両方の空白列を除去(デフォルト) |
省略した場合は 3(両端を除去)になります。
NOTE
rows_trimとcols_trimを両方省略すると、
=TRIMRANGE(array)という最もシンプルな形になります。この場合、上下左右の端の空白行・空白列がすべて除去されます。
基本的な使い方:端の空白を除去する
上下左右すべての端を除去する例
A1:C6の範囲に以下のようなデータがあるとします。
1行目と6行目が空白行、A列がすべて空白列です。
| A列 | B列 | C列 | |
|---|---|---|---|
| 1行 | (空白) | (空白) | (空白) |
| 2行 | (空白) | 商品名 | 価格 |
| 3行 | (空白) | りんご | 150 |
| 4行 | (空白) | みかん | 80 |
| 5行 | (空白) | ぶどう | 300 |
| 6行 | (空白) | (空白) | (空白) |
セルE1に次の数式を入力します。
=TRIMRANGE(A1:C6)
結果として、空白の1行目・6行目・A列が除去され、B2:C5相当のデータが返されます。
| 商品名 | 価格 |
|---|---|
| りんご | 150 |
| みかん | 80 |
| ぶどう | 300 |
元のA1:C6の空白が変わっても、TRIMRANGE関数が自動で調整してくれますよ。
行方向のみ除去する例
列方向の空白は除去せず、行方向だけ除去したい場合は cols_trim=0 を指定します。
=TRIMRANGE(A1:C6, 3, 0)
上下の空白行が除去されますが、左端の空白列(A列)は残ります。
下端のみ除去する例
追記形式のログデータで、下端に余分な空白行が積みあがっている場合などは rows_trim=2 が便利です。
=TRIMRANGE(A1:C100, 2, 0)
A1:C100の範囲のうち、下端の空白行のみ除去します。
上端やA〜C列の方向は変更しません。
実務ユースケース3選
ユースケース①:貼り付けデータの余分な空白行をクリーンアップ
社外システムからコピペしたデータの先頭や末尾に、余分な空白行が入ってしまうことがあります。
A1:D50の範囲に貼り付けたデータがあり、先頭3行と末尾5行が空白だとします。
=TRIMRANGE(A1:D50)
空白行が自動で除去されたクリーンなデータが返されます。
この数式をSUM・COUNT・AVERAGE等と組み合わせることで、余分な空白を気にせず集計できます。
ユースケース②:WRAPROWS/WRAPCOLSと組み合わせて整形精度を上げる
データの端に空白がある状態でWRAPROWSやWRAPCOLSを使うと、空白行・列も折り返し対象に含まれてしまいます。
先にTRIMRANGEで空白を除去しておくと、折り返し後の配列がきれいになります。
=WRAPROWS(TRIMRANGE(A1:A20), 4, "")
A1:A20のうち、先頭・末尾の空白を除去してから4列で折り返します。
WRAPROWSの詳細は ExcelのWRAPROWS関数の使い方 を参照してみてください。
WRAPCOLSの詳細は ExcelのWRAPCOLS関数の使い方 を参照してみてください。
ユースケース③:FILTER関数と組み合わせた空白除去
FILTER関数で条件抽出したあと、結果の先頭・末尾に空白行が残ることがあります。
TRIMRANGEでラップすると、抽出結果の空白を除去できます。
=TRIMRANGE(FILTER(A2:C20, B2:B20="東京"))
B列が「東京」の行を抽出し、結果の端の空白を除去します。
データが変わっても数式が自動で調整されますよ。
関連関数との使い分け
TRIM関数との違い
「TRIM」という名前の関数は別にも存在します。混同しないようにしておきましょう。
| 関数 | 対象 | 動作 |
|---|---|---|
| TRIM(テキスト関数) | 文字列 | 文字列の先頭・末尾・連続スペースを除去 |
| TRIMRANGE | 配列・セル範囲 | 配列の端にある空白行・空白列を除去 |
TRIM関数は文字列のスペースを除去する関数で、配列の構造には影響しません。
TRIMRANGE関数は配列の行・列の端を整形する関数で、文字列のスペースには影響しません。
FILTER関数との違い
FILTERは条件に一致する行だけを抽出し、TRIMRANGEは端の空白行・列を除去します。
「中間の空白行も除去したい」という場合は、TRIMRANGEではなくFILTER関数を使います。
' 空でない行だけを抽出(中間の空白行も含めて除去)
=FILTER(A1:C20, A1:A20<>"")
端だけでなく全体から空白行を取り除きたい場合はFILTER関数の出番です。
エラーの原因と対処法まとめ
TRIMRANGE関数で発生しうるエラーは以下の通りです。
| エラー | 主な原因 | 対処法 |
|---|---|---|
| #VALUE! | rows_trim/cols_trimに0〜3以外の値を指定した | 0〜3の整数を指定する |
| #REF! | スピル先のセルに値が入っている | 出力先の範囲を空にしてから入力し直す |
| 全行・全列が除去される | 対象範囲が全て空白 | 対象範囲にデータが入っているか確認する |
rows_trim / cols_trim の値が不正な場合
rows_trimやcols_trimに0〜3以外の値(例: 4や-1)を指定すると #VALUE! になります。
=TRIMRANGE(A1:C6, 4, 0) ' → #VALUE!(rows_trimは0〜3のみ)
0・1・2・3のいずれかを指定してください。
スピル先にデータがある場合
TRIMRANGE関数はスピルを使って結果を複数セルに展開します。
出力先の範囲に他のデータが入っていると、#REF! エラーになります。
出力先となるセル範囲を空にしてから、数式を入力し直してください。
まとめ:TRIMRANGE関数で配列の端の空白をすっきり除去しよう
この記事の要点を整理します。
| ポイント | 内容 |
|---|---|
| できること | 配列・セル範囲の端にある空白行・空白列を除去 |
| 構文 | =TRIMRANGE(array, [rows_trim], [cols_trim]) |
| 対応環境 | Microsoft 365 / Excel 2024以降のみ |
| rows_trim / cols_trim | 0=除去なし / 1=先頭のみ / 2=末尾のみ / 3=両端(デフォルト) |
| TRIM関数との違い | TRIMは文字列のスペース除去、TRIMRANGEは配列の端の行・列除去 |
TRIMRANGE関数を使えば、コピペデータの余分な空白行・列を数式1つで自動除去できます。
WRAPROWS・WRAPCOLS・FILTERなど他の配列関数と組み合わせると、さらに強力なデータ整形が可能になりますよ。
ぜひ実務で試してみてください。
関連関数
配列操作の関連記事もあわせてどうぞ。
- ExcelのWRAPROWS関数の使い方(1次元配列を行方向に折り返す)
- ExcelのWRAPCOLS関数の使い方(1次元配列を列方向に折り返す)
- ExcelのTOCOL関数の使い方(2次元配列を縦1列に変換)
- ExcelのTOROW関数の使い方(2次元配列を横1行に変換)
- ExcelのSEQUENCE関数の使い方(連番を自動生成)
- ExcelのHSTACK関数の使い方(配列を横方向に結合)
- ExcelのVSTACK関数の使い方(配列を縦方向に結合)
- ExcelのTAKE関数の使い方(先頭・末尾を抽出)
