使用 Excel 按升序填充三个范围的每一个组合

使用 Excel 按升序填充三个范围的每一个组合

我有三个范围,我想用 Excel 按升序填充每个组合。范围是:

  1. 功率:2-30(以 1 为增量)
  2. 开启时间:100-10000(以100为增量)
  3. 关闭时间: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()-1ROW()-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:

  1. 打开 Excel 并按ALT+F11打开 VBA 编辑器
  2. 粘贴上面的宏并运行它F5

它将填充活动工作表中 A、B 和 C 列中的所有可能组合。
顺便说一下,从第 1 行开始,共有 290,000 行 :)

相关内容