• ベストアンサー

あるルールに従って番号を振りたい

タイトルをどのようにしたらいいのかわからず申し分けありません。 Excel2013使用しています。 VBAでお願いします。 本題ですが、     D    F 2   1    4 12   2    5 22   3    6 32   7   10 42   8   11 52   9   12 といった形で番号を振っていきたいのですが、どのようにすれば出来ますでしょうか。 参考サイトでも結構ですのでお知恵を置かしください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

間違えないよう順繰り順番に振っていくだけです。 sub macro1()  dim r1 as long  dim r2 as long  dim c1 as long  dim n as long  for r1 = 2 to 32 step 30   for c1 = 4 to 5    for r2 = 0 to 20 step 10     n = n + 1     cells(r1 + r2, c1) = n    next r2   next c1  next r1 end sub 間違えると間違った結果になります。

quindecillion
質問者

お礼

連絡が遅くなり申し分けありません。後ほど確認させて頂きます。

quindecillion
質問者

補足

マクロを実働させて頂きましたが、c1=4to5な為、DとEに結果が表示されてしまいます。 希望がDとFですので、c1=4to6 step2で対応させて頂きました。 MとOにも同じ条件でかつF列の最後の数字+1から表示させたいので、勉強して行きたいと思います。

その他の回答 (3)

回答No.4

あるルールに従って番号を振りたいのであれば、そのルールを「数式」にすれば良いだけです。 一番左が「行番号」だと仮定すると、 「行番号から2を引いて10で割った商」を作ると、上から順に、0、1、2、3、4、5、6…になります。 この「0からの連続数値」が基準になります。 この基準値を「3で割った余り」と「3で割った商」にしてみます。 基準値 余り 商 0     0  0 1     1  0 2     2  0 3     0  1 4     1  1 5     2  1 6     0  2 次に、商の方を6倍します。 余り 商 0   0 1   0 2   0 0   6 1   6 2   6 0   12 更に、余りと商を足します。 余り 商  余り+商 0   0  0 1   0  1 2   0  2 0   6  6 1   6  7 2   6  8 0   12 12 余りと商を加算した値に、1を足した値と、4を足した値を作ってみましょう。 余り+商  余り+商+1  余り+商+4 0       1         4 1       2         5 2       3         6 6       7         10 7       8         11 8       9         12 12      13        16 「余り+商+1」と「余り+商+4」は、貴方の希望する値になっていますよね?

quindecillion
質問者

お礼

連絡が遅くなり申し分けありません。後ほど確認させて頂きます。

quindecillion
質問者

補足

確かにご呈示頂いた方法で希望の値が出てきました。 原理がいまいちわかっていないのですが・・・。 3の商と余り、6倍はなんとなく分かりますが、余り+商からなぜこういうことになるのかが理解できてないです。 参考にできるサイトなど有りましたらご教授お願いします。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.3

>VBAでお願いします。 失礼しましたVBA指定でしたね。

quindecillion
質問者

お礼

連絡が遅くなり申し分けありません。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

該当のセル範囲(D2~F52)に以下の数式を貼り付けてください。 =IF(MOD(ROW(),10)=2,IF(OR(COLUMN()=4,COLUMN()=6),MOD(INT(ROW()/10),3)+1+INT(ROW()/30)*6+(COLUMN()-4)/2*3,""),"") 数式で数値を表示しているだけですので、値として確定させたい場合は範囲選択して頂いて コピー値の貼付で同じ範囲に張り付け直してください。

quindecillion
質問者

お礼

連絡が遅くなり申し分けありません。VBAではないですが、後ほど確認させて頂きます。

関連するQ&A