[[20090421113327]] 『日計と月計』(TAIYO) ページの最後に飛ぶ

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

 

『日計と月計』(TAIYO)

 下記の表1のような表を、表2のように、ボタン1つで日計と月計がでるようにしたいです。
 この表は、他のシートへのデータシートになっているため、もう一つボタンを作って
 解除もすぐできるようにしたいと思ってます。

 表1
 合計 : 金額		
 日付  	名前  	計
 6月1日	あ	10
 6月1日	い	50
 6月2日	あ	30
 6月30日	う	30
 7月1日	あ	15
 7月2日	え	100

 表2
 合計 : 金額		
 日付  	名前    計
 6月1日	あ     10
 6月1日	い     50
 6月1日計     60  
 6月2日	あ        30
 6月2日計     30
 6月30日	う        30
 6月30日計     30
 6月計      120
 7月1日	あ        15
 7月1日計          15
 7月2日	え       100
 7月2日計     100
 7月計      150

 [エクセルのバージョン]Excel2000
 [OSのバージョン]Windows2000


 まさにピボットテーブルだと思うんですが、
 それを「マクロの記録」で記録したものを使うのではだめなんでしょうか。

 また、他のシートから参照させているデータなら、
 ピボットテーブルを別シート表示させたほうがいいと思うんですけど。
 (ミニドナ)

 日々データは増えていき、
 表を作りたいというよりは、画面で日計と月計がわかればいいんですが。 

 それでもピボットテーブルを使った方がいいでしょうか?

 (TAIYO)

 他のシートからデータを参照するのならば、
 データのレイアウトは変更しないほうがいいのではないでしょうか。

 たとえば、表1から表2に同じシート状で変更した場合、
 表2にした状態でこのデータを参照しているシートを見るとデータがおかしくなったりしないですか?
 「大丈夫!」ということであっても、作業の途中に何らかのトラブルが起きた場合、
 データを復元するのって大変ですよね。

 >それでもピボットテーブルを使った方がいいでしょうか?
 ピボットでやる方法が一番簡単でわかりやすいと思ったのでアドバイスしました。
 ピボットテーブルがダメな理由があれば教えてください。

 それはさておき、同じシート状にピボットテーブルを作成・クリアするマクロを作りました。
 とは言っても私もマクロは素人同然なので「マクロの記録」をしながら作ったものです。
 詳しい方はもっと効率のよい・きれいなマクロを作れるのかもしれませんが、私にはこれが限界です。

 CommandButton1とCommandButton2はシート状に作ったボタンの名前です。
 シート名はSheet1としています。
 また、表はタイトルを含めA2から始まっていて、
 ピボットは同じシートのE1に作られるように作成しています。

 Private Sub CommandButton1_Click()  'ピボットテーブル表示

     Dim lrow As Long, lcolumn As Long
     Range("A2").Select
     lrow = Selection.End(xlDown).Row
     lcolumn = Selection.End(xlToRight).Column

     ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
         "Sheet1!R2C1:R" & lrow & "C" & lcolumn).CreatePivotTable TableDestination:=Range("E1"), _
         TableName:="ピボットテーブル1"
     ActiveSheet.PivotTables("ピボットテーブル1").SmallGrid = False
     With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("日付")
         .Orientation = xlRowField
         .Position = 1
     End With
     With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("名前")
         .Orientation = xlRowField
         .Position = 2
     End With
     With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("計")
         .Orientation = xlDataField
         .Position = 1
     End With

 End Sub

 Private Sub CommandButton2_Click()  'ピボットテーブル削除

     MsgBox "ピボットテーブルを" & vbCrLf & "クリアします"

     Columns("E:G").Select
     Selection.Delete Shift:=xlToLeft
     Range("A1").Select

 End Sub

 (ミニドナ) ※抜けがあったので修正しました 2009/4/21 14:58

 >日々データは増えていき、
 >表を作りたいというよりは、画面で日計と月計がわかればいいんですが。
 でしたら、別シートへピボットテーブルを作って於いて
 データが増えた場合は
 [!](更新)ボタンを押して確認するのはどうでしょう。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


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