• 締切済み

組合せ回数の算出数式について

エクセル関数を使って組合せ回数の算出をしたいのですが 1, 1番から20番までの番号の人があり 2, 例えば、1番と11番の人がペアとなり、2番と15番、3番と6番、等々の乱数の組合せをし 3, 次の回では、11番と1番等々のペアを作って15回まで行った場合に 4, 1番の人が2番~20番までの各々の人と何回ペアとなったか、また2番、~20番の人は何番と何   回ペアを組んだか、の算出の数式を作りたいのですが、どのような式を作ったらよいでしょうか。    宜しくお願いします。

みんなの回答

  • MASUKUBO
  • ベストアンサー率22% (4/18)
回答No.1

次のようにすることで良いでしょう。 A列からE列までは作業列としてA1セルには=RAND()を入力してB1セルまでオートフィルドラッグしたのちに下方に150行までオートフィルドラッグします。 これで乱数が表示されます。 次にC1セルには次の式を入力してD1セルまでオートフィルドラッグしたのちに下方の150行目でオートフィルドラッグします。 =RANK(A1,INDEX($A:$B,ROUNDUP(ROW(A1)/10,0)*10-9,1):INDEX($A:$B,ROUNDUP(ROW(A1)/10,0)*10,2)) これで10行ごとに1から20までの数値が表示されます。 E1セルには次の式を入力してE150セルまで下方にオートフィルドラッグします。 =C1&"/"&D1 そこでお求めの表ですがH1セルからAA1セルまでに1から20までの数値を入力します。また、G2セルからG21セルまでには1から20までの数値を入力します。 そこでH2セルには次の式を入力してAA2セルまでオートフィルドラッグしたのちに下方の21行までオートフィルドラッグします。 =COUNTIF($E:$E,$G2&"/"&H$1) これで例えば1番(G列)と他の番号(H1セルからAA1セル)との組み合わせの回数はH2セルからAA2セルに表示されることになります。2番はH2セルからAA2セルに表示されます。 F9キーを押すことで乱数が変わりますのでそのたびに組み合わせの回数は変化しますね。

xch74958
質問者

お礼

ありがとうございました。お礼が遅くなりすみませんでした。

