Skip to content

Instantly share code, notes, and snippets.

@naranjja
Last active January 25, 2016 22:23
Show Gist options
  • Save naranjja/927744ca897df7b8f4d3 to your computer and use it in GitHub Desktop.
Save naranjja/927744ca897df7b8f4d3 to your computer and use it in GitHub Desktop.
Sub pregunta2A()
Set basedata = Workbooks("pwt80").Sheets(3)
Set output = Workbooks("T01").Sheets(1)
Min = 1
Max = 10624
decada = output.[c5]
'recorrer todo el tamano de la tabla
For i = Min To Max
'si roundDown(ano/10,0)*10 = decada y la columna F no esta vacia, entonces...
If (RoundDown((basedata.[d1].Offset(i, 0)) / 10, 0) * 10 = decada) And (basedata.[f1].Offset(i, 0) <> 0) Then
'ejemplo: 1973/10 = 197.3, rounddown(197.3,0) = 197, 197*10 = 1970 .:. 1973 pertenece a la decada de 1970
'almacenar el valor del GDP per capita en la columna AN
basedata.[an1].Offset(i, 0).Value = basedata.[f1].Offset(i, 0) / basedata.[g1].Offset(i, 0)
End If
Next i
'''' Algoritmo Bubble Sort ''''
'esto sirve para ordenar un vector de manera descendiente
'del principio al final-1
For i = Min To Max - 1
'del principio+1 al final
For j = i + 1 To Max
'si el GDP per capita de i es mayor al siguiente, entonces...
If basedata.[an1].Offset(i, 0) > basedata.[an1].Offset(j, 0) Then
'almacenar temporalmente el valor mayor
temp = basedata.[an1].Offset(i, 0)
'reemplazar el valor mayor por el valor siguiente (que es menor)
basedata.[an1].Offset(i, 0).Value = basedata.[an1].Offset(j, 0)
'tomar nota del pais correspondiente
basedata.[ao1].Offset(i, 0).Value = basedata.[a1].Offset(i, 0)
'reemplazar el valor menor por el valor mayor
basedata.[an1].Offset(j, 0).Value = temp
'tomar nota del pais correspondiente
basedata.[ao1].Offset(j, 0).Value = basedata.[a1].Offset(j, 0)
End If
Next j
Next i
'declarar un contador en 1 para escribir en una nueva columna sin dejar espacios
h = 1
'recorrer todo el tamano de la tabla
For i = Min To Max
'cada 10 tuplas...
For j = 1 To 10
'acumular los datos del GDP per capita
acumulador = acumulador + basedata.[an1].Offset(i, 0)
Next j
'almacenar el promedio del GDP per capita para ese pais en la columna AP
basedata.[ap1].Offset(h, 0).Value = acumulador / 10
'almacenar el nombre del pais en la columna AQ
basedata.[aq1].Offset(h, 0).Value = basedata.[ao1].Offset(i, 0)
'la columna AQ tiene que aumentar de 1 en 1
h = h + 1
'cada 10 tuplas hay un nuevo pais
i = i + 10
Next i
'iterar 10 veces...
For i = 1 To 10
'escribir en T01, C10 y adelante los valores del 1 al 10
output.[c9].Offset(i, 0).Value = basedata.[aq1].Offset(i, 0)
'escribir en T01, D10 y adelante los valores del 1052 al 1062
output.[d9].Offset(i, 0).Value = basedata.[aq1].Offset(i + 1051, 0)
Next i
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment