!諸口仕訳への対応 借方貸方の対応が1:1ないしは1:N(またはN:1)になっていれば仕訳を行列で表現できる。 しかし、M:Nになっているときには、何らかのみなしを置かなければ行列の形にすることはできない。 すなわち、 経費 100 未払金 66 仮払消費税 10 現金 44 のような仕訳が発生した場合の対応は考慮が必要である。 !債権/債務と一旦通して現金決済したと考える 経費 100 未払金 100 仮払消費税 10 現金 0 未払金 44 現金 44 つまり差分としての仕訳を付加してやることと同じ。 未払金 44 未払金 44 この方法の欠点は直接現金で支払ったという情報が仕訳から消えるので、目的によっては日付や取引番号等でそれを補完することになる。 !取引自体が決済条件にそって生じたと考える 経費 60 未払金 66 仮払消費税 6 経費 40 現金 44 仮払消費税 4 この方法の欠点は、元は一つの取引であっても決済条件が異なる2つの取引として捉えられる点にある。 つまりこれも取引番号や日付によって補完する必要が出る。 !機械的に分解する方法は以下のようにできる。 > X <- matrix(1:8, ncol = 2) > X [,1] [,2] [1,] 1 5 [2,] 2 6 [3,] 3 7 [4,] 4 8 > addmargins(X) Sum 1 5 6 2 6 8 3 7 10 4 8 12 Sum 10 26 36 > addmargins(rowSums(X) %*% t(colSums(X)) / sum(X)) Sum 1.666667 4.333333 6 2.222222 5.777778 8 2.777778 7.222222 10 3.333333 8.666667 12 Sum 10.000000 26.000000 36 上では、行/列がそれぞれ借方貸方の科目に対応し、行の合計が借方、列の合計が貸方を表すと考える(当然に通じは一致している)。 借方貸方の各科目がそれぞれ相手側の貸方借方の各科目に同じ割合で対応するというみなしを置いている。 元のX(実際は不明)から作成された各行/各列の合計からXの要素を推定したものを比較すると、そのものズバリではないがある程度近い値が推計できる。 :実例: > addmargins(c(100,10) %*% t(c(66, 44)) / 110) Sum 60 40 100 6 4 10 Sum 66 44 110 つまり上の例の双方が合わさったものになっている。 経費 60 未払金 60 仮払消費税 6 未払金 6 経費 40 現金 40 仮払消費税 4 現金 4