• ベストアンサー

エクセルについて金銭出納簿から科目別の小計を出力する方法

エクセルについて金銭出納簿から科目別の小計を出力する方法 いつもお世話になっています。 現在、エクセル2007を使用して金銭出納簿を作成しています。金銭出納簿で日付、科目、金額とならんでいる表から科目別の金額をとりだして別表としてワークシートに出力したいと考えています。小計機能で小計は出力できるのは承知しているのですが、この機能では明細も出力されるため、紙が膨大になってしまいます。 VBAでやれば可能だとは思うのですが、できれば関数を使用してやりたいと考えています。よろしくご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばシート1は元の表でA1セルには日付、B1セルには科目名、C1セルには金額の文字があり、データは2行目から下方に並んでいるとします。 科目名はわかっていれば問題のないのですが科目名も自動で表示させるようにするためにはD2セルに次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(B$2:B2,B2)=1,MAX(D$1:D1)+1,"") お求めの表はシート2に作るとして、また、表はある期間におけるデータを表示させるとして次のようにします。 A1セルには求めたい期間の初めの日にちを例えば2010/5/1のように入力し、B1セルには期間の終わりを2010/6/60のように入力します。 A2セルには項目名、B2セルには小計金額とでも入力します。 A3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>MAX(Sheet1!D:D),"",INDEX(Sheet1!B:B,MATCH(ROW(A1),Sheet1!D:D,0))) B3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A3="","",SUMPRODUCT((Sheet1!A$2:A$1000>=A$1)*(Sheet1!B$2:B$1000=A3)*(Sheet1!C$2:C$1000))-SUMPRODUCT((Sheet1!A$2:A$1000>B$1)*(Sheet1!B$2:B$1000=A3)*(Sheet1!C$2:C$1000)))

satoumasaru
質問者

お礼

早々のご回答ありがとうございます。 いろいろ知らない関数がたくさんでてきました。 ひとつひとつ勉強してみます。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

科目別の集計をしたいならピボットテーブルを使用されてはいかがでしょう。 添付のようなレイアウトの表なら「挿入」「ピボットテーブル」で、行ラベルに「日付」列ラベルに「科目」Σ値に「金額」をドラッグし、作成されたピボットテーブルの行ラベル上で右クリック「グループ化」で「月」にチェックをすれば、添付画像のように、月別の科目一覧を容易に作成することができます。 ちなみに、このテーブルと同じ一覧表を、関数だけで補助列を使わずに自動表示することができますが、かなり複雑な数式を駆使する必要がありますので、個人的にはピボットテーブルをお勧めします。 この場合、ピボットテーブルのデータ範囲を関数を使って名前定義すれば、データを追加しても自動対応できるようすることも可能です。

satoumasaru
質問者

お礼

ピポットテーブルですか 一度講習でならったことはあるのですが、再挑戦してみます。

satoumasaru
質問者

補足

ありがとうございます。 (回答欄にお礼の言葉がぬけていました、申し訳ありません)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

関数ならば、SUMIF関数(単一条件)、SUMIFS関数(複数条件)で可能と思いますのでご検討ください。 例えば、Sheet1のB列が科目、C列が金額、sheet2のA列に集計科目が設定されてるとすると、=SUMIF(Sheet1!B:B,A1,Sheet1!C:C)で科目別集計ができます。 尚、使用例は関数名でネット検索して下さい。

satoumasaru
質問者

お礼

早速の御教示ありがとうございました。 一度、ためしてみます。

関連するQ&A