In questo articolo creeremo una macro per raggruppare i dati per conto di determinate condizioni.

I dati grezzi sono costituiti dai dati del team di sviluppo aziendale. Consiste in nome, numero di telefono e vendite per chiamata.

ArrowRawData

In questo articolo, vogliamo raggruppare i dati per nome dell’agente e le entrate totali generate da ogni agente.

ArrowOutput

Spiegazione logica

Abbiamo creato la macro “DataGrouping”, che esegue il calcolo richiesto e raggruppa i dati. Fornisce un nome agente univoco e le entrate totali generate da ogni agente.

Spiegazione del codice

LngLastRow = Cells (Rows.Count, 1) .End (xlUp) .Row Il codice sopra viene utilizzato per ottenere il numero di riga dell’ultima cella.

Pur non essendo celle (i, 1) .Value = “”

Wend Il codice precedente viene utilizzato per eseguire il ciclo finché non viene rilevata una cella vuota.

For LngRow = LngLastRow To (i + 1) Step -1 Next LngRow Il ciclo For sopra viene utilizzato per il ciclo inverso, a partire dall’ultima riga per specificare la prima riga.

Rng.Offset (0, 2) .Value = Rng.Offset (0, 2) .Value + Cells (LngRow, 3) .Value Il codice sopra viene utilizzato per riassumere i valori in base ai criteri specificati.

Rows (LngRow) .Delete Il codice precedente viene utilizzato per eliminare la riga.

Segui sotto per il codice

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

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]