ライトブログ

どれかキーを押すと,続行します.

真の値を求めて その2

やっと更新できる環境に戻ってきました。 実は、4日から自動車免許の取得のために、教習所に合宿に行っていました。 昨日、免許センターで行う学科試験にも合格し、免許証の交付を受け、これから ドライバーとして車社会に出ていくことになります。

この間、ブログを更新する余裕がなかったので、休止とさせていただきました。 ここから、復帰したいと思っています。

さて、復帰後最初の記事は、続編を書いていないキャッシュフロー計算書作成の 話から。

ここからは、どうやって作っていったのかについて話していこう。 直接法によるキャッシュフロー計算書作成は、その1でも述べたとおり、 収入と支出で計算するってことだ。間接法のように、利益からキャッシュに影響 しない収益や費用を逐一除いていくわけではない。

ここで1つ、とっても重要なことを書いておく。 それは、直接法のキャッシュフロー計算書と一言にいっても、それが表示方法を 言っているのか、作成方法を言っているのかがわからないことだ。 どういうことかと言うと、「直接法」には2つあるってことだ。 まず、表示方法が直接法のキャッシュフロー計算書は、出来上がった計算書 の営業CFの表示方法が直接法であることを示している。すなわち、作成方法が 間接法の可能性があるってことだ。

そして、作成方法が直接法のキャッシュフロー計算書は、出来上がった計算書の 営業CFの表示方法は直接法であり、なおかつ作成方法も直接法であるのだ。

表示が直接なのに、作成が間接ってどういうことだと思うかもしれないが、 その答えは、それぞれの方法の意味を捉えるとよくわかる。

この表は、それぞれの表示方法と作成方法でどのような差が生まれるのかを 示した図だ。一般的に普及しているのが、右下の間接法である。 赤字、青字で示しているのは、共通点である。 作成方法における直接法と間接法の違いは、直接法が収支を科目別に分ける のに対し、間接法がB/SとP/Lより作成するという点にある。 表示方法における直接法と間接法の違いは、直接法が決められた科目で 表示するのに対し、間接法では変動要因となった科目を元に表示する という点である。

今回は、作成法が直接法であり、表示が直接法であるキャッシュフロー計算書を 作成していく。

例として、4月の取引データから4月1日~4月30日までのキャッシュフロー 計算書を作成することにしよう。

まず、キャッシュの対象範囲となっている勘定科目の総勘定元帳のすべての 取引データを1つにまとめる。 私の場合、現金、当座預金、受取商品券、みずほ預金、郵便普通預金の 5つの科目が該当する。これらの科目の取引データすべてを、1つのファイルに まとめる。

こんな感じだろうか。

そして、この科目別・借方、貸方別になっている総勘定元帳のデータを、 集計しやすいように、データベース表形式に直していく。 写真は現金勘定のみを集計した結果。

B列に科目名、C列に月、D列に日、E列に摘要(相手科目)、F列に借貸 (前期繰越は済、借方(収入)は1、貸方(支出)は2を割り当て)、G列に金額 となっている。ここをミスすると、正しい額が出ないので注意。 この処理を、すべての科目において実行する。

完成された表を見ていると、主に2つの大きな問題が見えてくる。 1つは、諸口がいたるところにあることだ。これでは、相手科目が何なのか (どこに支出したのか、どこから収入があったのか)が分からない。 2つ目は、キャッシュ内取引があることだ。当座預金から現金に振り替えるなど、 キャッシュ同士のやり取りも、このデータの中に入ってしまっている。 これがあると、取引総額が実態よりも膨らんでしまうことになるので、除かな ければならない。 まあ、前期繰越行も除かないといけないけど、数行消すだけで良いので、 別に大きな問題ではないだろう。

まず、諸口の処理からやっていこう。これが一番時間がかかる。 処理なんていっても、その取引が発生した日の仕訳を仕訳帳で見つけて、 諸口を科目別に置き換えるという何ともアナログで非効率なことをするだけだ。

