![見出し画像](https://assets.st-note.com/production/uploads/images/36758851/rectangle_large_type_2_bfae9d09f182a3f11675d5c94786cb09.png?width=1200)
経営をシミュレーションするプログラミング
多くのインフラは規模が大きく、数十年から百年近くまで長期間使われます。公共財であっても、民間が運営していても、コストと便益を考えなければいけません。
これらを見積もるために、多くの人は表計算ソフトを使います。バグが生まれる理由のところでも述べた通り、表計算ソフトには多くのヒューマンエラーが含まれていると報告されています。私は次のような理由があると考えています。
【計算式】各セルには、文字列、数値、他のセルを引数とした計算式などが記述されていますが、計算式が入力されたセルは、普段は計算結果が表示され、セル選択時にはじめて計算式が表示されます。この仕様は直観的ですが、要素間の構造がわかりにくい。例えば ”=2*AE62” といったセルの番地を使って参照する場合には、その参照先(AE62)がどういった意味なのかは直ちに判別できません。このため、他人が作成したエクセル書類の複雑な構造を理解するには手間がかかり、修正箇所や誤入力の発見が困難な場合もあります。セルは数値の入出力インタフェースとしては優れていますが、計算式や参照の入力インタフェースとしては不完全だと思います。
【セルの意味】あるセルの値が何を意味するかは、別のセル(普通は左側)に記載するのが一般的です。エクセルにはセルに名前をつける機能もありますが、印刷時に反映されないなどあまり使われていないのではないでしょうか。また、特に横に長い表の場合は、先頭までスクロールしたり、先頭の複数セルをスクロール対象外にするなどの余計な作業が必要となります。
【参照先の移動】セルや行、列などの挿入・削除やコピー&ペーストの際、参照先が自動的に移動します。便利な機能ではあるのですが、意に反して移動されることもあるではないでしょうか。どのように参照先が移動したかの確認作業にも手間がかかります。
【1つの値】あたりまえですが、各セルには1つの値しか設定できません。幅を持たせて計算する際は、別途その数式をくみ上げる必要があり、さらに煩雑になります。
【一覧性】複雑なケースでは、複数のシートで構成されることも多いと思います。一覧性が低く、全体像を把握しにくくなってしまいます。
【セルの選択】数百から数千行の巨大な表の複数セルを選択するときには、スクロールが必要になります。このときに誤選択を避けようと気を遣うなど、不要なストレスが生じ、ヒューマンエラーを誘発しやすくする状況になります。
そこで、これらの問題を解決、または圧倒的に低減するソフトウェアを開発しました。具体的には、数式や値の入力と、計算結果やグラフ等の出力を分離します。また、計算式の演算子(項目の名前)と被演算子(関数など)も別々に書くようにします。各項目の関係と値を記載すれば、自動的に計算してグラフや分析結果を出力します。同じタスクを従来の表計算ソフトと比較して実験してみました。その結果、70%の時間が節約でき、83%のヒューマンエラーを減らすことができるようになりました。
この記事が気に入ったらサポートをしてみませんか?