Ante todo, muchas gracias por vuestra página Web, que me ha permitido avanzar bastante en el fascinante mundo de la programación VBA, pero no lo suficiente, ya que no fui capaz de resolverla esta duda que les envío a continuación:
Tengo una serie de datos de diferentes respuestas, agrupados por columnas (a partir de la D) y quisiera obtener sus modas, es decir el valor que más se repite, en función de que la clase a la que pertenecen, la cual la tengo definida en la columna D.
[TABLE]
[TR]
[TD]Columna
[/TD]
[TD] D
[/TD]
[TD]E
[/TD]
[TD]F
[/TD]
[TD]G
[/TD]
[TD]H
[/TD]
[TD]I
[/TD]
[TD]J
[/TD]
[TD]K
[/TD]
[TD]L
[/TD]
[/TR]
[TR]
[TD]Dato Fila 2
[/TD]
[TD]OP_1
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[/TR]
[TR]
[TD]Dato Fila 3
[/TD]
[TD]OP_2
[/TD]
[TD]B
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]C
[/TD]
[TD]D
[/TD]
[/TR]
[TR]
[TD]Dato Fila 4
[/TD]
[TD]OP_2
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]D
[/TD]
[TD]B
[/TD]
[TD]D
[/TD]
[TD][/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[/TR]
[TR]
[TD]Dato Fila 5
[/TD]
[TD]OP_1
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Dato Fila 6
[/TD]
[TD]OP_1
[/TD]
[TD]B
[/TD]
[TD]C
[/TD]
[TD]C
[/TD]
[TD]C
[/TD]
[TD]C
[/TD]
[TD]B
[/TD]
[TD]C
[/TD]
[TD]D
[/TD]
[/TR]
[TR]
[TD]Dato Fila 7
[/TD]
[TD]OP_1
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]B
[/TD]
[TD]B
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[/TR]
[TR]
[TD]Dato Fila n
[/TD]
[TD]OP_2
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]D
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[/TR]
[TR]
[TD]Resultado
esperado
[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Moda OP_1
[/TD]
[TD][/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[/TR]
[TR]
[TD]Moda OP_2
[/TD]
[TD][/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]D
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[/TR]
[/TABLE]
Lo que busco es una función ModeIFs similar a CountIfs que he creado para contar los datos dentro de un bucle, que les adjunto a continuación, pero no he encontrado nada parecido:
Dim VOPTC As Range
Dim VLIST As Range
Set VOPTC = Worksheets("Datos").Range("D:D")
Set VLIST = Worksheets("Datos").Range("D:D").Offset(0, i)
' Resultado en la variable SA, SB....etc
For i = 1 To 25 Step 1
SA = Application.WorksheetFunction.CountIfs(VLIST, "=A", VOPTC, "=OP_1")
Worksheets("Estadisticas").Cells(8, i + 1).Value = SA
SB = Application.WorksheetFunction.CountIfs(VLIST, "=A", VOPTC, "=OP_2")
Worksheets("Estadisticas").Cells(9, i + 1).Value = SB
Next
[/CODE]
Muchas gracias por vuestro aporte,
Cordialmente,
E. Cabaleiro (Peperoni)
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Buenas tardes,
Ante todo, muchas gracias por vuestra página Web, que me ha permitido avanzar bastante en el fascinante mundo de la programación VBA, pero no lo suficiente, ya que no fui capaz de resolverla esta duda que les envío a continuación:
Tengo una serie de datos de diferentes respuestas, agrupados por columnas (a partir de la D) y quisiera obtener sus modas, es decir el valor que más se repite, en función de que la clase a la que pertenecen, la cual la tengo definida en la columna D.
[TABLE]
[TR]
[TD]Columna
[/TD]
[TD] D
[/TD]
[TD]E
[/TD]
[TD]F
[/TD]
[TD]G
[/TD]
[TD]H
[/TD]
[TD]I
[/TD]
[TD]J
[/TD]
[TD]K
[/TD]
[TD]L
[/TD]
[/TR]
[TR]
[TD]Dato Fila 2
[/TD]
[TD]OP_1
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[/TR]
[TR]
[TD]Dato Fila 3
[/TD]
[TD]OP_2
[/TD]
[TD]B
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]C
[/TD]
[TD]D
[/TD]
[/TR]
[TR]
[TD]Dato Fila 4
[/TD]
[TD]OP_2
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]D
[/TD]
[TD]B
[/TD]
[TD]D
[/TD]
[TD][/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[/TR]
[TR]
[TD]Dato Fila 5
[/TD]
[TD]OP_1
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Dato Fila 6
[/TD]
[TD]OP_1
[/TD]
[TD]B
[/TD]
[TD]C
[/TD]
[TD]C
[/TD]
[TD]C
[/TD]
[TD]C
[/TD]
[TD]B
[/TD]
[TD]C
[/TD]
[TD]D
[/TD]
[/TR]
[TR]
[TD]Dato Fila 7
[/TD]
[TD]OP_1
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]B
[/TD]
[TD]B
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[/TR]
[TR]
[TD]Dato Fila n
[/TD]
[TD]OP_2
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]D
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[/TR]
[TR]
[TD]Resultado
esperado
[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Moda OP_1
[/TD]
[TD][/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[TD]A
[/TD]
[/TR]
[TR]
[TD]Moda OP_2
[/TD]
[TD][/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]D
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]B
[/TD]
[TD]A
[/TD]
[TD]C
[/TD]
[/TR]
[/TABLE]
Lo que busco es una función ModeIFs similar a CountIfs que he creado para contar los datos dentro de un bucle, que les adjunto a continuación, pero no he encontrado nada parecido:
Muchas gracias por vuestro aporte,
Cordialmente,
E. Cabaleiro (Peperoni)