Saltar al contenido

Agrupar según numero de valores consecutivos


Recommended Posts

publicado

Hola a todos:

Creo que para lo que necesito, necesito una macro.

Tengo una columna con cerca de 5000 filas, donde hay números del 0 al 25. Necesito que en otra parte de la hoja u otra hoja, me da igual, me agrupe (me cuente) los datos que son superiores a 19, y que además, me los agrupe de tal forma que:

- Cada valor de cada celda, es como si fuera "1 segundo", y cada valor por encima de 19 se denomina "sprint".

- Hay veces que los datos vienen así: 4, 5, 19, 4,10... Lo que significa que en ese rango hay 1 sprint de 1 segundo.

- Hay otras veces, que los datos vienen de tal forma que: 6, 7, 19, 20, 10....lo que sería 1 sprint de 2 segundos (puesto que hay 2 numeros consecutivos por encima de 19)

- Así, necesito que me agrupe el numero de sprints de cada duración: si vienen dos numeros consecutivos por encima de 19 sera 1 sprint de 2 segundos, y si vienen 7 valores por encima de 19 consecutivos, sería un sprint de 7 segundos.

Gracias!

publicado

A ver, prueba con esta macro. Los datos deben estar en la columna A, los resultados los da en la columna B.


Sub ContarSprints()

Dim Fila, Sprints
For x = 1 To Range("A" & Rows.Count).End(xlUp).Row
Do Until Range("A" & x) > Range("A" & x + 1) Or _
Range("A" & x) = ""
If Range("A" & x) > 18 Then Sprints = Sprints + 1
x = x + 1
Loop
Fila = Fila + 1
Range("B" & Fila) = Sprints + 1
Sprints = 0
Next

End Sub


[/CODE]

publicado

Veo que macro antonio ya se me adelanto en este tema....

Pero entonces creo que mal entendi los requerimientos de Alejandro Muñoz López

el dice que quiere obtener las series de datos agrupadas que comienzan en 19 y los siguientes numeros son consecutivos, dado el siguiente ejemplo?

[TABLE=width: 80]

[TR]

[TD=width: 80, align: right]19

[/TD]

[/TR]

[TR]

[TD=align: right]20

[/TD]

[/TR]

[TR]

[TD=align: right]21

[/TD]

[/TR]

[TR]

[TD=align: right]1

[/TD]

[/TR]

[TR]

[TD=align: right]19[/TD]

[/TR]

[TR]

[TD=align: right]2

[/TD]

[/TR]

[TR]

[TD=align: right]19[/TD]

[/TR]

[TR]

[TD=align: right]100

[/TD]

[/TR]

[TR]

[TD=align: right]19[/TD]

[/TR]

[TR]

[TD=align: right]100

[/TD]

[/TR]

[/TABLE]

quedaria asi el resultado que pide?

Sprint 3 = 1

Sprint 1 = 1

Sprint 2 = 2

O de plano si entendi mal! Parti de ese razonamiento para resolver su problema!

Saludos!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.