Cómo crear una columna con X número de filas, dado que una celda tiene el valor de X en Excel

Si desea una tabla que pueda reducirse o crecer con los números 1 a n, puede usar una tabla dinámica muy simple.

Si B7 y esta tabla de crecimiento / contracción están en “Hoja1”, cree otra hoja llamada “Hoja2”.

Digamos que el valor máximo de B7 será 1000. Luego, en “Hoja2”: en la celda A1 escriba “Números”, en la Celda A2 escriba 1 y en la Celda A3 escriba 2. Seleccione A2: A3, arrástrelo hacia abajo hasta llegar a un 1000

Presione Ctrl + F3 para acceder al administrador de nombres y haga clic en “Nuevo”, llámelo “Números” y la fórmula debería ser = Sheet2! $ A $ 1: OFFSET (Sheet2! $ A $ 1, Sheet1! $ B $ 7,). Ahora hemos creado un rango con nombre para usarlo como sus datos de origen para la tabla dinámica.

Regrese a “Hoja1” y cree una tabla dinámica (vaya a la pestaña “Insertar” de la cinta), use “Números” como datos de origen y elija dónde desea colocar la tabla dinámica. Por último, en el panel de la tabla dinámica en el lado derecho de la pantalla, arrastre el nombre de la columna “Números” en el cuadro “Fila”. Esto debería hacerlo. Para deshacerse de la “fila de gran total” en la parte inferior, seleccione una celda en la tabla dinámica, haga clic en Herramientas / Diseño de tabla dinámica en la cinta, haga clic en “Totales generales” y luego apáguelo.

Si escribe un nuevo número en B7, tendrá que actualizar la tabla dinámica para que funcione.

Alguien probablemente podría mejorar esto con una consulta poderosa para crear una tabla adecuada.

Puede usar una macro para llenar automáticamente las celdas debajo de A10 con los enteros 1 a n, donde n es el valor en B7. Dicha macro debe colocarse en el panel de código de la hoja de trabajo. Haga clic derecho en la pestaña de la hoja y elija Ver código … para ir a ese panel de código.

Tal como está escrito, la macro no responderá si la celda B7 contiene una fórmula que se actualiza.

‘Este código debe instalarse en el panel de códigos de la hoja de trabajo que se está viendo. ¡No funcionará si se instala en otro lugar!
‘El código vigila los cambios introducidos por el usuario en el valor de B7. _ _
Si es numérico, la columna de celdas que comienza en A10 se borra y se reemplaza por los números 1 a través del valor de B7
Private Sub Worksheet_Change (Por valor de objetivo como rango)
Dim cel As Range, rg As Range, targ As Range
Establecer targ = Me.Range (“A10”)
Establecer cel = Me.Range (“B7”)

Si no se cruza (Target, cel) no hay nada entonces
Establezca rg = Range (targ, Me.Cells (Me.Rows.Count, targ.Column) .End (xlUp))
If IsNumeric (cel.Text) Entonces
Application.EnableEvents = False
Si targ.Row = rg.Row Entonces rg.ClearContents
Establezca rg = targ.Resize (Val (cel.Text), 1)
rg.Formula = “= ROW () -” & targ.Row & “+1”
rg.Formula = rg.Value
Application.EnableEvents = True
Terminara si
Terminara si
Sub final

Aquí hay una manera simple:

En la celda A10, ingrese esta fórmula:

= SI (B7> = 1,1, “”)

En la celda A11, ingrese esta fórmula:

= SI (A10 = “”, “”, SI (A10> = $ B $ 7, “”, A10 + 1))

Copie la celda A11 hacia abajo todo lo que espera necesitar.

Resultado:
Las celdas A11 e inferiores se completan como usted describió, y las celdas debajo de ellas devuelven una cadena vacía (“”), por lo que se ven en blanco.