En este artículo, crearemos una macro para agrupar datos en nombre de ciertas condiciones.

Los datos brutos consisten en datos del equipo de desarrollo empresarial. Consta de Nombre, Número de teléfono y Ventas por llamada.

ArrowRawData

En este artículo, queremos agrupar los datos por nombre de agente y los ingresos totales generados por cada agente.

ArrowOutput

Explicación lógica

Hemos creado la macro «DataGrouping», que realiza el cálculo requerido y agrupa los datos. Da un nombre de agente único y los ingresos totales generados por cada agente.

Explicación del código

LngLastRow = Cells (Rows.Count, 1) .End (xlUp) .Row El código anterior se usa para obtener el número de fila de la última celda.

Mientras que no son celdas (i, 1) .Value = «»

Wend El código anterior se usa para recorrer hasta que se encuentra una celda en blanco.

For LngRow = LngLastRow To (i + 1) Paso -1 Siguiente LngRow El bucle For anterior se utiliza para el bucle inverso, comenzando desde la última fila para especificar la primera fila.

Rng.Offset (0, 2) .Value = Rng.Offset (0, 2) .Value + Cells (LngRow, 3) .Value El código anterior se utiliza para sumar los valores según los criterios especificados.

Rows (LngRow) .Delete El código anterior se utiliza para eliminar la fila.

Siga a continuación el código

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

Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]