• ベストアンサー

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

kagakusukiの回答

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

>5人を6人にしたり、5台を4台にしたりして使う場合はどうすればいいでしょうか?  御使いになられているExcelのバージョンは、Excel2007以降のものでしょうか、それとも、Excel2007よりも前のバージョンなのでしょうか?  もし、Excel2007よりも前のバージョンである場合には、行数が65536までしかありませんので、ROW関数のみで元となる整数値を作成していたのでは、必要となる543210までの整数値を作り出す事は出来ません。  そのため、少々やり方を変えて、I列~K列の3列を作業列として使い、行番号の数値を6進法で表した場合の文字列を作り出してから、その中から条件に合う数字のみを取り出して、数値が小さい順に並べる事とします。(小さい順に並べ直した列を作らないと、計算処理に要する負荷が極端に過大になる様です) 【5人を6人にする場合】  まず、 A1セルに   A B1セルに   B C1セルに   C D1セルに   D E1セルに   E F1セルに   F と入力して下さい。  次に、I1セルに次の関数を入力して下さい。 =IF(ROW()+6^4+2*6^3+3*6^2+4*6+4>5*6^5+4*6^4+3*6^3+2*6^2+6,"",INT(MOD(ROW()+6^4+2*6^3+3*6^2+4*6+4,6^6)/6^5)*10^5+INT(MOD(ROW()+6^4+2*6^3+3*6^2+4*6+4,6^5)/6^4)*10^4+INT(MOD(ROW()+6^4+2*6^3+3*6^2+4*6+4,6^4)/6^3)*10^3+INT(MOD(ROW()+6^4+2*6^3+3*6^2+4*6+4,6^3)/6^2)*10^2+INT(MOD(ROW()+6^4+2*6^3+3*6^2+4*6+4,6^2)/6)*10+MOD(ROW()+6^4+2*6^3+3*6^2+4*6+4,6))  次に、J1セルに次の関数を入力して下さい。 =IF(AND(LEN(SUBSTITUTE($I1,0,))=5,ISNUMBER(FIND(1,$I1)+FIND(2,$I1)+FIND(3,$I1)+FIND(4,$I1)+FIND(5,$I1))),$I1,"")  次に、I1~J1の範囲をコピーして、I2~J42926の範囲に貼り付けて下さい。(42926行目以下にまでコピーしてしまっても構いません)  次に、K2セルに次の関数を入力して下さい。 =IF(ROWS($2:2)>COUNT($J:$J),"",TEXT(SMALL($J:$J,ROWS($2:2)),"000000"))  次に、K2セルをコピーして、K3~K721の範囲に貼り付けて下さい。(721行目以下にまでコピーしてしまっても構いません)  次に、A2セルに次の関数を入力して下さい。 =IF((0&MID($K2,COLUMNS($A:A),1))+0,A$1&MID($K2,COLUMNS($A:A),1),"")  次に、A2セルをコピーして、A2~F721の範囲に貼り付けて下さい。(721行目以下にまでコピーしてしまっても構いません) 【5台を4台にする場合】  まず、 A1セルに   A B1セルに   B C1セルに   C D1セルに   D E1セルに   E と入力して下さい。  次に、I1セルに次の関数を入力して下さい。 =IF(ROW()+5^3+2*5^2+3*5+3>4*5^4+3*5^3+2*5^2+5,"",INT(MOD(ROW()+5^3+2*5^2+3*5+3,5^5)/5^4)*10^4+INT(MOD(ROW()+5^3+2*5^2+3*5+3,5^4)/5^3)*10^3+INT(MOD(ROW()+5^3+2*5^2+3*5+3,5^3)/5^2)*10^2+INT(MOD(ROW()+5^3+2*5^2+3*5+3,5^2)/5)*10+MOD(ROW()+5^3+2*5^2+3*5+3,5))  次に、J1セルに次の関数を入力して下さい。 =IF(AND(LEN(SUBSTITUTE($I1,0,))=4,ISNUMBER(FIND(1,$I1)+FIND(2,$I1)+FIND(3,$I1)+FIND(4,$I1))),$I1,"")  次に、I1~J1の範囲をコピーして、I2~J2737の範囲に貼り付けて下さい。(2737行目以下にまでコピーしてしまっても構いません)  次に、K2セルに次の関数を入力して下さい。 =IF(ROWS($2:2)>COUNT($J:$J),"",TEXT(SMALL($J:$J,ROWS($2:2)),"00000"))  次に、K2セルをコピーして、K3~K121の範囲に貼り付けて下さい。(121行目以下にまでコピーしてしまっても構いません)  次に、A2セルに次の関数を入力して下さい。 =IF((0&MID($K2,COLUMNS($A:A),1))+0,A$1&MID($K2,COLUMNS($A:A),1),"")  次に、A2セルをコピーして、A2~E121の範囲に貼り付けて下さい。(121行目以下にまでコピーしてしまっても構いません)  以上です。

