Raggruppamento dei dati che utilizzano VBA in Microsoft Excel
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.
In questo articolo, vogliamo raggruppare i dati per nome dell’agente e le entrate totali generate da ogni agente.
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]