
У меня есть три диапазона, и я хотел бы заполнить каждую комбинацию в порядке возрастания с помощью Excel. Диапазоны следующие:
- Мощность: 2-30 (увеличение на 1)
- Время включения: 100-10000 (увеличение на 100)
- Время выключения: 100-10000 (с шагом 100)
Это должно дать мне 29 × 100 × 100 = 290 000 строк с 3 столбцами.
Вывод должен выглядеть следующим образом:
--------------------------------------------
| Power (W) | On Time (ms) | Off Time (ms) |
--------------------------------------------
| 2 | 100 | 100 |
--------------------------------------------
| 2 | 100 | 200 |
--------------------------------------------
| 2 | 100 | 300 |
--------------------------------------------
| 2 | 100 | 400 |
--------------------------------------------
etc..
Как мне этого добиться?
решение1
Первую строку можно задать следующим образом:
A1
:=INT((ROW()-2)/10000)+2
B1
:=(MOD(INT((ROW()-2)/100),100)+1)*100
C1
:=(MOD((ROW()-2),100)+1)*100
и перетащите/заполните вниз нужное количество строк. Если у вас есть фактическая строка заголовка, измените все вхождения ROW()-1
на ROW()-2
.
решение2
Вот решение VBA. Протестировано и работает в 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
Если вы не знаете, как использовать VBA:
- Откройте Excel и нажмитеALT+F11чтобы открыть редактор VBA
- Вставьте макрос выше и запустите его с помощьюF5
Он заполнит все возможные комбинации в столбцах A, B и C вашего активного листа.
Кстати, это 290.000 строк, начиная со строки 1 :)