月次試算表を作る

月次試算表を作る

月次試算表は仕訳の月別合計のみならず、前月末の勘定残高を繰り越したものを加え、翌月に渡してやる必要がある。

すなわち、

当月末試算表 = 前月末試査表 + 当月仕訳合計

という関係が成立する。

仕訳データからこれを生成する場合、毎月の試算表を算定するには、3つの方法がある。

いずれも、仕訳を月単位で累積したもの(月次合計)を用意し、行に科目、列に月を取る。

科目 前期末 4月 5月 6月 …… 3月
現金 xxx xxx xxx xxx ・・・・・・ xxx
預金 xxx xxx xxx xxx ・・・・・・ xxx
・・・ xxx xxx xxx xxx ・・・・・・ xxx
収益 xxx xxx xxx xxx ・・・・・・ xxx

以上をtbと置くと、

  • 方法1 月次合計積し、その累積和を求める方法
  • 方法2 月次の累積仕訳を行列化して右上三角行列を右からかける
  • 方法3 forループを回す

方法1

tb = data.matrix(tb)
apply(tb[, c(-1,-2)] , 1, cumsum) %>% t()

data.matrix()は行列を作る。as.matrix()を使うと、数字が文字列になってしまう。

c(-1, -2)は行列のうち、最初の2列は文字列なので除外する。

1は行を表し、2は列を表す。すなわちcumsum()関数を1単位に適用するには1を使う。

以上の計算結果は、縦に並べられるため、元の横に戻すために転置するのが、t()

方法2

tb[, c(-1, -2)] %*% upper.tri(matrix(1,13,13), diag = T)

tb[]の部分は方法1と同様。

%*%は行列の積を求める演算。

upper.tri()は、右上三角行列を、13×13で生成する。12ではなく13であるのは期首の数字が毎月の数字に加わるため。

方法3

面倒なだけでRを使うメリットがない。