プロが教えるわが家の防犯対策術!

会計処理する上で下記のような方法が出来るかどうか教えて下さい。

「普通預金」シートと「現金」シートがあり明細を記入していきます。

項目には「日付」「摘要」「収入」「支出」「残高」があります。

そこで項目に「番号」を追加し、下記の通りに置き換えます。

会議費=1

「会議費」シートを作成し、「普通預金」と「現金」シートに記入した分は会議費シートに
追加されていくという方法は可能でしょうか?

わかりづらい説明で大変申し訳ありません。
現在の方法だと、例えば「現金」で「会議費」を支払ったとすると、

「普通預金」と「会議費」

2枚に記入しなくてはならないため間違いも起こりやすくなっています。

「普通預金」か「現金」シートに記入すれば自動的に「会議費」に反映されるようにしたいということです。

一応画像も作成してみたのでご参考になれば幸いです。

よろしくお願いいたします。

A 回答 (4件)

こんばんは!


余計なお世話かもしれませんが・・・
一つの案として、もう一つ入力用のSheetを作成し帳簿のような感じでお金(物)の動きがあった場合は
すべて入力していき、それを「現金」・「普通預金」・「会議費」・・・等々のSheetへ振り分けるようにしてみてはどうでしょうか?

↓の画像(画像が小さくて見えにくいかもしれません)で上側のSheetが「入力用」Sheetとしています。
そして、「科目」・「摘要」は入力規則からリスト表示するようにしていますので、数値を入れる「項目」の列は必要なくなると思います。

「科目」別Sheet・または「摘要」別SheetのA1セルにはSheet名をすべて入れておきます。
「科目」の列にあるSheetをグループ化
(画像では「普通預金」Sheetを開き、Shiftキーを押しながら「現金」SheetのSheet見出しをクリックすると二つのSheetがグループ化されます)し

「普通預金」SheetのA3セルに
=IF(COUNTIF(入力用!$B$1:$B$1000,$A$1)<ROW(A1),"",INDEX(入力用!A$1:A$1000,SMALL(IF(入力用!$B$1:$B$1000=$A$1,ROW($A$1:$A$1000)),ROW(A1))))
これは前回同様配列数式になりますので、Shift+Ctrlキーを押しながらEnterキーで確定!
これをE列までオートフィルでコピー!
A3セルの表示形式は「日付」にしておきます。
最後にA3~E3セルを範囲指定しE3セルのフィルハンドルで下へコピーすると画像のような感じになります。

尚、会議費Sheet(摘要の項目Sheet)は「入力用」Sheetでは別列になりますので、
数式が少し変わります。
「会議費」SheetのA3セルに
=IF(COUNTIF(入力用!$C$1:$C$1000,$A$1)<ROW(A1),"",INDEX(入力用!A$1:A$1000,SMALL(IF(入力用!$C$1:$C$1000=$A$1,ROW($A$1:$A$1000)),ROW(A1))))
(これも配列数式です。)として先ほど同様の操作方法で画像のような感じになります。

※ メニュー → ツール → オプション → 「表示」タブで「ゼロ値」のチェックは外しています。

これで「入力用」Sheetに入力するだけで、それぞれのSheetに振り分けられて表示されると思います。

以上、長々と書きましたが
的外れならごめんなさいね。m(__)m
「2枚のシートから各シートへの抽出」の回答画像2

この回答への補足

度々ご丁寧なご回答ありがとうございます。
ご教授いただいた方法を実行してみようと思ったのですが、
「普通預金」「現金」それぞれの収入、支出、残高項目が必要なので「入力用」に「普通預金」「現金」の明細を一覧で記入していくのはちょっと難しいのです。

やはり大項目の「普通預金」「現金」シートから小項目の「会議費」「利息」シートなどに
割り振られていくように作れたらと思っております。

補足日時:2011/03/03 10:32
    • good
    • 0

ふつうこのような処理はVBAを使ったり、ACCESやクエリを使うと思います


Excelでもクエリを使えるのでできなくはないですが難しいです。
今回の場合はunionクエリで普通預金と現金をつなげて、選択クエリで会議費を抽出するのだと思います。
+並べ替えが必要だとは思うのですが。

当方 ACCESSもMS-クエリも、VBAもあまり得意ではないので、無理やり数式。
重いので参考にならないとは思いますが、
会議費シートのA2:D2セルを選択した状態で
=IF(COUNTIF(普通預金!$F$8:$F$1000,1)>=ROW()-1,INDEX(普通預金!A$8:D$1000,
SMALL(IF(普通預金!$F$8:$F$1000=1,ROW(普通預金!A$8:A$1000)-7),ROW()-1),{1,2,3,4}),
IF(COUNTIF(現金!$F$8:$F$1000,1)>=ROW()-1-COUNTIF(普通預金!$F$8:$F$1000,1),
INDEX(現金!A$8:D$1000,SMALL(IF(現金!$F$8:$F$1000=1,ROW(現金!A$8:A$1000)-7),
ROW()-1-COUNTIF(普通預金!$F$8:$F$1000,1)),{1,2,3,4}),""))
[Ctrl]+[Shift] +[Enter] で確定、配列数式です({}で囲まれる)
そのまま下へオートフィル
普通預金→現金の順です。

おのおののシートでフィルタをかけコピペ、会議費シートで並べ替えるのが単純そうです。
    • good
    • 0

No.2です!


たびたびごめんなさい。

大勢に影響はないのですが・・・

前回の画像で貸借が反対になっていました。
簿記では左が「借方」・右が「貸方」ですよね!

何度も失礼しました。m(__)m
    • good
    • 0

便宜上、「会議費」のシートをシート1、「普通預金」のシートをシート2、「現金」シートをシート3とします。


シート2や3ではA1セルに日付、B1セルに摘要、C1セルに収入、D1セルに支出、E1セルに残高、F1セルに項目番号とそれぞれ文字が入力されており、各データはそれぞれの項目の下方にあるとします。
シート2及び3ではG列に作業列を設けて、G2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(F2="","",F2*10000+COUNTIF(F$2:F2,F2))

そこでお求めの表ですがシート1でもA1セルからE1セルまでに残高までの項目名を入力します。
その後にA2セルには次の式を入力してE2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(COUNTIF(Sheet2!$G:$G,10000+ROW(A1))>0,INDEX(Sheet2!$A:$E,MATCH(10000+ROW(A1),Sheet2!$G:$G,0),COLUMN(A1)),IF(COUNTIF(Sheet3!$G:$G,10000+ROW(A1)-COUNTIF(Sheet3!$F:$F,1))>0,INDEX(Sheet3!$A:$E,MATCH(10000+ROW(A1)-COUNTIF(Sheet3!$F:$F,1),Sheet3!$G:$G,0),COLUMN(A1)),""))

なお、A列にはセルの書式設定の表示形式で日付を選択します。

この回答への補足

ありがとうございます。

すべてのシートで「A7」から「F7」項目入力、以降それぞれの項目下に入力
していくとするとどういう式になりますでしょうか?


よろしくお願いします。

補足日時:2011/03/02 14:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!