この記事では、特定の条件に代わってデータをグループ化するマクロを作成します。

生データは、事業開発チームのデータで構成されています。これは、名前、電話番号、および通話ごとの売上で構成されます。

ArrowRawData

この記事では、エージェント名と各エージェントによって生成された総収益でデータをグループ化します。

ArrowOutput

ロジックの説明

必要な計算とデータのグループ化を実行する「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]までご連絡ください