ExcelのOFFSET関数は、動的な範囲の参照や集計に便利な関数です。特に、名前の定義と組み合わせることで、入力範囲の自動拡張やデータの柔軟な抽出が可能になります。
しかし、いざ数式に利用しようとすると


エラーになっちゃった…
…そんな経験はありませんか?
本記事では、「OFFSET関数を名前の定義に使ったとき、他シートで参照するとエラーになる」という現象について、その原因と解決方法を詳しく解説します。

この記事のゴール
- OFFSET関数で他シート参照時にエラーになる理由がわかる
- そのエラーの回避策を理解できる。
(前提)OFFSET関数について
まずは、OFFSET関数の基本をおさらいしておきましょう。
OFFSET関数の基本構文は以下の通りです。
OFFSET関数
=OFFSET(基準セル, 移動行数, 移動列数, [高さ], [幅])
基準セル: | 検索する値を指定します。 |
移動行数: | 基準セルから何行移動するか(正の値で下方向、負の値で上方向 |
移動列数: | 基準セルから何列移動するか(正の値で右方向、負の値で左方向) |
高さ : | (省略可)返す範囲の行数を指定します。 |
幅 : | (省略可)返す範囲の列数を指定します。 |
たとえば、=OFFSET(C1,2,-1)
は、A1を基準に 2行下、1左のセルを取得します。

OFFSET関数を用いた名前の定義がエラーになる理由
OFFSET関数を使用した名前の定義を別シートで参照した場合、エラー警告文が発生します。
これはExcelの仕様によるもので、名前の定義に使われたOFFSET関数が、参照先のシートと異なるシートから呼び出されたときに正しく動作しないためです。
エラーを解消する方法
このエラーへの対処法はとても簡単で、作成した関数に「シート名!」を付けておくだけです。
具体的な作業内容は以下の記事で解説しています。
まとめ
OFFSET関数は便利ですが、名前の定義と他シート参照を同時に使うとエラーになるという注意点があります。この仕様を理解した上で、ExcelテーブルやINDEX関数などの代替手段を取り入れることで、より快適なExcel環境が整います。

Excelでのデータ管理をもっとスマートに、メンテナンス性の高い設計を一緒に目指していきましょう。