- ベストアンサー
エクセルで行えますか?
エクセルで3つの数字から2つ選びその組合せををすべて並べる事が自動できますか? 例えば 1、2、3、だとすると 1、2 1、3 2、3 というふうにです、一つの数字はセル一つ使います。 本来8つの数字から4つを選び並べたいのですが 1680通りあるもので、 一つ一つ入力するわけに行きません。 並べておいてコピぺすればできない事はないのですが もっと早い方法はないのかと思いまして質問させて戴きました。
- みんなの回答 (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)
こんにちは。 以前同じような質問に答えています。 参考になりますでしょうか。 質問:EXCEL VBAでできるでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=579768