Necesito mantener el orden de los datos. Entonces, para explicar, necesito mover los datos de la celda
a1 a b1,
a2 a c1,
a3 a d1,
a4 a e1,
a5 a f1,
a6 a g1,
a7 a h1,
a8 a i1,
a9 a B2
a10 a C2
a11 a D2
a12 a E2
a13 a F2
a14 a G2
a15 a H2
a16 a I2
Enjuague y repita hasta que haya revisado todas las 24000 entradas en la columna A
¿Ciertamente hay una manera fácil de lograr esto a través de macro o vba? ¿Tal vez una característica en las versiones más recientes ya podría hacer esto?
microsoft-excel
macros
vba
Ralph
fuente
fuente
Respuestas:
Aquí hay una solución VBA:
fuente
Aquí hay una solución. Se supone lo siguiente:
Fórmula: en
=INDIRECT(CONCATENATE("a",$B2*8 + col_offset))
donde col_offset es el número de columna (indexado a cero). Entonces en la primera columna sería=INDIRECT(CONCATENATE("a",$B2*8))
y en la octava columna sería=INDIRECT(CONCATENATE("a",$B2*8+7))
.Una imagen para aclarar las cosas:
Editar: Nueva fórmula:
=INDIRECT(CONCATENATE("a",(ROW()-2)*8+(COLUMN()-3)))
donde el-2
y-3
son los desplazamientos de fila y columna. Simplemente pegue esto en todas las celdas donde desea que se muestren sus datos. (esta solución es mejor porque la columna B ahora se puede eliminar)fuente
Las respuestas de VBA son las mejores para manejar una gran cantidad de datos, pero señalaré que también puede hacerlo a través de copiar / pegar usando "Transponer". Es una solución fácil de hacer clic con el botón derecho para pequeñas necesidades. Esto se aplica a 2010 con seguridad y creo que 2007 también.
Parece que tampoco puedo hacer imágenes todavía ...
Más rápido en algunas circunstancias.
fuente