La agrupación de datos utilizando Microsoft Excel VBA en
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.
En este artículo, queremos agrupar los datos por nombre de agente y los ingresos totales generados por cada agente.
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]