varias - pasar datos de una hoja de excel a otra automaticamente
Compilando diferentes hojas de Excel SIN macro (1)
Tengo 4 hojas diferentes con datos similares, pero en diferentes formatos. Como ejemplo:
Hoja A
Date Buy-In Game Winnings
11/25/2013 $10 NFL $18
11/28/2013 $10 NBA $0
Hoja B
Sport Buy-In Date Winnings
NFL $5 11/26/2013 $9
NBA $2 11/29/2013 $3.60
Hoja C
Buy-In Game Date Winnings
$5 NFL 11/24/2013 $9
$2 NFL 11/21/2013 $3.60
Hoja D
Sport Buy-In Date Winnings
NFL $5 11/20/2013 $9
NBA $2 11/22/2013 $3.60
Quiero combinarlos en una hoja sin usar una macro. Entonces la hoja combinada se vería así:
Hoja combinada
Game Date Buy-In Winnings
NFL 11/20/2013 $5 $9
NFL 11/21/2013 $2 $3.60
NBA 11/22/2013 $2 $3.60
NFL 11/24/2013 $5 $9
NFL 11/25/2013 $10 $18
NFL 11/26/2013 $5 $9
NBA 11/28/2013 $10 $0
NBA 11/29/2013 $2 $3.60
¿Es esto factible o incluso posible?
¡Puede hacer esto usando la función INDIRECT
y una tabla de soporte!
Primero necesita construir una pequeña tabla de soporte que guarde los parámetros para cada hoja de entrada:
- En la columna B, use la siguiente fórmula para determinar el número de filas:
=COUNTA(INDIRECT("''"&A5&"''!A:A"))-1
. - Para el rango C5: F8, utilicé la fórmula
=MATCH(C$4,INDIRECT("''"&$A5&"''!1:1"),0)
- esto funcionará para todas las columnas que tienen la columna "adecuada" nombre: solo se deben ingresar C6 y C8 manualmente, ya que usaste "Deportes" en lugar de "Juego" aquí
Con base en esta tabla de soporte, puede construir su tabla de consolidación. Esto tiene dos secciones, de nuevo 3 columnas de soporte para determinar la hoja y el número de fila, y las columnas de datos:
Use las siguientes fórmulas:
- Columna H:
=IF(ISTEXT(H4),1,IF(I5=1,H4+1,H4))
Lógica: comience con 1 y aumente en 1 cada vez que la Id de la fila se restablezca a uno - de lo contrario, mantenga la ID de la hoja desde arriba - Columna I:
=IF(ISTEXT(I4),1,IF(I4=J4,1,I4+1))
Lógica: comience en 1 y aumente en 1 hasta que la ID de fila en la fila de arriba sea igual al número de filas en la sábana desde arriba. En el caso, reinicie a 1- Columna J:
=INDEX($B$5:$B$8,H5)
- obtenga el número de filas para la hoja actual de la tabla de configuración - Columna K: N:
=OFFSET(INDIRECT("''"&INDEX($A$5:$A$8,$H5)&"''!A1"),$I5,INDEX(C$5:C$8,$H5)-1)
- ¡Aquí es donde sucede la magia! ;-) Lógica: Obtenga el nombre de la hoja de la tabla config, use esto en la función INDIRECTO para recuperar la celda A1 de esa hoja. A continuación, se compensa con la Id. De fila de la columna de soporte y con la Id. De columna de esa hoja recuperada nuevamente desde la tabla de configuración.
- Columna J:
¡Vea el ejemplo implementado en este archivo !