2024.04.30
【コラム】(財務モデリングの最先端)第35回 財務モデルの計算速度 – 揮発性関数(自動再計算関数)(1)
2021.04.30 連載コラム
本稿では、財務モデルの計算速度に大きな影響を及ぼす揮発性関数の紹介をする。なお、揮発性関数とは英語のVolatile Functionsの直訳であり著者自身意味が伝わり難いと考えるが、マイクロソフトの公式ページにおいて揮発性関数という用語を用いているため、本稿でもそれを踏襲する。
通常、エクセル上のある変更がブック内の各セルに影響を及ぼすか否かを、エクセルが判定した上で、影響があり得る場合にのみ再計算が行われている。ただし、揮発性関数については、エクセル上のいかなる変更がなされた場合でも、必ず再計算が行われるような関数を指す。
例えば、代表的な揮発性関数として、NOWを例に挙げる。数式に=NOW()を入力すると、現在の日時が表示される。当然ながら時間は刻々と変化するため、他のセルが変化した場合や手動で再計算を実行した場合に、当該セルの値が毎回更新されることになる。 一方で、=1+1と入力し結果として2が表示されているセルがあるとする。当該セルについては、時間が経過しようが他のセルの入力数値が変更されようが、当該セルの数式が直接変更されない限り結果は変わりえない。このようなセルについては、エクセルが再計算の対象外と判定する。
以上のように、ある瞬間と次の瞬間では値が異なる可能性があると判定される関数のことを揮発性関数と呼び、再計算のたびに、揮発性関数が含まれているセルをすべての参照先と共に再評価する。従って、揮発性関数を多用すると、再計算にかかる時間が長くなってしまうという仕組みである。
揮発性関数の代表例として以下のようなものがある。
NOW, TODAY, RAND, RANDBETWEEN, INDIRECT
基本的に上記の揮発性関数は、主に計算速度の観点より財務モデルにおいて使用を避けるべきである。ただし、揮発性関数の中でも、その活用性が高いものとしてOFFSET関数や、SUMIF関数といった、筆者も財務モデリング実務において使用頻度の高いものも存在する。
次稿では、財務モデルにおいて揮発性関数を使用する場合の留意点を紹介する。
東京モデリングアソシエイツ株式会社
マネージングディレクター
吉村 翔
*アイキャッチ Photo by Scott Graham on Unsplash
【バックナンバー】
・【コラム】(財務モデリングの最先端)第34回 財務モデルにおける差異分析の手法
・【コラム】(財務モデリングの最先端)第33回 財務モデルにおけるマッピングとは
・【コラム】(財務モデリングの最先端)第32回 Sカーブ理論を用いたCAPEXモデリング②
・【コラム】(財務モデリングの最先端)第31回 Sカーブ理論を用いたCAPEXモデリング①
・【コラム】(財務モデリングの最先端)第30回 投資検討モデルから事業管理モデルへの移行
・【コラム】(財務モデリングの最先端)第29回 財務モデルにおけるフォーマット(2)セルルール編
・【コラム】(財務モデリングの最先端)第28回 財務モデルにおけるフォーマット(1)シートルール編
・【コラム】(財務モデリングの最先端)第27回 YAGNI Principle
・【コラム】(財務モデリングの最先端)第26回 財務モデルにおける「計算の正しさ」とは