Expand search form

「マクロでデータ集計を効率化!Ctrl + Shift + AでVBA自動フィルター」

【第1セクション】

マイクロソフトExcelで自動フィルターを活用しよう!

もし、Excelで大量のデータを扱っている場合には、そのデータを効率よく整理する必要があります。そのような場合に便利なのが、自動フィルターです。自動フィルターを使えば、データの範囲を簡単に制限でき、必要なデータのみを視覚的に把握することができます。そこで、この記事では、自動フィルターを利用したデータ整理方法を解説します。

【第2セクション】

使用方法

ステップ1:新規マクロの作成

まずは、Ctrl + Shift + Aキーを押して、新規マクロを作成します。マクロ名は、適宜つけてください。

ステップ2:自動フィルターの実行

VBAで自動フィルターを実行するためには、以下のコードをマクロに追加します。

ActiveSheet.ListObjects(“テーブル名”).Range.AutoFilter Field:=[フィルターをかける列番号], Criteria1:=[フィルターの条件]

上記の「テーブル名」の部分は、対象のデータのテーブル名に置き換えます。フィルターをかける列番号は、自動フィルターの対象とする列の番号に置き換えます。そして、フィルターの条件は、必要に応じて変更してください。

ステップ3:マクロの実行

マクロを実行すると、自動フィルターが実行され、条件に合うデータにフィルタリングされます。

【第3セクション】

使用例

使用例1:月別の売上合計を出す

想定するセールスレポートのテーブルは、以下の通りです。

日付 | 商品名 | 売上金額
— | — | —
1月1日 | 商品A | 1000円
1月1日 | 商品B | 2000円
1月2日 | 商品A | 1500円
1月2日 | 商品B | 2500円
… | … | …

この場合、まずは自動フィルターを使用し、「日付」の列をフィルタリングし、対象期間のデータのみを表示します。そして、VBAを用いて、「売上金額」の列を集計します。以下がそのコードです。

Sub SalesTotalByMonth()
Dim tbl As ListObject: Set tbl = ActiveSheet.ListObjects(“SalesReport”)
Dim salesTbl As ListObject: Set salesTbl = tbl.ListColumns(“売上金額”).DataBodyRange
Dim i As Long
Dim dict As Object: Set dict = CreateObject(“Scripting.Dictionary”)

For i = 1 To salesTbl.Rows.Count
Dim dateStr As String: dateStr = tbl.DataBodyRange.Cells(i, 1).Value
Dim price As Long: price = salesTbl.Cells(i, 1)
Dim monthStr As String: monthStr = Format(CDate(dateStr), “yyyy/mm”)

If Not dict.Exists(monthStr) Then
dict.Add monthStr, price
Else
dict(monthStr) = dict(monthStr) + price
End If
Next i

Dim key As Variant
Dim r As Long: r = tbl.ListRows.Add.Range.Row
For Each key In dict.Keys()
tbl.ListRows.Add
tbl.Range.Cells(r, 1).Value = key
tbl.Range.Cells(r, 2).Value = dict(key)
r = r + 1
Next key
End Sub

このコードを実行すると、以下のような結果が出力されます。

日付 | 売上金額
— | —
2022/01 | 7000円

このように、自動フィルターとVBAを効果的に使えば、膨大な量のデータを効率的かつ簡単に集計することができます。

【第4セクション】

まとめ

Excelを使って大量のデータを操作する場合、自動フィルターを使用すれば必要なデータだけを視覚的に把握することができます。さらに、VBAを使って自動フィルターを組み合わせれば、のため、素早く正確なデータ集計が可能になります。自動フィルターとVBAを活用して、データの整理を効率的かつ確実に行いましょう。

Previous Article

“ズーム効果で視線をコントロール”

Next Article

「整理整頓もバッチリ!OneDriveでのファイルのタグ付け方法」

You might be interested in …

「Alt+F1キーで即完成!Exelで簡単にグラフを作成する方法」

はじめに 今回は、「Excelで簡単にグラフを作成する方法」を紹介します。Excelはデータを扱う上で欠かせないアプリケーションであり、グラフを作成する機能も備わっています。今回のヒントを使えば、Excelで簡単にグラフを作成することができます。 使用方法 ステップ1:データを入力する まずは、グラフにしたいデータをExcelシートに入力します。データには、 […]

営業日数計算の達人!NETWORKDAYS関数

【第1セクション】 「NETWORKDAYS関数で、営業日数を簡単に計算しよう」というタイトルで、この機能がスケジュール分析にどのように役立つかを説明します。 【第2セクション】 【使用方法】 1. Excelを開き、計算する日付範囲を決定しておきます。 2. 「関数」メニューから、「日付と時刻」を選びます。 3. 「NETWORKDAYS」関数を選び、「O […]

データランキング!LARGE

ヒント:LARGE関数とSMALL関数でデータセット内のランキングを求めよう Excelには、データセット内のn番目に大きい・小さい値を求めるための関数があります。それがLARGE関数とSMALL関数です。 使用方法 ステップ1:LARGE関数の使い方 1. データセット内にランキングを付けたい列を選択します。 2. 関数バーに「=LARGE(選択した列, […]