- ベストアンサー
あるルールに従って番号を振りたい
タイトルをどのようにしたらいいのかわからず申し分けありません。 Excel2013使用しています。 VBAでお願いします。 本題ですが、 D F 2 1 4 12 2 5 22 3 6 32 7 10 42 8 11 52 9 12 といった形で番号を振っていきたいのですが、どのようにすれば出来ますでしょうか。 参考サイトでも結構ですのでお知恵を置かしください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
間違えないよう順繰り順番に振っていくだけです。 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 間違えると間違った結果になります。
その他の回答 (3)
- chie65536(@chie65535)
- ベストアンサー率44% (8742/19841)
あるルールに従って番号を振りたいのであれば、そのルールを「数式」にすれば良いだけです。 一番左が「行番号」だと仮定すると、 「行番号から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」は、貴方の希望する値になっていますよね?
お礼
連絡が遅くなり申し分けありません。後ほど確認させて頂きます。
補足
確かにご呈示頂いた方法で希望の値が出てきました。 原理がいまいちわかっていないのですが・・・。 3の商と余り、6倍はなんとなく分かりますが、余り+商からなぜこういうことになるのかが理解できてないです。 参考にできるサイトなど有りましたらご教授お願いします。
- eden3616
- ベストアンサー率65% (267/405)
>VBAでお願いします。 失礼しましたVBA指定でしたね。
お礼
連絡が遅くなり申し分けありません。
- eden3616
- ベストアンサー率65% (267/405)
該当のセル範囲(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,""),"") 数式で数値を表示しているだけですので、値として確定させたい場合は範囲選択して頂いて コピー値の貼付で同じ範囲に張り付け直してください。
お礼
連絡が遅くなり申し分けありません。VBAではないですが、後ほど確認させて頂きます。
お礼
連絡が遅くなり申し分けありません。後ほど確認させて頂きます。
補足
マクロを実働させて頂きましたが、c1=4to5な為、DとEに結果が表示されてしまいます。 希望がDとFですので、c1=4to6 step2で対応させて頂きました。 MとOにも同じ条件でかつF列の最後の数字+1から表示させたいので、勉強して行きたいと思います。