In diesem Artikel erstellen wir ein Makro, um Daten für bestimmte Bedingungen zu gruppieren.

Rohdaten bestehen aus Daten des Business Development-Teams. Es besteht aus Name, Telefonnummer und Umsatz pro Anruf.

ArrowRawData

In diesem Artikel möchten wir Daten nach Agentennamen und dem von jedem Agenten generierten Gesamtumsatz gruppieren.

ArrowOutput

Logische Erklärung

Wir haben das Makro „DataGrouping“ erstellt, das die erforderliche Berechnung und Gruppierung der Daten durchführt. Es gibt einen eindeutigen Agentennamen und den von jedem Agenten generierten Gesamtumsatz an.

Code Erklärung

LngLastRow = Cells (Rows.Count, 1) .End (xlUp) .Row Der obige Code wird verwendet, um die Zeilennummer der letzten Zelle abzurufen.

Während keine Zellen (i, 1) .Value = „“

Wend Der obige Code wird verwendet, um eine Schleife zu erstellen, bis eine leere Zelle gefunden wird.

For LngRow = LngLastRow To (i + 1) Schritt -1 Next LngRow Die obige For-Schleife wird für die Rückwärtsschleife verwendet, beginnend mit der letzten Zeile, um die erste Zeile anzugeben.

Rng.Offset (0, 2) .Value = Rng.Offset (0, 2) .Value + Cells (LngRow, 3) .Value Der obige Code wird verwendet, um die Werte basierend auf den angegebenen Kriterien zusammenzufassen.

Zeilen (LngRow). Löschen Der obige Code wird zum Löschen der Zeile verwendet.

Bitte folgen Sie unten für den Code

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

Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]