[[20031201123956]] 『項目別集計』(藤本9) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『項目別集計』(藤本9)

(INA)さん前回はありがとうございましたm(_ _)m
また、書き込みさせて頂きます。

只今、現金出納帳を作成しているのですが(A1)に月(B1)に日(C1)に勘定科目(D1)に金額
とあり、月には12月までの月が入力してあり、日付には若い順に日が入力してあります。勘定科目は色々と項目があり金額もバラバラです。
これをSheet2に勘定科目別に振り分けをしたいのですが、マクロの「新しい記録」で項目別に「オートフィルタ」を使って抽出して、項目別に「コピー」して「貼り付け」していくのが良い方法なのでしょうか?また、何か適切な関数、方法がありましたらご伝授のほどをよろしくお願い致します。Sheet2にはあらかじめ貼り付けの場所は用意しております。わかりづらい説明で申し訳ございません。


 勘定科目ごとの集計が目的でしょうか。
 勘定科目 月 日の優先順位で並べ替えして、

 「データ」→「集計」で
 勘定科目計
 科目ごと月計
 科目ごと月ごと日計

 がお手軽だと思います。
 (KAMIYA)


 シートのレイアウトは、どのような感じですか?
 あと、貼り付け先についても教えて頂けませんか?

 この情報からだと一般機能が良いのか、マクロ化した方が良いのか判断できないです。

 sheet1
     A     B     C      D
 1   1     1   あああ    100
 2   1    10   いいい    500
 3   2     5   ううう    150
 4   3    25   えええ    200
 5  11    11   いいい    800
 6  12    25   えええ    777
 7

 Sheet2
      A      B     C    D
 1   あああ   100
 2   いいい   500  800
 3   ううう   150
 4   えええ   200  777
 5
 6

 こんな感じでしょうか?
  (INA)


(KAMIYA)さん(INA)さん、説明不足で申し訳ないです。
Sheet2
      A      C      E     G
 1  あああ   いいい ううう えええ
 2   100   1000  500   500
 3  200      200     777      600
 4   
 5
 こんな感じです。各項目の間に1列空けてます。


 はい、マクロ1号
 ○印の入った所までsheet2に転送でけてます。
   (弥太郎)
 Sub test()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim strt As Long, end_c As Long, zeni As Long
    Dim i As Integer, n As Integer, f As Integer
    Dim kanjo As String
    Set ws1 = Worksheets("sheet1")
    Set ws2 = Worksheets("sheet2")
    ws1.Select
        strt = Range("e65536").End(xlUp).Row + 1
        end_c = Cells(, 4).End(xlDown).Row
        For i = strt To end_c
            kanjo = Cells(i, 3)
            zeni = Cells(i, 4)
            ws2.Select
                For f = 1 To 7 Step 2
                    If Cells(1, f) = kanjo Then
                        n = Cells(1, f).Column
                        Cells(kan_row(n), n) = zeni
                        Exit For
                    End If
                Next f
            ws1.Select
            Cells(i, 5) = "○"
        Next i

     MsgBox "終了"
 End Sub
 '-----------------------------
 Function kan_row(ByVal n As Integer) As Long
    kan_row = Cells(65536, n).End(xlUp).Row
    kan_row = kan_row + 1
 End Function

(弥太郎)さんありがとうございます。さっそくコピーして貼り付けしてみます。
End Sub で終わっていますが、点線のしたの意味合いを、よければ教えて頂いても
 よろしいでしょうか?


 藤本9さん、こんばんわ。
 Function の事でッか? コレは目的の列の最下行を求める、まぁ言や関数みたいなモ
 ンでしてナ、プロジェクト内のどのプロシージャからでも参照でけるようになってます
 わ、えぇ。このkan_rowを呼び出す前にnの値(コレは列の値)を指定してやったらその
 列の最下行を教えてくれますわ。この場合は、+1をしてありますさかい、データの真下
 の行番号を知る事がでけます。
 これも忘れんとコピペしておくんなはれや。

 KAMIYAさんの関数も有力でっせぇ。
 私も負けんようにユーザー関数作ってみましたんやけどな、データが変更になった場合
 Shift+F9で再計算せなあきまへんさかい、保留にしてありまんのんで。
 あの、マクロが気ぃにいらなんだら又お見せしますわ。

 ところで藤本さん、あんたなんで9なんでっか?何かいわれがありまんのん?興味津々
    ほなら、また(弥太郎)


(弥太郎)さん解説ありがとうございます。さっそく説明文はコピーして「エクセル勉 強」として保存させていただきます。名前と9について(藤本9)
 これは阪神ターガースの藤本のファンでありまして、9は背番号です。優勝記念トレ ーナーをかちゃいました!

(KAMIYA)さん(INA)さん(弥太郎)さんありがとうございます。また、「書き込み」
すると思うのでよろしくお願いいたします。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.