ExcelのTRIMRANGE関数の使い方|配列の端の空白を除去する

スポンサーリンク

「データ範囲の端に空白行・空白列が混じっていて、集計がうまくいかない」──そんな場面、ありませんか?

コピペで持ってきたデータや、フィルターを外したあとに残る余分な空白行は、数式のエラーや集計ミスの原因になります。
手作業で削除するのも面倒ですし、データが増えるたびに繰り返す必要がありますよね。

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_trim0=除去なし / 1=先頭のみ / 2=末尾のみ / 3=両端(デフォルト)
TRIM関数との違いTRIMは文字列のスペース除去、TRIMRANGEは配列の端の行・列除去

TRIMRANGE関数を使えば、コピペデータの余分な空白行・列を数式1つで自動除去できます。
WRAPROWS・WRAPCOLS・FILTERなど他の配列関数と組み合わせると、さらに強力なデータ整形が可能になりますよ。

ぜひ実務で試してみてください。

関連関数

配列操作の関連記事もあわせてどうぞ。

タイトルとURLをコピーしました