関数と人
たまにいただく「経営改善計画」策定のシゴト。けっこう好きなので、それなりに楽しんでいます。
企業の実態を理解して、経営者と一緒に改善案をなんとか出しつつ、銀行に支援を要請するといった流れですが、作業のかなりの部分を占めるのが「計数計画」。改善後の財務諸表を作成します。
「PLの作成」→「BSの作成」→「CF計算」→「返済(猶予)の案」と作っていくけど、返済額が変わると「利息の変化(PL)」「負債の変化(BS)」によって「CFが変化」するので、PLとBSはもう一回回すことになります。
Excelのシート間をいくつも横断する関数構造になったりしますが、物理的にはそんなに難しくないし、結構没頭できるので、たまにはよい。
そんな中、一点また勉強。
一旦出した「CF」が変わった後、「利息」と「元金」を再計算して「PL」「BS」に戻すんだけど、「CF」はそれらを参照した関数でてきているから、「利息」「元金」側から参照すると「循環参照」エラーになってしまいます。参照しないと、返済条件が変わった際など、自動でついてこないから面倒。ミスの元にもなるし。
今回はVBAを使って、セル内容を「関数式」から「数値」に変換して使うことにしましたが、そもそも関数ではできないんだっけ?
ということで、「参照したセルには数式が入っているが、結果として表示されている値だけをコピーしたい」「Excelで、関数が入っているセルの結果を、数値として他のセルにコピーするような関数があるのか?」聞いてみました。
結果として「ない」ということでしたが、せっかくなので「ない理由」も教えてもらいました。
かなり詳しい解説だったけど、Excelは「宣言型計算モデル」であり、関数は「読む」機能・人の操作は「書く」機能として設計されているため、(なのでVBAが使われる)というのがまあまあ分かりやすいかも。
Excelとの格闘も、そのうちAIが全てやっちゃうでしょうから、楽しめるのも今のうちだと思って作業が続きます。

