Excel で 3 つの範囲のすべての組み合わせを昇順で入力します

Excel で 3 つの範囲のすべての組み合わせを昇順で入力します

3 つの範囲があり、Excel ですべての組み合わせを昇順で入力したいと考えています。範囲は次のとおりです。

  1. パワー: 2~30 (1ずつ増加)
  2. ON時間: 100~10000 (100ずつ増加)
  3. OFF時間: 100~10000 (100ずつ増加)

これにより、3 列の 29 × 100 × 100 = 290,000 行が生成されます。

出力は次のようになります。

--------------------------------------------
| 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の使い方がわからない場合:

  1. Excelを開いてALT+F11VBAエディタを開く
  2. 上記のマクロを貼り付けて実行しますF5

アクティブ シートの列 A、B、C のすべての可能な組み合わせが記入されます。
ちなみに、行 1 から始まる行数は 290,000 です :)

関連情報