トップ 一覧 検索 ヘルプ RSS ログイン 印刷

月次試算表を作るの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!月次試算表を作る

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

すなわち、

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

という関係が成立する。  

仕訳データからこれを生成する場合、毎月の試算表を算定するには、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を使うメリットがない。