Ayuda

28/10/2007 - 02:30 por Garabato | Informe spam
Ojalá me puedan ayudar, hasta ahora nadie puede con este problema:

Tengo 108 datos con valores entre 230 y 270, deseo dividirlos en cuatro
columnas de 27 datos cada una de tal manera que cada columna tenga el mismo
promedio o promedios casi iguales.

Saludos
Miguel
 

Leer las respuestas

#1 Ivan
28/10/2007 - 04:46 | Informe spam
hola Miguel

Tengo 108 datos con valores entre 230 y 270, deseo dividirlos en cuatro
columnas de 27 datos cada una de tal manera que cada columna tenga el mismo
promedio o promedios casi iguales.



no estoy seguro de si te refieres a algo asi, ni si es totalmente
efecivo (en mis pruebas si lo parece) pero si quieres haz una prueba
con esto, a ver que tal (es una chapuza y seguro que hay formas mas
directas de hacerlo, pero es lo que se me ha ocurrido)

.->>suponiendo que:

a) la lista la tienes en la columna A

b) quieres poner el resultado en las columnas de la C a la F,

c) los datos empiezan (y se pegan) a partir de la fila 2 incluida,

d) columna A esta ordenada en orden ascendente

e) no tienes datos en el rango IS1:IV1

._>>pega este codigo en un modulo normal y ejecutalo

Sub prueba_Promedios()
Dim fL As Integer, fP As Integer, c As Integer, cR As Integer
[c2] = [a2]: [d2] = [a3]: [e2] = [a4]: [f2] = [a5]
[is1:iv1].Clear
[is1] = [a2]: [it1] = [a3]: [iu1] = [a4]: [iv1] = [a5]
fL = 6: fP = 3
Do While fP < 29
Do
For cR = 253 To 256
If Cells(1, cR) = Application.Max([is1:iv1]) Then _
c = cR - 250: Cells(1, cR) = 0: Exit For
Next
Cells(fP, c) = Cells(fL, 1)
fL = fL + 1
Loop Until Application.Sum([is1:iv1]) = 0
For cR = 253 To 256
Cells(1, cR) = Application.Sum(Range(Cells(2, cR - 250),
Cells(fP, cR - 250)))
Next
fP = fP + 1
Loop
[is1:iv1].Clear
End Sub

ya te digo que no es muy cientifica, pero parece funcionar

espero te ayude y si quieres comentas

un saludo
Ivan

Preguntas similares