• 締切済み

エクセルで256通りの組み合わせ

たとえば、A,B,C,Dという箱にそれぞれ1~4の数字を入れると 1111 1112 1113 ・ ・ ・ 4444 と全部で256通りの組み合わせができると思います。 このようにいくつもの値の組み合わせをエクセルで全て作製するにはどのようにしたらよいのでしょうか。 実際には、Aに(10,20,30,40)、Bに(0.5,1.0,1.5,2.0)、Cに(500,600,700,800)、Dに(1.1,1.2,1.3,1.4)という感じの値の組み合わせを全通り作りたいです。 簡単なことかもしれませんが、あまり詳しくないので困っています。 よろしくお願いいたします。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.4です! 何度もごめんなさい。 前回の回答はまったくの的外れでした! 無視してください。 今一度考えてみます。 どうも失礼しました。m(__)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 参考になるかどうか分かりませんが・・・ 結論としてA~D列は必ず 1~4のいずれかの値が入るということで そのすべての組合せを表示させれば良いのですね? そういう事だと解釈させていただいての回答です。 かなり強引なやり方になりますが ↓の画像の A1セル =IF(ROW()>256,"",IF(MOD(INT(ROW(A64)/64),4)=0,4,MOD(INT(ROW(A64)/64),4))) B1セル =IF(A1="","",IF(MOD(INT(ROW(A16)/16),4)=0,4,MOD(INT(ROW(A16)/16),4))) C1セル =IF(B1="","",IF(MOD(INT(ROW(A4)/4),4)=0,4,MOD(INT(ROW(A4)/4),4))) D1セル =IF(C1="","",IF(MOD(ROW(A1),4)=0,4,MOD(ROW(A1),4))) という数式を入れて、オートフィルで下へずいずぃ~~~!とコピーします これで多分すべての組合せが表示されると思います。 ただし、今回の場合のみ有効で 例えば列が増えるとか、4を超える数値があったりすると 当然数式は変わってきます。 以上、参考になれば幸いですが、 的外れなら読み流してくださいね。m(__)m

回答No.3

こういうことかなあ A1セルに =INDEX(F$1:F$4,MOD(INT((ROW(A1)-1)/4^(4-COLUMN(A1))),4)+1) 右へ、下へオートフィル

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

