1312452310 質問です

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

Sheet2に下記のようなクロス集計を作成するマクロをお願いします。(画像添付)
   AAA BBB CCC DDD EEE FFF GGG 計
1日 1,000 500 300 200 250 150 2,400
2日 500 300 200 100 250 150 1,500
3日 1,000 500 200 100 250 150 2,200
4日
5日


29日
30日
31日
合計  2,000 1,500 600 600 200 750 450 6,100

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

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2011/08/04 19:05:13
  • 終了:2011/08/06 17:43:06

ベストアンサー

id:taknt No.2

きゃづみぃ回答回数13539ベストアンサー獲得回数11982011/08/04 21:23:48

ポイント50pt

ピボットテーブルを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
id:inosisi4141

ありがとうございます

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

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

よろしくお願いします。

2011/08/05 14:15:44

その他の回答(1件)

id:taknt No.2

きゃづみぃ回答回数13539ベストアンサー獲得回数11982011/08/04 21:23:48ここでベストアンサー

ポイント50pt

ピボットテーブルを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
id:inosisi4141

ありがとうございます

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

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

よろしくお願いします。

2011/08/05 14:15:44
  • id:inosisi4141
    添付画像の空欄の0表示は不要です。
  • id:inosisi4141
    「担当者名は変更可能とする」
    はデータの中から持ってくると思いますので「変更可能とする」の文言は不要です

    B列からH列の1行目に担当者名を表示する

    I列の計欄の0表示はなしです。
  • id:inosisi4141
    「担当者名は変更可能とする」
    はデータの中から持ってくると思いますので「変更可能とする」の文言は不要です
    B列からH列の1行目に担当者名を表示する

    私の勘違いでやはりあらかじめ担当者欄B列からH列7個は固定します
    その担当者名はデータの中からコピー貼りつけして同じものを表示しますので合致させます
    担当者7個は固定します担当者の金額がない場合は空欄となります

    担当者の参照が必要であればSheet3のA列に記述してもOKです
    マクロの中に記述してもOKです
    お手数おかけします。


  • id:taknt
    ピボットテーブルは とても便利な機能なので ぜひ マスタしてください。
    クロス集計に おおいに役立ちます。
  • id:taknt
    >私の勘違いでやはりあらかじめ担当者欄B列からH列7個は固定します

    これは ある分だけ 作成されます。
  • id:taknt
    時分秒が違うと別扱いになっちゃうんですね。

    こちらでテスト用に作成する場合は、日付のみしか入れませんので
    時分秒は すべて 0となります。

    可能ならば 時分秒を すべて 0にして 実行してみたらいいでしょう。
  • id:taknt
    まず A列を D列にコピーします。
    A列の1行目に
    =TEXT(D1,"mm月dd日")
    と入れてこれをコピーして 行数分 貼り付けます。

    次に マクロの
    c1 = Format(Worksheets("Sheet1").Range("A1").Value, Worksheets("Sheet1").Range("A1").NumberFormatLocal)

    c1 = Worksheets("Sheet1").Range("A1").Value
    に変更して 実行させれば いいですよ。


  • id:inosisi4141
    ありがとうございます
    ピポットテーブルでやりましたら上手く行きました
    =TEXT(D1,"mm月dd日")
    の関数があって助かりましたありがとうございます。

    マクロの方はせっかく作っていただいたのですがなぜか最初の行しか
    できません。修正もしたのですが

    ピッポットデーブルでできますのでOKです
  • id:inosisi4141
    takntさん
    マクロの方はデータソースの変更でテーブル/範囲を選択しましたらできました。
    素人の質問ですみませんでした。

    ピポットテーブルはいろいろ活用できそうなので助かります。
    ありがとうございました。
    今後ともよろしくお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません