
Tengo tres rangos y me gustaría completar cada combinación en orden ascendente con Excel. Los rangos son:
- Potencia: 2-30 (incremento en 1)
- Tiempo de encendido: 100-10000 (incremento en 100)
- Tiempo APAGADO: 100-10000 (incremento en 100)
Esto debería darme 29 × 100 × 100 = 290.000 filas con 3 columnas.
El resultado debería verse como el siguiente:
--------------------------------------------
| Power (W) | On Time (ms) | Off Time (ms) |
--------------------------------------------
| 2 | 100 | 100 |
--------------------------------------------
| 2 | 100 | 200 |
--------------------------------------------
| 2 | 100 | 300 |
--------------------------------------------
| 2 | 100 | 400 |
--------------------------------------------
etc..
¿Cómo puedo conseguir esto?
Respuesta1
Podrías configurar la primera fila de la siguiente manera:
A1
:=INT((ROW()-2)/10000)+2
B1
:=(MOD(INT((ROW()-2)/100),100)+1)*100
C1
:=(MOD((ROW()-2),100)+1)*100
y arrastre/rellene el número deseado de filas. Si tiene una fila de encabezado real, cambie todas las apariciones de ROW()-1
a ROW()-2
.
Respuesta2
Aquí hay una solución VBA. Probado y funcionando en Office 2013
Sub FillCombinations()
For intPower = 2 To 30
For intOn = 100 To 10000 Step 100
For intOff = 100 To 10000 Step 100
intRow = intRow + 1
Cells(intRow, 1) = intPower
Cells(intRow, 2) = intOn
Cells(intRow, 3) = intOff
Next intOff
Next intOn
Next intPower
End Sub
Si no sabes cómo usar VBA:
- Abra Excel y presioneALT+F11para abrir el editor VBA
- Pegue la macro de arriba y ejecútela conF5
Completará todas las combinaciones posibles en las columnas A, B y C de su hoja activa.
Por cierto. son 290.000 filas comenzando en la fila 1 :)