この手の問題は標準関数より VBA による解決の方が手っ取り早いです。 For ループのネストですね。 Sub SampleProc1()   Dim nRow As Long   Dim n1  As Variant, n2 As Variant   Dim n3  As Variant, n4 As Variant   nRow = 1   For Each n1 In Array(10, 20, 30, 40)     For Each n2 In Array(0.5, 1#, 1.5, 2#)       For Each n3 In Array(500, 600, 700, 800)         For Each n4 In Array(1.1, 1.2, 1.3, 1.4)           Cells(nRow, 1).Value = n1           Cells(nRow, 2).Value = n2           Cells(nRow, 3).Value = n3           Cells(nRow, 4).Value = n4           nRow = nRow + 1         Next       Next     Next   Next End Sub これが基本形。 加えて、#1 ご紹介の考え方を利用し、添付図のようにデータを入力したと すれば、下記のソースを試しに確認してみて。 自信はあまりないんだけどね(。-´ェ`-) Sub SampleProc2()     Dim sh     As Worksheet   Dim rSrcData  As Range   Dim nRowsCount As Long, nColsCount As Long   Dim x     As Long, y     As Long   Dim i     As Long, n     As Long   ' データ範囲の問い合わせ   On Error Resume Next   Set rSrcData = Application.InputBox("データ範囲を選択", Type:=8)   On Error GoTo 0   If rSrcData Is Nothing Then Exit Sub      ' データ件数を調べる   With rSrcData     nRowsCount = .Rows.Count     nColsCount = .Columns.Count   End With   If nRowsCount ^ nColsCount > 65536 Then ' Excel2003 max row num     MsgBox "データ数が多すぎます", vbCritical     Exit Sub   End If      ' 列挙開始   Set sh = Worksheets.Add   Application.ScreenUpdating = False   x = 1   For i = 0 To nRowsCount ^ nColsCount - 1     y = nColsCount     n = i     While y > 0       sh.Cells(x, y).Value = rSrcData.Cells(1, y). _                   Offset(n Mod nRowsCount).Value       n = n \ nRowsCount       y = y - 1     Wend     x = x + 1   Next i End Sub

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

具体的にどうしたいのかイメージがわかないのですがアドバイス 1)1つずつ入力する 2)変化するパターンを読んで、パターンをコピーして必要なだけ連続して貼り付ける 3)割り算とINT関数の組み合わせや MOD関数で各桁の数字を計算させる 好きな方法を選びましょう 3は0~3333まで増加する4進数と見なすと良いかもしれませんが、 4進数の意味が分からないなら忘れてください アドバイスにもなりませんから(汗 (0~3333に1111を加えればOK) ※ 最終的なイメージを質問から読み取れませんので、具体的な関数の使い方は   省略させていただきます んー…あと、Excelは 2007でしょうか? 2003までは65536行までしか入力できませんから、それ以上の組み合わせがある場合は シートを跨ぐことになります 2007なら、それ以上の行を入力できますから大丈夫でしょう

関連するQ&A

  • エクセルで組みあわせについて教えて下さい。

    エクセル2000です。エクセルで組合せの合計をだしたいのですが、 A1 58 B1 13.5 C1 44.5 D1 51.5 E1 31 F1 49.4 G1 19.6 H1 41.5 J1 41 となっていて、その中から「292」に一番近い組合せを知りたいんですが、方法がありましたら教えて下さい。 上記の場合だったら 58、51.5、31、49.4、19.6、41.5、41 が292になるといった感じです。 292になるなら上記では7つ数字を使いましたが、5つでも6つでもいいです。ぴったりにならなくても近似値でもOKです。 宜しくお願いします。

  • 組み合わせ

    1から5までの番号のついた球がそれぞれ1つずつあり、これら5つの球をA、B、C、Dの4つの箱に入れる。それぞれの箱には5つまで球を入れることができるものとする。 (1)少なくとも1つの箱が空であるような球の入れ方 (2)Aの箱とBの箱に同じ個数の球が入るような球の入れ方(ただし、どちらの箱も空の場合は同じ個数とみなす) を求めよ。 (1)は「少なくとも」ってあるので、すべての組み合わせから、4つ全部に球が入ってる組み合わせを引いたのですが、計算が合いません。詳しく教えていただけると嬉しいです。 (2)は、説明がよくわからないのですが、場合分けをして考えればいいのでしょうか?こちらも詳しく教えていただけると嬉しいです。 お願いします!

  • 組み合わせの問題(エクセルで組み合わせ表を作りたい)

    <問題> A、B、C、D、E、Fの6つのかごに、1~10の数字の書かれたカードを置きます。一度置いたカードは、一旦カードの束に戻し、再び10枚の中から選ぶことが出来ます。1つのかごには一枚のカードしか置けません。置いたカードは、必ず合計で10になる様に置かなければなりません。この場合、組み合わせは何通りありますか? <補足> ・Aのかごに10のカードを置いたら、すでに合計10であるので、他のかごにはカードを置かない。 ・Aのかごに9のカードを置いたら、Bのかごに1のカードを置く。 ・Aのかご5のカードを置いたら、Bのかごに5のカードを置く。 A   B   C   D   E   F  合計 10                   10 9   1                10 5   5                10 4   2  1   2   1     10 <質問> (1)何通りの組み合わせがあるか? (2)エクセルで、この例の組み合わせ表を作る場合、どうすればよいか?公式のようなものがあるのか? 大変困っております。よろしくお願いします。

  • 組合せをエクセルに表にして表わしたい

    5人のA、B、C、D、Eという人がいます。 5台の1、2、3、4、5、という自転車があります。 組合せは、 5*4*3*2*1=120通になると思います。 この120通りの組合せをエクセルの表に表したいです。 どのようにすればいいでしょうか?

  • エクセルで組み合わせの集計方法

    またお世話になります。 例えば下記のようなデータがあるとします。  |B|C|D|E| ---------------------- 1|a|b|c|e| ---------------------- 2|b|c|a|e| ---------------------- 3|a|e|f|g| ---------------------- 4|b|f|e|a| ----------------------      :      : (データは下へ追加されていきます) 上記のデータを行毎に調べて、各値と最も多い組み合わせを調べるにはどうしたらよいでしょうか? 例えば「a」と最も多く組み合わせているのは、「e」となります。 あた「b」と多く組み合わせているのは、「e」となります。 このように各入力値ごとに、最も多く組み合わせているものを抽出するにはどのようにしたら良いでしょうか。 実際には文字ではなく数字を入力しています。 私が考えている方法は、すべての文字に対しての組み合わせ表を作成して、そこから最も多いそれぞれの組み合わせを求めるということですが、これではかなりの量の組み合わせデータを作成しなければならないことになります。 もっと簡単にできる方法はないかと思い、こちらに質問させて頂きました。 とても難しいような気がしますが、アドバイスをよろしく御願いします。 (エクセル98を使用しております。)

  • エクセルで組み合せ一覧表を作成したいです

    エクセルでシート1のA1~O1の各セルには、アルファベットや数字(1~50)が入っています。 A1~O1までの15個のセルから、6つを選択した時の組み合せ一覧を作成したいと思っています。 組み合わせは計算すると、15C6となるので全5005通りになります。 組み合せの一覧は、シート2に表示させたいです。 (a,b,c,d,e,f)と(b,a,c,d,e,f)は同じものとします。 またA1~O1のセルに入るのは、アルファベットと数字の組み合せが複雑であれば、数字のみとしたいと思います。 関数だけで何とかしようと思いましたが、どうしても無理のような気がしてしまいましたので、こちらにご質問をさせて頂きました。 VBAの知識もないため、自分でプログラムを組む事もできません。 シートにVBAを組み込む方法は、これまでに経験があるので理解しております。 アドバイスを頂けると嬉しく思います。 何卒、よろしくお願い致します。

  • エクセルで組み合わせ計算

    質問があります。エクセル使えば計算とか、いろいろ覚えれば簡単に出来ると言われ前に組み合わせ計算教わった記憶が、あるんですが忘れてしまったので分かる方教えて下さい。 質問内容は、 数字で1・2・3・4・5・6・7があります。 7個の数字を3個ずつ組み合わせしたいんです。 (1・2・3)(1・2・4)(1・2・5)このような感じ何ですが 同じ数字がダブらない様にしたいんです。途中で(2・3・1)があると先に書いた(1・2・3)があるので×何ですが全部で35通りの組み合わせになると思うんですが、この様な計算も1欄で組み合わせ表示が出来るんでしょうか? また、この程度のエクセルレベルは初級位でしょうか? 宜しくお願いします。

  • エクセル マクロ 組み合せ

    エクセルのマクロでa,b,c,d,e,f,g の2組合せ (7C2)の全組合せを洗い出して表示したいですが、、、、、、

  • Excelで組み合わせ

    Excel2007で記号の組み合わせの計算がしたいです。パターンの出力と言うんですかね?ちょっとその辺の単語力に乏しいのですが…。 質問させていただきます。 A列、B列、C列、D列の10行目までにアイウエオカキクケコのいずれかがが各セルに入ってます。A列×B列×C列×D列 4個×5個×3個×6個=360通り 何通りでもいいのですが できたパターンをF列に一通りずつ(できるならまとめて一発ででもいいのですが)上から入れていきたいです。全部4文字固定です ご協力お願いします。

  • Excelですべての組合せ(重複組合せ)を出力するには?

    Excelですべての組合せ(重複組合せ)を出力するには? 次の条件のような場合、Excelですべての組合せ(重複組合せ)をVBAで出力するにはどうしたらいいのでしょうか? 10種類のお菓子の中から、好きなものを3個選んでセットにするとします。 同じものを複数選ぶのはありですが「菓子A、菓子B、菓子C」と「菓子B、菓子C、菓子A」は選んだ順が違うだけで同じ組合せなので、どちらか片方だけにします。 この場合、すべての組合せの数は Excelの関数で求めることができるようで COMBIN(10+3-1,3) = 220 通りあることまではわかりましたが、このすべての組合せの一覧をどのようにして出力したらいいのかがわかりません。 いろいろ検索した結果、順列という方法は見つかりましたが、重複組合せでの方法は見つけることができませんでした。 また、Accessを使っても似たようなことができるのでしょうか? 直積? できれば、3個固定ではなく5個の場合も出来るとうれしいです。 よろしくお願いします。

専門家に質問してみよう