人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問です
エクセルでCSVファイルのSheet1にA列に日付、B列に金額、C列に担当者名が2行目から
データがあります。
A列 B列 C列
8月1日 1000 AAA

Sheet2に下記のようなクロス集計を作成するマクロをお願いします。(画像添付)
AAABBBCCCDDDEEEFFFGGG計
1日 1,0005003002002501502,400
2日5003002001002501501,500
3日 1,0005002001002501502,200
4日
5日
?

29日
30日
31日
合計 2,0001,5006006002007504506,100

日付はあらかじめ1日から31日まで固定しその行に該当金額を表示する
担当者名は変更可能とする
答えのsheet2の1行目は担当者名の項目名を表記する

1312452310
●拡大する

●質問者: inosisi
●カテゴリ:コンピュータ インターネット
✍キーワード:8月1日 AAA CCC ddd FFF
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●50ポイント

これはピボットテーブルを使うと 一発でできます。


http://www11.plala.or.jp/koma_Excel/contents7/mame7046/mame704601.html

http://www11.plala.or.jp/koma_Excel/pivot_menu.html


2 ● きゃづみぃ
●50ポイント ベストアンサー

ピボットテーブルをVBAで やってみました。

なので ちょっと 表示が 違う箇所もありますが だいたい質問の内容は 出来てると思います。

Sub Macro2()
 Worksheets("Sheet2").Cells.Clear
 
 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
 "Sheet1!R1C1:R26C3").CreatePivotTable TableDestination:= _
 "Sheet2!R1:R65536", TableName:="ピボ", DefaultVersion:=xlPivotTableVersion10
 
 c1 = Format(Worksheets("Sheet1").Range("A1").Value, Worksheets("Sheet1").Range("A1").NumberFormatLocal)
 c2 = Worksheets("Sheet1").Cells(1, "C")
 
 Worksheets("Sheet2").PivotTables("ピボ").AddFields RowFields:=c1, ColumnFields:=c2
 
 Worksheets("Sheet2").PivotTables("ピボ").PivotFields(2).Orientation = xlDataField
 Application.CommandBars("PivotTable").Visible = False
 ActiveWorkbook.ShowPivotTableFieldList = False
End Sub
◎質問者からの返答

ありがとうございます

ピボットテーブルとマクロをやってみたんですが日付が同じ日付で集計されないのですが何か方法はありますか?

日付のなかみは秒単位になっています見た目は月日だけですが

よろしくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