
Tengo una hoja de horas que estoy ayudando a crear, extrae datos de la hoja 1 y los agrega a una lista en la hoja 2. Los datos deben hacer referencia a la hoja 1 en A42, luego A73, A115, A146, A188, etc. , siguiendo un patrón de espaciado de 42, luego 31, luego 42, luego 31; 100 casos de esto. ¿Cómo puedo hacer referencia a los datos de esta manera?
Respuesta1
Como parece que hay un patrón constante con las celdas de la Hoja1 a las que necesita hacer referencia, es solo cuestión de construir una fórmula para producir el número de fila correcto de la Hoja1 en función del número de fila de la Hoja2. Es bastante fácil producir la fórmula de referencia usando algunas de las funciones ROW()
, ISEVEN()
o ISODD()
, MOD()
y FLOOR()
.
número de fila de la Hoja1 =31*FLOOR((ROW())/2;1)+42*FLOOR((ROW()+1)/2;1)
Del número de fila a la fórmula real con INDEX()
función:
=INDEX(Sheet1!A:A;30*FLOOR(ROW()/2;1)+41*FLOOR((ROW()-1)/2;1)+42;1)
(en la fórmula, obviamente necesita modificar el rango del primer parámetro para que se ajuste a sus datos de origen, y el número en el último parámetro que indica el número de la columna en el rango).
Como el número de fila de la Hoja2 es un factor principal para obtener la fila correcta en la Hoja1, lo anterior funciona solo cuando los datos de origen en la Hoja1 comienzan en la fila 42 y los datos de resultado en la Hoja2 comienzan en la fila 1. Si eso cambia, podría Por supuesto, reste el desplazamiento de fila en la fórmula para cada llamada a ROW()
(para el desplazamiento en la Hoja2) y/o sume/reste al número de fila resultante (para el cambio de desplazamiento en la Hoja1).
Respuesta2
A continuación se muestra un ejemplo de cómo podría hacerlo con fórmulas:
Estoy usando la columna A para ilustrar el patrón que produce la esencia de la fórmula. Esto comienza en la fila 2 ya que la fila 1 probablemente contendrá títulos. Esto sería en la hoja 2 donde desea crear una lista de elementos seleccionados de la hoja 1. La fórmula en A2 que calcula los números de fila de destino es:
=INT(ROW()/2)*42+INT((ROW()-1)/2)*31
La siguiente captura de pantalla ilustra cómo usarías eso para extraer una celda de la otra hoja:
Pegué algo para copiar solo en la celda A42, razón por la cual solo se completa una celda en la columna B. La fórmula usa la función INDIRECTA para construir una referencia de celda. La fórmula en B2 es:
=INDIRECT("sheet1!A" & INT(ROW()/2)*42+INT((ROW()-1)/2)*31)
La celda A42 de la hoja 1 contiene ABC
.