例えば、現金の4月10日の記入に、諸口と書かれた448円の取引がある。 この情報を元に、仕訳帳を開いて、該当する取引を探す。 これだ。

どうやらこのときは調子が悪くて、マスクを購入していたようだ。 最近も暑いですから体調には気をつけましょうねw

ここから、諸口448円の内訳は、消耗品258円、食費190円ということが分かった。 この分解されたデータを、諸口行の代わりに代入していくのだ。 行が足らないときは、科目、日付の整合性が取れる位置に行を挿入する。 (諸口があったところの下に行を入れる) この処理をすべての諸口取引に対して行うと、以下のようになる。

諸口がなくなったら、2つ目の問題、キャッシュ内取引の相殺を行う。 これもまた、逐一やっていく・・・ってこともできるのだが、無駄なので、 効率よくやる方法を書く。 H列に、「内部取引」という列を設ける。さらに、データベースフィールドとは ちょっと離れた位置(M列とか)に、新しい表を作成する。 今回は、M4~N8セルを使用する。 表には、キャッシュとして扱う科目名と、それぞれの行の右の列に1を入れておく。

そして、データベースの最初の行に、 以下のような式を入れる。 今回の場合、H3セルから始まる。

  =IF(ISERROR(VLOOKUP(E3,$M$4:$N$8,2,FALSE))=TRUE, 0,VLOOKUP(E3,$M$4:$N$8,2,FALSE))

この式は、VLOOKUPで参照したE列の摘要(相手科目)が、先ほど作成した 表の中にあるかどうかを見て、あれば、検索範囲の2列目の1をセルに表示 するということを行っている。しかし、そのままでは、この表に該当しない科目 (非キャッシュ科目)は、#N/Aエラーとなってしまい、この後の処理に悪影響 が出てしまう。そのために、ISERROR関数で、#N/Aエラーになるかどうかを 確かめ、エラーになる場合は、0という数字を入れ、エラーにならないときは、 もう一度VLOOKUPを実行するということを行っている。

このとき、エラーであれば、内部取引ではないことを示し、エラー でなければ、内部取引だということになる。 この式を、データベースの最終行までオートフィルする。 すると、以下のようになる。

次に、内部取引列の各行に入っている0と1の値を、関数による計算結果では なく、直接打ち込んだように値だけに直す処理を行う。 H3~最終行(今回の場合はH51)を選択し、コピー。 右クリックし、「形式を選択して貼り付け」をクリック。 貼り付け方法を、「値」にしてOKを押すと、関数が消え、一つ一つ 入力していったかのような形式になる。

こうすると、M、N列に入れた表は参照されず、いらなくなるので、 列の削除をする。

そして、並べ替えの処理をする。 データベースすべてを選択し、「データ」タブの「並べ替え」をクリック。 設定は以下のようにする。

要は、内部取引の行をまとめ、一気に削除しようってことだ。 OKを押すと、このように。

内部取引の行が上にまとまってくれたので、これらの行はすべて削除する。 同時に、前期繰越(貸借列が「済」のやつ)も削除しておこう。 データが整理されると、以下のようになる。

これで、前期までの数値と、内部取引の数値が除かれた。 表になっているだけで、直していないので分かりにくいが、これが 4月のキャッシュフローを示していることになるのだ。

次に、余っている列(K列)に、区分表を作る。 E列を見てもらえば分かるように、同じ科目の取引が複数あるだろう。 食費とか消耗品とかは、毎日のように発生する支出だから当たり前だろうが。

E列の最初~最終行までを選択し、K3セルにコピー。K列のデータをすべて 選択し、「データ」タブの「重複の削除」をクリック。列Kが重複の削除の対象 になっているかを確認し、OK。 すると、E列の摘要で出てきた科目すべてが、重複なくK列に表示される。 これが4月の間のキャッシュフローの変動要因のすべてである。

L2セルに、収入、M2セルに、支出貸方、N2セルに、収支と記入する。 そして、科目別に、借方貸方別に金額を集計する。 L3セルに、以下のような式を入れる。

 =SUMIFS($G$3:$G$40,$E$3:$E$40,K3,$F$3:$F$40,1)

