「急にまとまったお金が必要になった。定期をいくつか解約しないといけないのだけども、どれを解約すれば損にならないかしら」社会問題ネタ、目次へ
金融機関の窓口での、いかにもありそうな相談である。実際私もしたことがある。しかしながらこれに対する回答を出す仕組みはないみたいだ。ならば自分で作ってみよう。内部の情報系から店にある定期預金の一覧をCSVでダウンロードしておく。顧客コードを指定すると、その人の持っている定期預金一覧が表示され、必要なまとまったお金、の額を入れるとパパパッと計算して、解約対象の定期に印が付き、満期まで持ち続けたときとの利息の差額が出る。
細かいつくりも私らしい。例によってMicrosoft Excelのマクロで作っているのだが、プログラムを立ち上げたとき、ダウンロードしたCSVファイルを探しに行って、前回読み込んだものより新しければ自動的に読込み、そうでなければ取り込み済みのデータをそのまま使う、というかゆいところに手が届くさりげないパフォーマンスアップ。もちろん定期預金明細一覧表示の画面ではお客様の名前は表示されない(正確にはフォントの色が白?だからカーソルを当てると確認できるのよ)という個人情報保護仕様。弱点は明細が25本を超えるくらいから結果を出すのがとても遅くなること。nCrの組み合わせパターンを全部計算するので~これでも不要な計算をしないよう工夫しているのだが?負荷が等比級数的に増大するのだ。定期預金を49本持っているという状態でテストしたところ、組み合わせる定期本数が6本になったところで、メモリ不足で計算不能となった。ちなみにここまでで16,122,225通りの計算を行っている。
日本初のサービスができた!と喜んでいたところ「却下」。理由は銀行がその分損することを前提としたサービスを推すわけにはいかないから。まあ、そりゃそうだろうなあ。じゃあ、そういう相談を受けたときどうするのか?と疑問を呈すると「それは対応できない窓口がおかしい」。
あ、問題の存在は認めながら現場の責任にした。
(49本の定期明細を計算する対象を20本に落とすのは~「これはすぐ満期が来ますから計算対象から外しましょう」~コンピュータの限界をテラーの話術に頼りたいところは私にだってあるけども。)DXへの道のりは遠い、とだけ言っておこう。