関連するQ&A

  • 組合せの全体を算出できる数式は存在しますか?(再)

    ★★ 以下の内容をカテゴリ「数学・算数」へ1月19日に投稿しましたが,未だに回答が皆無で,"OKWAVE サポート担当" 様のご指導により「科学」へ再投稿してみました.★★ (再投稿) 最近(2018年12月12日)以下のような論文が,科学技術振興機構の運営する或る団体のサイトに提示されました. それは,数学の組合せ論に関する論文で「繰り返しを許さない組合せ」について,組合せの全体を算出できる数式(漸化式)に関する研究報告です. ● 論文タイトル:「繰り返しを許さない組合せの各組を全て算出できる数式」 組合せ論における「繰り返しを許さない組合せ」に関して,候補の数を n とし,選択の数を r とすると,組合せの総数 C(n,r) は,C(n,r) = n!/r!(n-r)! で与えられます. n と r,(n≧r)を任意に与えて,総個数が C(n,r) 個あるこの組合せの全てを,下記に示す数式(漸化式)で算出できます. この論文では,下に示す"組合せ網羅漸化式"(仮称)を用いた計算結果が,数多く示されています. 具体的には,例えば,組合せの要素を,1,2,3,4,5 で表し,この5個の要素から,4個を取り出した組み合せは, 〈1,2,3,4〉〈1,2,3,5〉〈1,2,4,5〉〈1,3,4,5〉〈2,3,4,5〉の5種類です. この5種類ような組合せも数式を用いて算出する方法が記述されています. この様な例のほか,全ての組み合せについて,ひとつの組合せ網羅漸化式を用いて組合せの全体が算出できます. 下記の数式以外で,これと同等の考え方・目的・主旨をもって創られている数式が存在すれば,それを教えて下さい. コンピューターを用いる数値計算で組合せを構成する方法は除きます.閉じた代数計算式の存在を問います.

  • 組合せ

    17人か18人で麻雀をします。 4卓使用して、半荘5回行います。1人1回抜け番があります。(一人当たり4半荘) 1度対戦した人とは対戦しないような組合せはできるでしょうか? もし無理な場合は極力重なる人、回数は少なくしたいです。 よい組合せを作る方法や、ずばり組合せがわかる方、よろしくお願いいたします。

  • 数式の^

    エクセルの数式で^の記号が出てきました。 これは何を意味して(何の機能をして)いるのですか?? ちなみにROUND関数の式に入ってました。 誰か教えてください!

  • バドミントンの対戦表をエクセルで作りたいのですが

    バドミントンのダブルスの対戦表をエクセルで作ろうと思っているのですが、どうやって作ったらいいのかわからず、どなたか知恵を貸していただけないでしょうか? バドミントンのダブルスは1コート4人で行われるため、4人でバドミントンを行ったりする場合は簡単に組合せが作れます。4人に1番~4番の番号を振り分けると、1番と2番がペアで3番と4番がペア。その次は1番と3番がペアで2番と4番がペア。というふうになります。 しかし、それが例えば2コート、10人でダブルスをやろうとすると、8人がコートに入り、2人が休みになります。 同じペアで組まないようにしたいので、全員が違うペアと組んで試合をするには、何試合も試合を行わなければいけなくて、その組み合わせを考えるのが自力ではできませんでした。 3コートで14人とかなってくるともっと複雑で、どうやって組み合わせを考えたらいいかわかりません。 プログラムに詳しい方がおりましたら、どうすればエクセルで計算できるか、ご助力願えませんでしょうか。お願い致します。

  • 大会向け「麻雀組合せ表」の作成

    毎月1回40~60名が参加する「麻雀大会」を開催することになりました。 そこで、総当たりの4回戦を企画していますが、1~4回戦毎に異なる人と 組合せになる乱数表?・Excel関数?を検索している処ですが、ちょうど 添付の「10卓40名の組合せ表」を見つけました。 そこで、この表の作成方法を教えて戴ければ有難いと思い投稿しました。 10卓40名以上の15卓60名までの組合せを作成するためです。 尚、Excel関数は若干使い熟せますが、Excelマクロは無理ですが! 宜しくお願いします。

  • Excel(2002) 関数 数式そのものを文字列として取得

    Excel入門用の教材を作っています。 うまくできたら「OK」を表示するように、たとえば次のようなチェック用の式を使っています。  =IF(A1="あいうえお","OK","") ところで、関数など数式を入力させる練習問題の場合、入力した数式そのものが正しいかチェックする方法が思い当たりません。 セルに入力した式そのものを文字列として取得できる関数(の組み合わせ)があればよいのですが、可能でしょうか? 次の xxx のようなものです。  ? =if(xxx(A11)="=sum(A1:A10)","OK","") もし無理であれば、セルに入力されているのが、単なる数値ではなく式であることを検査する方法でもかまいません。 どうかご教示ください。よろしくお願いします。

  • 関数の組合せ式教えて下さい

    関数の組合せ式教えて下さい A2~A9に名前が入力されています。 B2~B9に得点が入力されています。 C2のセルに得点の上から2番目に高い人の名前を抽出する式を教えて欲しい。 関数の組合せで出来ると思います。宜しくお願いします。

  • テニスダブルス組合せ

    こんにちは。草テニス愛好者です。 テニス乱数表の件でbun0212さんの質問があり、rio_dさんの回答が大変参考になりました。少し希望があります。(1)各々の人数組合せに共通しますが、最初の一巡では[1][2]:[3][4]、[5][6]:[7][8]・・・と若い順番からの組合せとなること(ご回答の参考例にある9人の場合のように)。(2)参考の9人の場合そうなっていますが、各メンバーのペア(パートナー)は必ず自分以外の全員と組めるようにすること。の2点ですが、何とかなりますでしょうか。よろしくお願いします。

  • 4人1組 乱数表

    パーティーで4人1組でやるゲームを7回戦やるのですが(人数によって抜け番あり)、なるべく同じ人と組まないような組み合わせにするにはどのようにすればよいのでしょうか? 検索したらテニスのダブルスの乱数表はたくさん見つかったのですが、過去の質問にでてきたrio_dさんの乱数表(質問番号:1388951)を使ったところ問題が発生してしまいました…。 3回戦目で[1][7]:[6][8]、5回戦目で[16][6]:[7][8]、というのが存在してしまいペアは違っても結局[6][7][8]が2度同じグループになってしまったのです。 パソコン初心者でどのように変更すればよいのか、全く別の方法があるのかなど全然わかりません。できるだけ上手くバラバラに組むようにしたいと思います。よろしくお願いします!

  • エクセルの数式

    エクセルで以下のような処理ができる数式をご存知の方教えてください。 たとえば、 5名のテスト結果の合計点で一番高い人を拾い上げて、「1位」とし、2番目に高い人を拾い上げて「2位」とするような合計点順に1位から最下位の人まで自動的に順位をつける関数。 誰か助けてください!

専門家に質問してみよう