Invertir matrices

Hola a todos. Recientemente he tenido problemas para invertir una matriz de 95x95 y tengo la impresión de que se debe unicamente a su tamaño. ¿Puedo evitar la limitación de tamaño de algún modo o tengo que recurrir a una rutina en una macro? Si así fuese ¿alguien tiene dicha rutina disponible? Gracias!

1 Respuesta

Respuesta
1
Tienes razón estuve probando la función de transponer que viene con el excel y no invierte matrices de 95x95 arroja puros ceros, sin importar la memoria que tengas, esto parece ser un error de programación de la gente de microsoft. Pero esto se puede remediar con una macro aquí está: (Nota: esta macro funciona con cualquier tipo de matriz, esto se refiere a las que no sean cuadradas, los límites del programa los puedes cambiar a gusto, cambiando los rangos de selección, espero que sepas apreciar este trabajo debido a que hay otros usuarios que no lo hacen)
Sub matriztranspuesta()
Dim topCol As Range, bottomCol As Range, _
Fuente As Range, Destino As Range, _
toprow As Range, bottomrow As Range
Dim i As Integer, columna As Integer, _
filas As Integer, j As Integer
'Selección de filas
Set toprow = Range("$A$1")
Set bottomrow = Range("$A$256").End(xlUp)
Set numrow = Range(toprow, bottomrow)
numofRows = numrow.Rows.Count
'Selección de columnas
Set topCol = Range("$A$1")
Set bottomCol = Range("$A$1").End(xlToRight)
Set numcol = Range(topCol, bottomCol)
numofcol = numcol.Columns.Count
'Selección de Rangos
Set Fuente = Worksheets("Hoja1").Range("$A$1:$DF$110")
Set Destino = Worksheets("Hoja3").Range("$A$1:$DF$110")
'Rutina de copiado
For j = 1 To numofRows
For i = 1 To numofcol
Destino(i, j) = Fuente(j, i)
Next
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas