Transponer

Quiero hacer lo siguiente y necesito tu ayuda:
Tengo una hilera de valores que empieza en la A776 y termina en la CX776
(Es una hilera con totales y esta en forma horizontal como te habrás dado cuenta)
Lo que quiero hacer es pegar estos valores en forma vertical en otra hoja
pero no solo eso sino que quede el vinculo para que cuando cambien los
valores de mis totales (afectados por los valores de los renglones de arriba)
También cambien en mi hoja donde pegue estos.
He tratado de hacer un pegado especial y solo me deja hacer una de las dos cosas a la vez; o pego el vinculo o transpongo los datos para que aparezcan
en forma vertical.
Lo que pretendía hacer es pegado especial, pegar vínculos y una
vez que ya están en la otra hoja poner los fijos a las referencias de
celdas y después trasponerlos, pero como veras son bastantes celdas
como para hacerlo uno por uno, así que ahí te van mis preguntas:
1.- Como hacer para quitar los fijos al mismo tiempo a una gran cantidad de celdas.
2.- Como hago eso de pegar vinculo y transponer al mismo tiempo
O si sabes alguna manera de hacerlo te agradecería me ayudaras.
Respuesta
2
Para transponer y vincular tienes que utilizar una alternativa que ofrece Excel. Se trata de una "fórmula matricial".
Debes seguir los siguientes pasos:
1 Selecciona el rango donde debería estar la nueva hilera de resultados. (Por ejemplo, en otra hoja, A1:A102).
2 Escribe en la primera casilla (sin quitar la selección: para ello al seleccionar el rango debes hacerlo en nuestro ejemplo desde A1, quedando así A1 como la celda en que se escribirá) la siguiente fórmula: =transponer(a776:cx776)
3 En lugar de cerrar la fórmula pulsando Enter, debes pulsar CTRL+MAYÚSC+Enter.
¡Ya está! Las celdas han quedado vinculadas por una matriz transpuesta.
Lo que dices de los fijos (que entiendo que son referencias absolutas) ya no lo necesitas.
Espero haberte ayudado.
Un saludo,

3 respuestas más de otros expertos

Respuesta
1
Afortunadamente, aunque oculta, MS Excel proporciona una forma de hacer exactamente lo que quieres en un solo paso.
Para lograrlo, necesitarás una fórmula aplicada como matriz, es decir una fórmula matricial (Array Fórmula o CSE fórmula)
Este tipo de fórmulas se ingresa tipeándola y presionando luego Ctrl+Shift+Enter. Un par de corchetes se agregarán automáticamente, encerrando la fórmula.
Si mis estudios de Contador no fueron en vano, entre la columna "A" y la "CX" hay 102 columnas. Entonces selecciona el rango en la hoja de destino, verticalmente de 102 celdas y escribe:
=TRANSPONER('Hoja 1'!A776:CX776)
y presiona Ctrl+Shift+Enter. NO solo ENTER.
Las 102 celdas se llenaran con su correspondiente valor y, adicionalmente, se actualizará cada vez que cambien los valores en las celdas originales.
Esto debería resolver tu pregunta. Si así fuera, ya sabes qué hacer...;)
Un abrazo!
Fernando
Respuesta
1
Bien, como muy bien dices no se puede Transponer y Pegar vínculos a la vez (podrías crear una macro que lo hiciera por ti, sin saber visual basic podrías conseguirlo si copiaras de una en una las celdas y las pegaras como vínculos... Ya se, es un arduo trabajo pero luego podrías llevarlo a cabo con solo ejecutar la macro. Por cierto existe la posibilidad de crear vínculos sin necesidad de usar el Pegado especial. Basta que en la celda de destino escribas el signo = y luego señales la Hoja donde esta el valor y la celda origen, veras como el vinculo queda escrito en la barra de fórmulas, tan solo queda usar el INTRO, no uses el ratón para terminar la fórmula. Si quieres probar a vincular y transponer con visual basic ya me dirás cosas. En cuanto a quitar el fijo, en principio basta seleccionar las celdas donde desees eliminar el signo del $, usa CTRL+L para activar reemplazar, escribe el signo del $ en buscar y nada de nada en reemplazar, luego Reemplazar todos y ... Ya está! En fin, si no te convencen las respuestas no dudes en pedir más ayuda.
Respuesta
1
Como bien dices al trasponer rompe el vínculo, entonces esto se resuelve moviendo el contenido de las celdas en forma vertical.
Para esto te paso una macro
***********************
Sub TraspoVinculo()
Selection.Copy
Sheets("Hoja2").Select 'si la hoja tiene nombre indicarlo
Range("A1").Select 'colocar la dirección de inicio para pegar
ActiveSheet.Paste Link:=True
Sheets("Hoja1").Select 'si la hoja tiene nombre indicarlo
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Do While Not IsEmpty(ActiveCell)
Selection.Copy
Sheets("Hoja2").Select 'si la hoja tiene nombre indicarlo
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste Link:=True
Sheets("Hoja1").Select 'si la hoja tiene nombre indicarlo
ActiveCell.Offset(0, 1).Range("A1").Select
Loop
Application.CutCopyMode = False
End Sub
************************
Para comenzar tienes que estar parado en A776, dentro de la macro verás aclaraciones que tienes que modificar dependiendo del lugar donde quieras comenzar a pegar vinculando, en mi ejemplo es Hoja2 en A1, y además tienes que tener en cuenta si esas hojas tienen nombre, indicarlo en el lugar que corresponde.
Prueba y me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas