• ベストアンサー

マクロの集計について

↓このような場合マクロの集計はできますか?    社名 金額  A社 100円  B社 300円  A社 200円  A社 100円  B社 200円 ↑このようなエクセルの表がある場合で 月末などにトータルの金額を別シートに  社名 金額  A社 400円  B社 500円 といったような表示をすることはできますか?? マクロを勉強中ですので、何卒宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。Wendy02です。 記録マクロの前に、Excelの一般機能を使いこなせるかどうかの問題ですね。 人によっては、#3で書いたようなマクロを、VBAのコードらしくないので評価しない人という人もいます。でも、だいたいは、Excelの一般機能を使いこなせないから、そういうだけだと、私は思っています。 簡単に言うと、[フィルタオプション]で、重複を出さない一覧を出して、後はデータの統合を使っているだけです。[フィルタオプション]で出力をどこにするかなっていうところと、[統合]をどこにするか、という決め事だけです。特に、[統合]は、どこに一覧を出すか、ということが大事で、その出力する場所で、[統合]のコマンドを行うことです。(こういう、一般機能の使い方は、詳しいマニュアルがない場合は、誰かに教わらないとポイントが分らないかもしれません。) AdvancedFilter →フィルタオプション Consolidate →統合 それを組み合わせれば、#3のようなマクロが出来上がるという、複雑にみえても、実はマクロとしては、すごく初歩的なもので、それに少し味付けをして「らしく」並べ替えているだけです。でも、分らない人には分らないとおっしゃるかもしれません。とりあえず、一度、一般機能だけで出力できるか試してみてください。 なお、記録マクロの仕方自体は、ヘルプやマニュアルの操作をご覧になってください。 結局は、一般機能を使いこなさないままには、なかなか、Office VBAは、うまく使いこなせないものなのですね。

kirakira555
質問者

お礼

ありがとうございます!一般機能の勉強不足です(T_T) フィルタオプションや統合・・。初めて使います!オートフィルタくらいしか使ってなかったので・・・。これから勉強して、それからマクロに取り組みたいと思います!

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 たぶん、こんなところでしょうね。記録マクロからでも作れます。マクロとしては初歩的な内容です。ただし、400円 のように、文字列になっていたら、現在のマクロでは合計は不可能です。 Sub CosolidateTest1() Dim Sh1 As Worksheet Dim Sh2 As Worksheet Dim r1 As Range Dim r2 As Range '------------------------------------- 'シートの設定 Set Sh1 = ActiveSheet Set Sh2 = Worksheets("Sheet2") '-------------------------------------  With Sh1.Range("A1").CurrentRegion.Columns(1)  If .Cells.Count = 1 Then MsgBox "集計場所が違うかもしれません。": Exit Sub    .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("IU1"), Unique:=True    Set r1 = .Range("A1").CurrentRegion    Set r2 = .Range("IU1").CurrentRegion.Resize(, 2)  End With  Sh2.Range("A1").Consolidate Sources:= _     Array(Sh1.Name & "!" & r1.Address(0, 0, xlR1C1), _        Sh1.Name & "!" & r2.Address(0, 0, xlR1C1)), _        Function:=xlSum, _        TopRow:=False, _        LeftColumn:=True, _        CreateLinks:=False  Sh2.Range("A1").Offset(, 1).Value = "金額"  r2.ClearContents  Set r1 = Nothing  Set r2 = Nothing  Set Sh1 = Nothing  Set Sh2 = Nothing End Sub

kirakira555
質問者

お礼

ありがとうございます!ちょっと複雑すぎて困っています(-_-メ)初心者なので、さっぱり意味がわかりませんでした・・。記録マクロではどのような操作をしたら良いのか、時間がある時にでも回答していただけるとありがたいですm(__)m

noname#192382
noname#192382
回答No.2

メニューバーでデータ→並べ替え を選び、社名を基準として並べ替えをします。 次に同じくメニューバーでデータ→集計を選択して 合計を指定すると会社ごとの合計が得られます。

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

トータルシートについて。 (1)社名は最初から入っていて、データのあるシートから該当会社の合計をもってくる (2)社名もデータのあるシートからもってくる 上記(1)、(2)のどちらですか?

kirakira555
質問者

補足

(2)の方です!社名もデータのあるシートから持ってきます。というか、毎日売上がある都度社名と金額を入力しています。その月によって売上がない会社もありますので、社名もシートから移るようにしたいです!

関連するQ&A

専門家に質問してみよう