我有三个范围,我想用 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 列中的所有可能组合。
顺便说一下,从第 1 行开始,共有 290,000 行 :)