金額列(E列)を合計対象範囲として、E列(摘要(相手科目))が、集計したい 科目(K3)と合致しているかを確認する。そのうえで、F列(借貸)が、借方 のコードである 1 であるかを確認する。双方に合致している場合、集計の 対象となるので、合計する。

M3セルには、以下のように。 =SUMIFS($G$3:$G$40,$E$3:$E$40,K3,$F$3:$F$40,2) N3セルには、以下のように。 =L3-M3

L3~N3に入力された計算式を、最終行までオートフィルする。 すると、以下のようになる。

このとき、ちゃんと計算されているかどうかを確認することができる。 それは、G列(金額)の合計と、L列(収入)とM列(支出)の合計が合致しているか という点だ。 G列の金額の合計は、いわば取引総額であり、収入も支出も関係ない、 キャッシュの動きそのものである。 その取引総額を、収入、支出に分けてL,N列に表示しているだけなので、 G列(金額)合計=L列(収入)合計+N列(支出)合計 という式が成り立つ。 ただし、このときL列とN列は絶対値で計算する必要がある。

これが合致していないときには、集計ミスの可能性があるので、 やり直す必要がある。

次に、O列に、区分列を設ける。 この列で、K列に入力されたそれぞれの科目が、営業CFなのか、 投資CFなのか、財務CFなのかを記入する。 すると、以下のようになる。

もうここまで来ると分かると思う。

余ってる場所に、このような表をつくる。

L19セルには、以下のような式を入れる

 =SUMIFS($N$3:$N$14,$O$3:$O$14,K19,$N$3:$N$14,">0")

上の表の、N列の収支を合計対象範囲にして、区分が営業かどうかを判断する。 そのうえで、収入(>0)となっている金額だけを集計する。

M19セルには、以下のような式。 =SUMIFS($N$3:$N$14,$O$3:$O$14,K19,$N$3:$N$14,"<0") N19セルには、以下のような式。 =L19+M19

21行目の投資行まで、L~M列それぞれオートフィルをする。 22行目の合計行は、単純にSUM関数で合計を求める。

すると、営業CF、投資CF、財務CF、キャッシュフロー、収入合計、支出合計 のすべてが導き出される。

ただ、この方法には1つ盲点がある。 それは、収支を同時に仕訳した際に発生する集計漏れだ。 例えば、仕送りを受け取ったときの仕訳がこの問題を引き起こす。 以下の仕訳は、4月中に発生した仕訳の1つだ。 (借方) 現金     60,000   (貸方) 仕送売上 110,000 支払家賃 50,000 この仕訳をすると、現金として収入になったのは、60,000しかないことになる。 しかし、キャッシュフロー計算書で記載すべき金額は、現金として入ってきた 60,000円ではなく、家賃も含めた総収入額である110,000円であるべきだ。

このように、キャッシュとして扱う科目の総勘定元帳からキャッシュフロー 計算書を作ろうとすると、一部のデータが総額ではなく、純額になって 表示されてしまう現象が起きる。すると、それはキャッシュの動きの全貌 ではなくなってしまう。

この問題を解決するには、キャッシュが動いているはずなのに表示されていない 科目がないかを自力で調べる方法があるが、ミスをする可能性もあり、あまり お勧めできない。 なので、仕訳を記入する段階で、ちゃんと分離して記入する方法が 一番良いと考えられる。 上の仕訳だったら、以下のようにする。 (借方) 現金      110,000  (貸方) 仕送売上 110,000 支払家賃    50,000        現金     50,000 このように、キャッシュの収入、支出をいったん通るようにすると、すべて総額に なると同時に、「諸口」も消える。 こうしておくと、その1でも言ったような「真の値」のキャッシュフロー計算書 が導き出されるということになる。

実際、どちらが早いのかはよく分からない。 覚書とは思えないほど長編になったが、これからはこのやり方で 決算書を作っていこうと思う。