Foros del Web » Programación para mayores de 30 ;) » Programación General »

Programacion excel 2003

Estas en el tema de Programacion excel 2003 en el foro de Programación General en Foros del Web. Buenas, Os dejo el siguiente problemilla que no soy capaz de programar. Tengo una matriz de datos numéricos de 5 columnas y 100 filas. No ...
  #1 (permalink)  
Antiguo 13/09/2013, 02:13
 
Fecha de Ingreso: septiembre-2013
Ubicación: Huelva
Mensajes: 2
Antigüedad: 10 años, 7 meses
Puntos: 0
Pregunta Programacion excel 2003

Buenas,

Os dejo el siguiente problemilla que no soy capaz de programar.

Tengo una matriz de datos numéricos de 5 columnas y 100 filas. No hay valores repetidos en la misma columna.Los números se encuentran limitados entre 1 y 50. Se trata de crear otra matriz de 50x50 en la que en el elemento (i , j) indica el número de veces que aparece el elemento j cuando en la columna anterior aparece el elemento i. Pondré el caso resumido para crear matriz de 6x6, a ver si me explico mejor:

Matriz original

1 1 3 4
2 5 2 5
3 6 4 6

matriz final
--1 2 3 4 5 6
1 1 1 1 1 1 1
2 1 0 0 1 2 2
3 1 0 0 1 2 2
4 0 0 0 1 1 1
5 0 1 1 1 0 0
6 0 1 1 1 0 0



Espero que se entienda. Gracias de antemano.

Un saludo

Última edición por tito_greven; 13/09/2013 a las 02:26
  #2 (permalink)  
Antiguo 13/09/2013, 18:53
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Programacion excel 2003

Nadie te va hacer tu trabajo. Pon lo que llevas hecho y te ayudamos con dudas puntuales.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 16/09/2013, 08:17
 
Fecha de Ingreso: septiembre-2013
Ubicación: Huelva
Mensajes: 2
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Programacion excel 2003

Buenas de nuevo,

Creo que ya lo he sacado, aunque como estoy empezando creo que el código podría quedar bastante más compacto. Os lo dejo para que me digáis posibles mejoras. Esta hecho para una matriz de 4x6, y conteniendo valores entre 1 y 6, los cuales no pueden estar repetidos en la misma columna. Para otro tamaño de matriz sólo habría que cambiar el valor límite de los contadores.

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim x As Integer
Dim r As Integer
Dim s As Integer
Dim z As Integer


For l = 1 To 6
For k = 1 To 6
Cells(k + 5, l + 2).Select
ActiveSheet.Select
For j = 2 To 6
For i = 1 To 4

x = Cells(5, l + 2).Value
y = Cells(5 + k, 2).Value
h = Cells(i, j).Value

If h = x Then
For z = 1 To 4
m = Cells(z, j - 1).Value
If m = y Then
r = 1
s = s + r
Else: r = 0
End If
Next z
End If
r = 0

Next i
Next j
ActiveCell = s
s = 0
Next k
Next l
End Sub

Gracias de antemano. Un saludo,

Etiquetas: excel, programacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:26.