• 締切済み

n個中規定数取出すを繰返すVBA

masnoskeの回答

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.7

nCr の一覧表を作成する汎用マクロを組もうと思ったのですが、難しいですね。 とりあえず、16C6 の一覧表を作成するマクロを作ってみました。 手を加えれば、望んでおられる最大値を得られるマクロができると思います。 あるいは、一覧表だけ作って、残りの作業はワークシート関数で対応するのも良いと思います。 汎用化できればいいんですが。。。 Sub Comb() Dim n As Long: n = 16 Dim r As Long: r = 6 Dim d1 As Variant Dim d2 As Variant Dim d3 As Variant Dim d4 As Variant Dim d5 As Variant Dim d6 As Variant ReDim d1(n) As Long ReDim d2(n) As Long ReDim d3(n) As Long ReDim d4(n) As Long ReDim d5(n) As Long ReDim d6(n) As Long Dim i1 As Long Dim i2 As Long Dim i3 As Long Dim i4 As Long Dim i5 As Long Dim i6 As Long Dim rw As Long rw = 0 For i1 = 1 To n - r + 1 For i2 = i1 + 1 To n - r + 2 For i3 = i2 + 1 To n - r + 3 For i4 = i3 + 1 To n - r + 4 For i5 = i4 + 1 To n - r + 5 For i6 = i5 + 1 To n - r + 6 rw = rw + 1 Cells(rw, 1) = i1 Cells(rw, 2) = i2 Cells(rw, 3) = i3 Cells(rw, 4) = i4 Cells(rw, 5) = i5 Cells(rw, 6) = i6 Next Next Next Next Next Next End Sub

