- ベストアンサー
エクセルのフィルターマクロのやり方
- エクセルのフィルターマクロのやり方について学びましょう。毎月の定例作業を効率化するためにマクロを使用してエクセルファイルを作成する方法を解説します。
- 図表をフィルターして、新しいシートに分解し、合計金額を出す方法を学びましょう。エクセルのフィルターマクロによって作業を効率化することができます。
- エクセルのフィルターマクロを使用することで、毎月の作業を簡単に行うことができます。図表をフィルターし、合計金額を計算する方法について解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
マクロを使って処理するよりもデータがシート1に追加されれば即座に他のシートのデータも最新のものに自動的に変更される、また、データが多くなっても処理速度も速いなど関数を使って処理することがよいでしょう。 シート1は元のデータで2行目から下方にデータが入力されているとしてE2セルには次の式を入力して下方にドラッグコピーします。 =IF(B2="","",B2&COUNTIF(B$2:B2,B2)) 結果を他のシートに表示させるわけですが該当するシート名をCtrlキーを押しながらシート見出しでクリックします。 それらのシートが作業グループとなります。 そこでA1セルには例えば営業費と入力します。 B1セルには合計額とでも入力し、C1セルには次の式を入力します。 =SUMIF(Sheet1!$B:$B,$A$1,Sheet1!$D:$D) A2セルからD2セルにはシート1と同じ項目名を入力します。 A3セルには次の式を入力してD3セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>COUNTIF(Sheet1!$B:$B,$A$1),"",INDEX(Sheet1!$A:$D,MATCH($A$1&ROW(A1),Sheet1!$E:$E,0),COLUMN(A1))) A列を選択して右クリックして「セルの書式設定」の「表示形式」の日付の中から好みの表示を選択してOKします。 最後にシート見出しで右クリックして「作業グループの解除」を選択します。 他のシートでA1セルに例えば建設費と入力することで表が書き換えられます。
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 「図‐1」はSheet1にあり、↓の画像のような配置になっているとします。 そしてSheet2以降のSheet名は「営業費」等々各「費目」のSheet名のSheetが存在しているとしての一例です。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() 'この行から Dim i As Long, k As Long, str As String, wS As Worksheet For k = 2 To Worksheets.Count str = Worksheets(k).Name Set wS = Worksheets(str) wS.Cells.ClearContents With Worksheets("Sheet1") .Cells(1, 1).AutoFilter field:=2, Criteria1:=str .Cells(1, 1).CurrentRegion.Copy wS.Cells(1, 1) End With i = wS.Cells(Rows.Count, 1).End(xlUp).Row If i > 1 Then With wS.Cells(i + 1, 3) .Value = "合計" .Offset(, 1) = WorksheetFunction.Sum(Range(wS.Cells(2, 4), wS.Cells(i, 4))) End With End If Next k With Worksheets("Sheet1") .Activate .AutoFilterMode = False End With End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m
お礼
私が担当の時はVBEをつかいます(o^^o)後任への引き継ぎとメンテナンスを考えると難しいかな!っでもすっごいいいのが出来ました!!!!!ありがとうございます(^ー^)ノ
お礼
ありがとうございます!関数でしたら、メンテナンスや後任への引き継ぎに良いですね。参考になりました!!!!!