• ベストアンサー

エクセルで行えますか?

エクセルで3つの数字から2つ選びその組合せををすべて並べる事が自動できますか?  例えば 1、2、3、だとすると 1、2 1、3 2、3 というふうにです、一つの数字はセル一つ使います。 本来8つの数字から4つを選び並べたいのですが 1680通りあるもので、 一つ一つ入力するわけに行きません。 並べておいてコピぺすればできない事はないのですが もっと早い方法はないのかと思いまして質問させて戴きました。

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

  • ベストアンサー
回答No.2

どうも、だいぶ遅くなりましたがまだ見てるでしょうか? とりあえずマクロを作ってみました ツール(T)→マクロ(M)→Visual Basic Editor(V) または Alt+F11 で Visual Basic Editorを起動する。 挿入(I)→標準モジュール(M) として 右側に出来たウィンドウに Option Explicit Sub kumiawase()   Const motonum = 3 '並べる数字の種類   Const erabinum = 2 '並べる数      Dim i As Integer   Dim j As Integer   Dim k As Integer      Dim countlasthani As Integer   Dim newstartnum As Integer      Dim numlist(1 To erabinum) As Integer      For i = 1 To erabinum     numlist(i) = i   Next      j = 1         Do     numlist(erabinum) = numlist(erabinum - 1)     countlasthani = motonum - numlist(erabinum)          For i = 1 To countlasthani       numlist(erabinum) = numlist(erabinum) + 1       For k = 1 To erabinum         Cells(j, k) = numlist(k)       Next       j = j + 1     Next        For i = erabinum To 2 Step -1       If numlist(i) > numlist(i - 1) + 1 Then         newstartnum = numlist(i - 1) + 1         For k = i - 1 To erabinum - 1             numlist(k) = newstartnum + k - (i - 1)         Next         Exit For       End If     Next   Loop Until numlist(1) = motonum - erabinum + 1      For i = 1 To erabinum     Cells(j, i) = numlist(i)   Next End Sub をコピーして貼り付けてください。 その後上書き保存をしてVisual Basic Editorを閉じてください。 ツール(T)→マクロ(M)→マクロ(M) または Alt+F8 で呼び出したウィンドウの kumiawase を選んで 実行(R) をクリックしてください。 ところで8つから4つ選んで1680通りもあるのは順列の方です。 3つ中2つの例で言うと 1,2 1,3 2,1 2,3 3,1 3,2 となるものです。組み合わせは70になります。

その他の回答 (1)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.1

こんにちは。 以前同じような質問に答えています。 参考になりますでしょうか。 質問:EXCEL VBAでできるでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=579768

関連するQ&A