関連するQ&A

  • 相関係数が1になるのはなぜ

    データ群Aとデータ群Bの相関係数を調べようとしています。 データ群Aはy=x データ群Bはy=2x-5 0<=x<=10 このデータ群の相関係数を 共分散/(√Aの分散×√Bの分散) で計算すると相関係数が1となります。 明らかにデータ群AとBが違っているのに相関係数が1になるのはなぜなのか、また、このデータ群の相関係数の正しい求め方を教えてください。 よろしくお願いします。

  • 組合せVBA

    環境はExcel2002です A列に連番数字1から100が入力されていて B列の100行には数字のデータがあるとします ある目的の数値Xに一番近くなるB列の組合せをC列に表示したいのです…VBAで B列に表示するのはA列の連番です 『一番近くなる』の意味は2通りあって、両方の算出方法をご教示願います (1)目的の数値Xを絶対超えないで目的の数値Xに一番近くなる組合せ (2)目的の数値Xを必ず超えて目的の数値Xに一番近くなる組合せ

  • ナンバーズ4の各桁の合計数がNで、順序を無視するときの場合の数

    http://oshiete1.goo.ne.jp/qa4407454.html で次のように書いてありました。 各桁の合計値が N になるようなナンバーズ4の組み合わせ のパターン数をf(N)とすると、f(N)は x の多項式 (1+x+x^2+x^3+x^4+x^5+x^6+x^7+x^8+x^9)^4 の展開式の x^N の係数です。したがって、 f(N)=Σ[k=0,floor(N/10)]((-1)^k)*4*(3+N-10k)!/(k!*(4-k)!*(N-10k)!) となります。 ( floor(a)は a を超えない最大の整数を表します。) これは、 (1+x+x^2+x^3+x^4+x^5+x^6+x^7+x^8+x^9)(1+y+y^2+y^3+y^4+y^5+y^6+y^7+y^8+y^9)(1+z+z^2+z^3+z^4+z^5+z^6+z^7+z^8+z^9)(1+w+w^2+w^3+w^4+w^5+w^6+w^7+w^8+w^9) を考え、例えば項 x^2*y^5*z^3*1 を4桁の数2530に対応させたものと思います。 ここで、数字の並び方の順序を無視し、たとえば、1112と2111を同じとみなします。もしくは、 「千の位の数」≦「百の位の数」≦「十の位の数」≦「一の位の数」 といった制限を加えます。 さっきのが、順列なのに対し、今回のは組合せです。 このとき各桁の合計値が N になるような4種類の数の組み合わせは、どのように書けるのでしょうか?

  • 異なるデータ数から求めた相関値の比較

    時系列のデータA(サンプル数15000程度)とデータB(サンプル数2500程度)があります。この2種類のデータはサンプリング時間は同じですが、サンプリング周期が異なっています。それぞれのデータはXの値とYの値があります。 このとき、データAについて求めたXとYの相関値Aと、データBについて求めた相関値Bは、そのまま比較することはできますか?サンプル数の違いによって、相関値が大きくぶれてしまうことはあるのでしょうか?データAはデータBと同じ数のデータにすべく、データを間引くべきでしょうか? 教えていただけると幸いです。どうぞよろしくお願いします。

  • 相関係数について

    相関係数についてわからないことがあります。 ある二つの物体A,Bが同時に観測されたとします。 この時、A(xi,yi),B(x'i,y'i)というような座標に観測され、i=N回観測された場合、この二物体間の相関係数を求めるにはどのようにすればよいのでしょうか? xとx'の相関とyとy'の相関をそれぞれ別に求めればよいのでしょうか? よろしくお願いします。

  • 相関係数についての証明問題

    相関係数についての問題です。 途中まで考えたのですが、分かりません。 ご協力お願いいたします。 2変数の組(x,y)があり、y=ax+b(a,bは定数)とするとき a>0のときは相関係数r=1、a<0のときは、r=-1 を証明する問題です。 r=Sxy/SxSy   (Sxyは共分散) の式にあてはめて証明することと Sxy=aSx^2 Sy^2=a^2Sx^2 を使うんだろうなあ、という所までは分かるのですが ここから先どうしたらよいのか分かりません。 よろしくお願いいたします。

  • エクセル 関数・VBA 行位置・行数・行挿入

    下のようなシートがあり、自動で、発生月ごとのXとYの数値帯の個数を揃えるように(行挿入) 修正したいのですが、どのような方法が考えられますでしょうか?同様のシートが多数あり、 それぞれ数値帯は異なり、それらへも対応させたいのです。 発生月ごとに、XとYの数値帯を比較して、少ない方へ行を追加すれば良いかと思い、関数とVBA の組合せで何とかならないかと考えたのですが、進みません。 例えば、関数で、発生月ごとのXとYについて、最小値と最大値をそれぞれ比較して、500で割っ て、足りない行数を算出し、また、それぞれの最小値と最大値のある行位置を特定して、それら を変数として、VBAで実行させる・・・ 最小値と最大値はDMAX(DMIN)で算出できたのですが、数値帯が小さい方へ不足することもあれ ば、大きい方へ不足することもありますし、差が無い場合もありますし、さらには、行位置の特 定もどうすれば良いか思いつきません。 そもそも、この考え方が不適切なのでしょうか? お手数ですが、教えてください。 A列に発生月を示す6桁半角数字(例/200512) B列に種を示す1半角英字(XまたはY) C列に数値帯を示す500刻みの4または5桁半角数字(例/8000、32500) ※発生月と数値帯は昇順に並んでいます。   A    B   C  発生月  種  数値帯  200512  X   9500  200512  X   10000  200512  X   10500  ・  ・  200512  Y   8000  200512  Y   8500  200512  Y   9000  ・  ・  200601  X   10500  200601  X   11000  ・  ・  200601  Y   10500  200601  Y   11000  ・  ・

  • Excel VBAにて座標読み込み・配置

    当方、Excel VBAに関しては全くのド素人でございます。 お客さんに頼まれて、次のことをやりたいのですが、どうしたらよいか途方に暮れています。 (-50,-50)~(50,50)までの2mピッチの合計2601個のxyz座標データ(txt)をSheetに読み込み。 A列=x B列=y C列=z そしてAD列・26行のセルを座標(0,0)として、セルにz値を展開したいのです。 横軸=x 縦軸=y BC列・1行が(50,50) E列・51行が(-50,-50) 以上のことをExcel VBAでやりたいのですが・・・ 可能でしょうか? 宜しくお願いします。

  • 空欄を埋めるVBA

    Excelにて、以下のようなデータがあります。   A B C 1 X 1 2 2  2 3 3   3 4 4 Y 4 5 5  5 6 6  6 7 A2,A3にX(=A1)を、A5,A6にY(=A4)を入力するようなVBAはどのように作ればよいのでしょうか?

  • 標準偏差について確認してください。

    あるデータについて検証しているのですが、標準偏差の項目がわかりません。 実データ (x1、y1)=(0.4 、 0.987923349) (x2、y2)=(0.2 、 0.489910377) (x3、y3)=(0.1 、 0.24074934) (x4、y4)=(0.05 、 0.124348729) (x5、y5)=(0.025 、 0.060968171) (x6、y6)=(0.0125 、 0.029057754) 相関係数 0.9999842835 式(最小二乗法) y=ax + b(原点(0、0)を含む)     a=2.469160646     b=-0.001643755 標準偏差 0.00280 となってます。 相関係数とか式はエクセルで確認できたのですが、標準偏差のみ確認できません。たぶん実データyと最小二乗法でもとめた計算数の差をもとめているのだと思うのですが・・・(xのデータはこちらの方で調整してあるのでyのみ実験で測定しました) 質問がたりずに申し訳ないです。補足をつけますので不足データなどあったら申しつけてください。