
Tenho três intervalos e gostaria de preencher cada combinação em ordem crescente com o Excel. Os intervalos são:
- Potência: 2-30 (aumentar em 1)
- Tempo ON: 100-10000 (aumentar em 100)
- Tempo OFF: 100-10000 (aumentar em 100)
Isso deve me dar 29 × 100 × 100 = 290.000 linhas com 3 colunas.
A saída deve ser semelhante a esta:
--------------------------------------------
| Power (W) | On Time (ms) | Off Time (ms) |
--------------------------------------------
| 2 | 100 | 100 |
--------------------------------------------
| 2 | 100 | 200 |
--------------------------------------------
| 2 | 100 | 300 |
--------------------------------------------
| 2 | 100 | 400 |
--------------------------------------------
etc..
Como posso conseguir isso?
Responder1
Você pode definir a primeira linha da seguinte maneira:
A1
:=INT((ROW()-2)/10000)+2
B1
:=(MOD(INT((ROW()-2)/100),100)+1)*100
C1
:=(MOD((ROW()-2),100)+1)*100
e arraste/preencha o número desejado de linhas. Se você tiver uma linha de título real, altere todas as ocorrências de ROW()-1
para ROW()-2
.
Responder2
Aqui está uma solução VBA. Testado e funcionando no 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
Se você não sabe usar VBA:
- Abra o Excel e pressioneALT+F11para abrir o editor VBA
- Cole a macro acima e execute-a comF5
Ele preencherá todas as combinações possíveis nas colunas A, B e C da sua planilha ativa.
Por falar nisso. são 290.000 linhas começando na linha 1 :)