SUMIF、OFFSET、INDIRECTを使いすぎると死ぬ
【1. 問題の所在〜揮発性関数なるもの〜】
Excelの関数には2種類あることをご存知だろうか?
揮発性関数と、非揮発性関数である。
揮発性関数というのは、
「引数 (ある場合) が変更されていない場合でも、値が 1 つの時点から次の時点まで同じであるとは見なせない関数」である。
揮発性関数を使うと、Excelが再計算を行う頻度と範囲が爆増する。
なので、揮発性関数を1つのファイルに登場させすぎると、Excelを開くのに5分とか10分とかかる。
【2. 揮発性関数の例】
全部ではないが、よく使う揮発性関数を以下に示す。
NOW
TODAY
OFFSET
INDIRECT
CELL
SUMIF
特に、SUMIF、OFFSET、INDIRECTあたりは、
使い勝手もいいし、意識していないと使いすぎる危険が高い。
【3. 対処法】
正直、揮発性関数なるものがある、と知っていれば大丈夫だとは思う。
NOWとかTODAYは、そんなに使う場面多くないと思うから大丈夫と信じたい。
とはいえ、関数の中に組み込むのではなく、別セルであらかじめ求めておく(=外出ししておく)癖をつけておくとよい。知らんけど。
SUMIFは、どうしても数が多くなる場合はピボットで代用できないかとか考えてみればいいのではないだろうか。知らんけど。
OFFSETとかINDIRECTは、、、むずい。
他の方法では代用しにくい。
頑張ろう。
この記事が気に入ったらサポートをしてみませんか?