Excel情報559 セル --不要な計算を減らして Excel を高速化する方法
【テーマ】
通常、数式で範囲内に空白セル、空白行や空白列があると、不要な計算が発生して処理が遅くなることがあります。今回は、その無駄を省き、実データだけを扱える方法をご紹介します。
【方法】
TRIMRANGE関数を使用します。
【参考】
さまざまな関数と組み合わせることで、柔軟に応用することができます。
■ 今回の内容
通常、数式を設定する際、範囲内に空白セル、空白行や空白列が含まれていると、
意図しない計算が発生して処理が遅くなることがあります。
特に大量のデータや定期更新されるリストを扱う場合、この無駄な計算は作業効率に影響します。
そこで今回は、空白セル、空白行や空白列を自動で除外し、
実際にデータが入力されているセルだけを対象にできる関数(TRIMRANGE関数)をご紹介します。
これにより、数式の計算速度を改善し、処理時間も大幅に短縮できます。
※TRIMRANGE関数はMicrosoft 365 でのみ利用可能です。(2026年1月現在)
  ただし、Microsoft 365でも古いバージョンでは対応していないため、ご注意ください。
■ 設定方法
【TRIMRANGE関数】
指定した範囲の空白セル、空白行や空白列を除外し、データが存在する範囲のみ対象にする関数です。
スピル機能を組み合わせると、特に効果を発揮します。
トリム参照は実データだけを配列として返し、
スピル機能はその配列をセル上に自動展開するので、
この2つを組み合わせることで、空白や行数を意識しない数式が実現します。
=TRIMRANGE(範囲(または配列),トリミングする行,トリミングする列)  
トリミングする行(省略可。省略した場合は 「3  先頭と末尾の両方の空白行をトリミング」)
0  なし
1  先頭の空白行をトリミング
2  末尾の空白行をトリミング
3  先頭と末尾の両方の空白行をトリミング
トリミングする列(省略可。省略した場合は 「3  先頭と末尾の両方の空白列をトリミング」)
0  なし
1  先頭の空白列をトリミング
2  末尾の空白列をトリミング
3  先頭と末尾の両方の空白列をトリミング
[トリミングのイメージ]
下記設定は、末尾の空白行(8から10行目)、先頭(A列)と末尾(E列)の空白列がトリミングされます。
=TRIMRANGE(A1:E10,2,3)
数式と組み合わせた例
例. VLOOKUP関数との組み合わせ
商品マスタのデータが追加されることを見越し、範囲を列単位で指定しても、
TRIMRANGE関数を使用することで、データが存在する範囲のみを検索するため、
通常の指定方法よりも処理が速くなります。
=VLOOKUP(E3,TRIMRANGE(B:C),2,FALSE)
■ ご参考までに
上記で挙げた以外にも、様々な関数と組み合わせることで、活用できる幅が広がります。
例えばTAKE関数を組み合わせると、データが入力された先頭行と最終行のデータの取得が可能です。
※TAKE関数は、配列(表)から特定の行・列を取り出せる関数です。Microsoft365のみ使用可(2026年1月現在)
先頭行:
=TAKE(TRIMRANGE(A3:E10000),1)
最終行: =TAKE(TRIMRANGE(A3:E10000),-1)
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます