martes, 10 de noviembre de 2015

Transponiendo datos con TRANSPONER Y DESREF

Un caso muy habitual es que al descargarnos información de sitios webs, los datos aparecen listados en lugar de en formato tablas.
Un lector preguntaba por la forma de conseguirlo en su caso concreto:
...He leído en el foro como usar TRANSPONER usando DESREF e INDIRECTO, mas no he logrado aplicarlo.

Mi ejemplo (adjunto) se explica así:

Al descargar información de una pagína web a excel (en cualquier versión) la descarga se ejecuta en una sola columna en rangos del mismo tamaño (10) separados por una celda (rango total del ejemplo A3:A45)....


Veamos los datos...

Transponiendo datos con TRANSPONER Y DESREF



Observamos como la situación de los datos responde, tal y como indicaba el lector, a una regla fija.. valores tomados de 10 en 10, separados por una fila sin datos...
Nótese que cada grupo de valores a transponer se encuentra a partir de la fila 3 y siguientes sumadas + 11, esto es 3, 14, 25, 36, 47, etc.


Montamos el rango a trabajar en las celdas M3:V3 e insertamos la siguiente matricial:
=TRANSPONER(DESREF(INDIRECTO("A"&L3);0;0;10;1))


OJO, por que me he apoyado en los número de filas 3, 14, 25, 36, 47, etc. que había determinado como comienzo de los tramos a trasponer.. consiguiendo la celda Ancla con la función INDIRECTO:
INDIRECTO("A"&L3)
que nos devuelve, precisamente, cada celda inicial de cada grupo de valores.


Al ser grupos de 10 valores colocados en una misma columna, la función DESREF se monta de manera directa:
DESREF(celda_inicio;0;0;10;1)
fórmula que nos devuelve el conjunto de datos de cada tramo.


Finalizamos nuestra fórmula con TRANSPONER que convierte en filas lo que antes era columna...

Acabaríamos copiando y pegando el rango generado para el resto de filas...

2 comentarios:

  1. Hay que poner celda relativa a la celda L3? para empezar arrastrar la formula en los demás celda

    ResponderEliminar
    Respuestas
    1. Hola Luis Enrique,
      que tal estás? un placer saludarte igualmente.

      Efectivamente, tal cual se expone en el ejemplo

      Un cordial saludo

      Eliminar