Tengo una tabla creada a través de un map XML, por lo que tiene muchas celdas en blanco en cada columna. Parece que:
| Name | Stat 1 | Stat 2 | Stat 3| | Test | | | | | | Four | | | | | | 5 | | | | | | 102 |
Básicamente, cada fila tiene solo un valor y estoy tratando de transponerlo a otra hoja de trabajo donde todos los valores son una fila como esta:
| Name | Stat 1 | Stat 2 | Stat 3 | | Test | Four | 5 | 102 |
En mi búsqueda encontré esta fórmula:
=IFERROR(INDEX(Table9[@name],SMALL(IF(Table9[@name]<>"",ROW(Table9[@name])-ROW(Table9[@name])+1),ROWS(A2))),"")
Lo configuro y en A1 de otra hoja, lo arrastro hacia abajo y devuelve las celdas pobladas, pero también devuelve 0
para todas las celdas en blanco en lugar de omitirlas hasta que tenga un valor que devolver.
Puede haber una mejor manera de hacerlo, así que estoy abierto a otras opciones, pero preferiría evitar vba si es posible.
Gracias.
Digamos que la hoja de input se llama Sheet1
y el Name
está en la celda A1 en ambas hojas. Luego use la siguiente fórmula para Name
en la hoja de salida:
=INDEX(Sheet1!A:A,(ROW()-2)*4+2)
y para Stat 1
:
=INDEX(Sheet1!B:B,(ROW()-2)*4+3)
y así sucesivamente … más en general:
=INDEX( input_column_range, (ROW()-first_row_in_output)*number_of_columns + first_row_in_input+column_index )