OFFSET(揮発性関数)→INDEX(非揮発性)
全バージョンOFFSET の揮発性による再計算を回避。パフォーマンスが向上
💡
結論: INDEX(非揮発性) への移行をおすすめします
OFFSET の揮発性による再計算を回避。パフォーマンスが向上
書き換え前後の比較
✕Before: OFFSET(揮発性関数)
=OFFSET(A1,2,3) -- A1から2行下、3列右のセルを参照 -- 問題点: -- ・揮発性関数のため、常に再計算される -- ・大量の OFFSET があるとファイルが重くなる
✓After: INDEX(非揮発性)
=INDEX(A:D,3,4) -- A列〜D列の3行目、4列目を参照 -- 改善点: -- ・非揮発性のため、必要なときだけ再計算 -- ・パフォーマンスが向上
✓ INDEX(非揮発性) のメリット
✓
揮発性関数(常に再計算)でなくなり、パフォーマンスが向上
✓
数式が変更されたときだけ再計算される
✓
大量の数式がある場合、ファイルの動作が軽くなる
✓
INDEX は Excel の全バージョンで使用可能
⚠️ 注意点
⚠️
OFFSET の高度な使い方(可変範囲)は INDEX で置き換えられない場合がある
⚠️
INDEX は行番号と列番号を指定する必要がある
⚠️
OFFSET の方が直感的な場合もあるため、パフォーマンスとのトレードオフ
バージョン対応状況
| 関数 | Excel 2016 | Excel 2019 | Excel 2021 | Microsoft 365 |
|---|---|---|---|---|
| OFFSET(揮発性関数) | ✓ | ✓ | ✓ | ✓ |
| INDEX(非揮発性) | ✓ | ✓ | ✓ | ✓ |
関連する Q&A
キーワード
OFFSETINDEX揮発性パフォーマンス