• ベストアンサー

Excekのオートフィル機能

Excelで現金出納帳を作っていますが、オートフィルで、「通信費」だけを表示させたとき、差引残高の金額は元の表の値そのままを持ってきてしまいます。これを、通信費だけの差引残高(基準値は前月繰越残)として表示させたいのですが、いい方法はないでしょうか??教えてください!!

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

関数ないし手操作での実現を希望されていると思います。 しかし色々な費目の出金を入力した時、その入力行の別セルに、差し引き後残高を、瞬時・自動的に出すのは難しいと思います。 エクセルVBAかデータベース言語・ソフトでないと実現は難しいと思います。エクセルVBAでも難しいように思いました。 次ぎのモデル(入金と組み合わせるなど、骨子以外の詳細には検討していないと言うこと)的に考えました。 (表部分を作成)E1:F4に コード 現在残高 当初残高 11 50 50 12 30 30 13 20 20 を入力する。初期設定。 (VBAの作成) シート上でALTキーを押しながらF11キーを押す。 ALTきーを押しながらI(挿入)、M(標準モジュール)を キーインする。VBEの画面になる。 ProjectウインドウのSheet1をダブルクリックする。 イベントとして、WorksheetとChangeを選ぶ。 下記をコピーし貼りつけ Private Sub Worksheet_Change(ByVal Target As Range) c = Target.Column r = Target.Row If c = 2 Then cd = Cells(r, "A") a = Application.WorksheetFunction.VLookup(cd, Range("e2:f10"), 2) p = Application.WorksheetFunction.Match(cd, Range("e2:e10"), 0) ' MsgBox p Cells(r, "C") = Cells(p + 1, "F") - Cells(r, "B") Cells(p + 1, "F") = Cells(p + 1, "F") - Cells(r, "B") End If (入力データ)A1:B10に順次入力する。 11、12,13は通信費や食費などを仮にコード化したものです。 出金列に入力すると残高列が11,12,13ごとに変化・減少します。 同時にF列の該当行の現在残も変化します。 コード 出金 残高 11 20 30 12 15 15 13 10 10 11 10 20 12 5 10 13 3 7 12 4 6 11 2 18 12 5 1 エラー対策はやっていません。エラーが起こりVBE画面に 黄色の行表示が出たら、リセットしないと反応しなくなりますので注意。VBAを使いこなせないと、更に本件VBAを 発展させることは難しいでしょう。 結局本件質問の機能を欲しいなら、フリーの家計簿ソフトの利用をお勧めします。

その他の回答 (2)

  • the845t
  • ベストアンサー率33% (246/743)
回答No.2

オートフィルタじゃなかったですか? 今はExcel使ってないのですが、 たしかautosum関数というのがあったような気がします。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

=SUMIF(A1:B3,"通信費",B1:B3) というふうに SUMIF を使ったらいいですよ。 最初の A1:B3 の 範囲に "通信費" (セルでもいいです)があったら その行の B1:B3 の分だけ 合計するといった感じです。

kitty_aki
質問者

補足

早速のご回答ありがとうございます。 説明不足で申し訳ありませんが、合計ではなく、収入・支出からの差引残高を表示させたいのです・・・。科目が通信費・事務費・雑費・・・などたくさんある中から、オートフィル機能を使って通信費だけピックアップできたまではよかったのですが、差引残高が全体の値になってしまっているため、通信費だけの差引残高を、元の表からうまく持ってこれる方法をご教示願いたかったのです。。。元の表に関数等を入れ直す方法ですとか・・・。すみませんがよろしくお願いします!!

関連するQ&A