UTOPIA3000
質問者

お礼

ありがとうございます。 途中でギブアップしました。 また時間があるときにしたいと思います。

関連するQ&A

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

    <問題> 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)エクセルで、この例の組み合わせ表を作る場合、どうすればよいか?公式のようなものがあるのか? 大変困っております。よろしくお願いします。

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

    エクセルでシート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を組み込む方法は、これまでに経験があるので理解しております。 アドバイスを頂けると嬉しく思います。 何卒、よろしくお願い致します。

  • エクセルで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)という感じの値の組み合わせを全通り作りたいです。 簡単なことかもしれませんが、あまり詳しくないので困っています。 よろしくお願いいたします。

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

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

  • エクセル セルの組み合わせ

    エクセル表の中で目的の数値になるセルの組み合わせを探したいです A列  B列に a  210 b  80 c  403 d  196 e  221 f  307 g  325 h  233 i  237 j  307 k  487 L  267 のようにあります。 これを組み合わせて980に近い組み合わせをいくつかさがしたいのですが、 どうしたらできるでしょうか。重複はできないのです。 ソルバーで挑戦しようと思いましたが、使い方がわかりません。 だれか教えてください。おねがいします。

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

    またお世話になります。 例えば下記のようなデータがあるとします。  |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を使用しております。)

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

    エクセル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です。 宜しくお願いします。

  • エクセル変わった表の作り方

    例えばABCと三つの文字があるとして、これらの全ての組み合わせは(A,B,C,AB、AC、BC、ABC)七種類ですよね。これをエクセルで一発で表にしてくれる方法ないですかね?A,B,C,D・・・・と入力したら全ての組み合わせが表示されるようにしたいのですが・・・無理ですか?いちいち自分で全部しらべて入力するしかないですかねー?教えてください。お願いいたします。

  • EXCELの表作成について

    EXCELについて質問です。 表Aと表Bから表Cのような結果を出すためには、 どうすれば良いでしょうか? 下記の例ではたいしたデータではありませんが、 膨大な数のデータがあるとして、関数などEXCELの機能を活用して簡単に 結果を出したいと思っています。 【表A】 A    B     C    D 1     A店 B店 C店 2 パソコン 3 掃除機 4 冷蔵庫 5 テレビ 【表B】 A店   B店   C店 パソコン パソコン パソコン 掃除機  冷蔵庫  掃除機 冷蔵庫  テレビ  テレビ 【表C】 A    B    C    D 1     A店 B店 C店 2 パソコン ○ ○  ○ 3 掃除機  ○    ○ 4 冷蔵庫  ○ ○ 5 テレビ     ○  ○ ※表A内で、表Bに該当する箇所に"○"が記入されます。 ※1~5はEXCELの行 ※A~DはEXCELの列 当方、EXCELは使い慣れていいますので、 多少難しい方法でも構いません。 (ややこしい関数の組み合わせも理論さえ理解すれば大丈夫です) どなたか分かる方がいましたら、 よろしくお願い致します。

  • 重複組み合わせ

    白球5個、赤球3個、黒球2個がある。 (1)10個の球を6人に分ける方法は何通りか?(1個も貰わない人があってもよい) という問題で自分はまず6人をそれぞれA,B、C、D、E、Fとい置いてA+B+C+D+E+F=10となればよいから、 重複組み合わせの公式を使って 6+10-1C10=7007通りとなったのですが、答えだと296352通りとなっていた全然違ったのですが、どこら辺がいけないのでしょうか?