Microsoft ExcelでVBAを使用してデータをグループ化
この記事では、特定の条件に代わってデータをグループ化するマクロを作成します。
生データは、事業開発チームのデータで構成されています。これは、名前、電話番号、および通話ごとの売上で構成されます。
この記事では、エージェント名と各エージェントによって生成された総収益でデータをグループ化します。
ロジックの説明
必要な計算とデータのグループ化を実行する「DataGrouping」マクロを作成しました。一意のエージェント名と、各エージェントによって生成された総収益を示します。
コードの説明
LngLastRow = Cells(Rows.Count、1).End(xlUp).Row上記のコードは、最後のセルの行番号を取得するために使用されます。
セルではない間(i、1).Value = “”
Wend上記のコードは、空白のセルが検出されるまでループするために使用されます。
For LngRow = LngLastRow To(i + 1)ステップ-1次のLngRow上記のForループは、最後の行から開始して最初の行を指定する逆ループに使用されます。
Rng.Offset(0、2).Value = Rng.Offset(0、2).Value + Cells(LngRow、3).Value上記のコードは、指定された基準に基づいて値を合計するために使用されます。
Rows(LngRow).Delete上記のコードは、行を削除するために使用されます。
コードについては以下に従ってください
Option Explicit Sub DataGrouping() 'Declaring variables Dim Rng As Range Dim LngRow As Long, LngLastRow, i As Long Application.ScreenUpdating = False 'Getting row number of last cell LngLastRow = Cells(Rows.Count, 1).End(xlUp).Row 'Initializing the first row i = 12 'Looping until blank cell is encountered in first column While Not Cells(i, 1).Value = "" 'Initializing range object Set Rng = Cells(i, 1) 'Looping from last row to specified first row For LngRow = LngLastRow To (i + 1) Step -1 'Checking whether value in the cell is equal to specified cell If Cells(LngRow, 1).Value = Rng.Value Then Rng.Offset(0, 2).Value = Rng.Offset(0, 2).Value + Cells(LngRow, 3).Value Rows(LngRow).Delete End If Next LngRow i = i + 1 Wend Application.ScreenUpdating = True End Sub
このブログが気に入ったら、FacebookやFacebookで友達と共有してください。
私たちはあなたから話を聞くのが大好きです、私たちがどのように私たちの仕事を改善し、あなたのためにそれをより良くすることができるかを私たちに知らせてください。 [email protected]までご連絡ください