エクセルでの質問です。
サンプルにあるように、同じシートに、元表とまとめ表があります。
まとめ表には、別シートから項目と金額が貼り付けられるようになっています。
やりたいのは、元表の項目種類を集計し、まとめて表に金額集計をしたいんです。
だけども例1、例2にあるように元表に貼付られる項目の種類、数は毎回異なり、範囲が
変わってしまう事で悩んでいます。
実はマクロでこのエクセルファイルを開くと、別エクセルファイルのデータを読込、自動で
まとめ表までの結果が計算されることを目指していて、元表に項目と金額が貼付られる
ところまで、出来たところです。
なのですが、毎回変わる元表のデータを、まとめ表に集計する所で悩んでいます。
ピボットテーブルを使えばいいのかなと思うのですが、毎回、範囲とデータが変わるため、
範囲と再計算をしなければならないと思いますが、どのようにしたらよいでしょうか?
頭の中がごちゃごちゃして判らなくなってしまいました。
マクロも詳しくなく、マクロの記憶で、なんとか組み合わせてやっている初心者です。
申し訳ありませんが、私でも判るようなレベルで教えて頂けると、助かります。
宜しくお願いいたします。サンプル見えないと困るので下にも書きます。ずれてますが
すみません。
例1 例2
シート1 シート1
まとめ表 まとめ表
項目 金額 項目 金額
1A 260 1A 250
2A 500 2B 510
3A 770 3A 20
4A 30 4B 780
6A 400
7A 500
元表 元表
項目 金額 項目 金額
1A 100 1A 100
1A 150 1A 150
1A 10 2B 10
2A 200 2B 200
2A 300 2B 300
3A 20 3A 20
3A 300 4B 300
3A 450 4B 450
4A 30 4B 30
6A 400
7A 500
No.1ベストアンサー
- 回答日時:
例えばエクセルの「統合」の機能を使い,元表を記入した都度に項目ごと集計した結果を書き出せてみます。
まず試しに「統合」の操作を実際に行ってみて,上手く使えるようになったら新しいマクロの記録で操作をマクロに録り,参考にしてみて下さい。
なお統合する際には元表の範囲の最後のセルを取得して操作しても勿論構いませんが,最後のセルを無視して十分下にある空っぽセル(たとえば6万行目まで)までを範囲指定して統合させても問題ありません。
いまマクロで元表を記入させる事までは出来ているので,ある一つの元表が「どこのセルから開始されている」かは既知です。
既存のマクロを使い,たとえばB21セルに元表の「項目」と記入されたセルがあってそれ以下のセル範囲に元データを記入したところから始めます。
sub sample1()
dim SourceRange as range
dim DestinationRange as range
set sourcerange = range("B21") '既存マクロが貼り付けた元表の「項目」セルを指定
set destinationrange = cells(1, sourcerange.column) ’そのセルの1行目セルにまとめるとする
destinationrange.consolidate _
sources:=activesheet.name & "!" & sourcerange.resize(60000,2).address(referencestyle:=xlR1C1), _
function:=xlSum, _
toprow:=True, _
leftcolumn:=True, _
createlinks:=False
end sub
実際にはあなたの既存マクロが元表を作成する都度,その元表を配置したセルを基準に(上述サンプルマクロのSoucerangeにセットして)統合結果を書き出させるように組み込んで使います。
No.3
- 回答日時:
こんばんは!
一例です。
元表はA・B列にあり、データは2行目からとします。
無理矢理って感じの方法です。
操作したいSheet見出し上で右クリック → コードの表示 → VBE画面がでますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
Sub test()
Dim i, k As Long
k = Cells(Rows.Count, 1).End(xlUp).Row
Columns(1).Insert
For i = 2 To k
If WorksheetFunction.CountIf(Range(Cells(2, 2), Cells(i, 2)), Cells(i, 2)) = 1 Then
Cells(i, 1) = WorksheetFunction.SumIf(Range("B:B"), Cells(i, 2), Range("C:C"))
End If
Next i
For i = k To 2 Step -1
If Cells(i, 1) <> "" Then
Cells(i, 3) = Cells(i, 1)
Else
Rows(i).Delete (xlUp)
End If
Next i
Columns(1).Delete
End Sub
尚、一旦マクロを実行すると元に戻せませんので別Sheetにコピー&ペーストしてマクロを試してみてください。
以上、参考になれば良いのですが・・・m(__)m
No.2
- 回答日時:
ピボットテーブルのデータの更新だけなら、下記でいかがでしょうか。
データはA1から、A,B列にわたって存在し、ピボットテーブルは同じシート中に1個だけ存在するとします。
Sub test()
ActiveSheet.PivotTables(1).SourceData = ActiveSheet.Name & "!" & Range(Range("A1"), Range("A" & Rows.Count).End(xlUp)).Resize(, 2).Address
End Sub
同じシート内なら、Activesheet.Name & "!" &
は不要かもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル VBA 小数点を含む数字...
-
条件に応じて特定の行を非表示...
-
Excel にて非表示行を探すワー...
-
Excel2007で、太字にした行のみ...
-
エクセルで特定文字列の色つけ
-
マクロの組み方とチェックボッ...
-
エクセルで全ての数字間にカン...
-
エクセル マクロ オートシェ...
-
wordのvbaでハイパーリンク設定...
-
Excel2007 セルを右方向に削除...
-
並べ替えのマクロで対象行の範...
-
エクセルで連番をマクロで
-
二行ごとの数式挿入
-
Excelで金銭出納帳。繰越残高を...
-
別シート参照のセルをシート毎...
-
エクセルの複数シートの保護を...
-
EXCEL VBAで別のシー...
-
Accessのスプレッドシートエク...
-
エクセルVBAでパスの¥マークに...
-
エクセルでファイルを開いたと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excel(VBA)データ入力に応じて...
-
Excelでセル内の数式は残し値だ...
-
エクセル VBA 小数点を含む数字...
-
Excel2007 セルを右方向に削除...
-
Excelで連続印刷をするマクロ
-
「マクロ」の足し算の式を教え...
-
値貼り付けをしても書式も貼り...
-
excel ある部分だけをコピペし...
-
エクセルで全ての数字間にカン...
-
wordのvbaでハイパーリンク設定...
-
Excel にて非表示行を探すワー...
-
Excelで周期的に列を削除する方法
-
エクセル2003でマクロをおこな...
-
yyyy/mm/ddの日付に一括変換す...
-
VBA コピーを有効行までループ...
-
並べ替えのマクロで対象行の範...
-
エクセル オートフィルタの抽...
-
エクセル マクロ オートシェ...
おすすめ情報