フローデータを累計ベースでインポートする場合の留意事項

フォーム

質問

フローデータを累計ベースでインポートする場合の留意事項はありますか。

該当する条件

ここでご説明するのは、シナリオの保証表示形式を「期別」とした上で、フローデータを年度累計ベースでインポートできるフォームを設定する場合の留意事項です。このようなニーズが生じる背景及びこの場合のフォーム設定方法については、以下の関連記事をご覧ください。

留意事項

上記の条件が該当する場合、複数の相対期間(月など)のデータを一括してインポートするようなフォームを作ることをお避け下さい。このようなフォーム設計にすると、第2月以外のフロー勘定には、その期間以前のフロー累計値がさらに累積されてインポートされます。

各月の年度累計値(インポートしたい値)が以下のようであった場合:

    第1月:100
    第2月:210  …第2月の単月値は 110
    第3月:315  …第3月の単月値は 105

これらのデータをインポートすると、フォーム上(及び元帳上)で各月の年度累計値は以下のようになります。

    第1月:100
    第2月:310  …第2月の単月値は 210
    第3月:625  …第3月の単月値は 315

以上から、上記条件が該当する場合、複数期間のデータを一括取り込みするフォームはお避け下さい。一度に1期間のデータを取り込むフォームであれば、このような問題は生じません。

背景説明

累計値がさらに累積される結果になるのは、シナリオの保証表示形式を「期別」としているために、ある月のフロー値を変更すると、その月以降のそのフロー勘定の期末残高(増減科目/#END)の値に波及するからです。

複数期間のデータを一括インポートするフォームを用いると、インポート処理の最初にすべての期間のデータがゼロクリアされます(インポート処理では、実際のインポートにさきがけて、インポート可能なセルの値がクリアされるため)。その後でデータが書き込まれていきますが、書き込み時には同じキーのデータは累積されます。

上述の例でいえば、まず全月のデータがクリアされ、続いて上から順に、まず、第1月の期末残高「100」が書き込まれます。このとき、第2月以降の期末残高も「100」となります。保証表示形式を「期別」としているので、第2月以降の期別値(単月値)をゼロのままとするため、第2月以降の期末残高は「100」となならなければならないからです。次に第2月の期末残高「210」が書き込まれますが、書き込み前の第2月の期末残高は「100」なので、それに「210」が累積されて、「310」となります。以降の月も同様に処理され、上述のように、累計値がさらに累積される結果となります。

以上の動作は個々に見れば仕様通りですし、これらを引き起こす原因となっている仕様(保証表示形式のにもとづく後続期間への波及処理仕様、及び、一回のインポート内でキーが同じデータが累積して取り込まれる仕様)は、それぞれ妥当ですが、このケースにおいては、それらの組み合わせにより、わかりにくい結果が生じます。ご理解の上、ご留意下さい。