A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1です。
補足コメント有難うございました。大変失礼しました。確かに組み合わせまで確定しないと意味ないですよね。
申し訳ないですm(_ _)m
で、ちょっと考えてみました。・・・が、かなり難問ですね。
28人から4人ずつのチームを7組作る組合わせ
28C4*24C4*20C4*16C4*12C4*8C4*4C4 / 7!
=13,189,599,057,009,400 通り!
1京3189兆5990億5700万9400通り ・・・・ Orz
というわけで、マクロを使用しても到底総当たりは無理。
(#1で見た最頻値のチームだけを取り出して、マクロで総当たりの7組を作ろうとしましたがうまくいきませんでした。
あれこれ試行錯誤しましたがちょっと無理でした。)
結局、超ベタな方法を考えてみました。もはやマクロとは全く関係ないですが(汗。
生徒28人を、タイムの昇順に並べて、速い子から、A,B,C・・・X,Y,Z,a,b とします。
で、これを順に7チームに割り振っていく。
① 各チームの1人目は A~F に。以下の図でいえば、上から下に。
② 2人目は、下から上に、H~N まで。
3人目、4人目も同様に。
A N O b
B M P a
C L Q Z
D K R Y
E J S X
F I T W
G H U V
横につながった4人が、一チームです。
各人の測定タイムの散らばり具合にもよりますが、かなり均質化できると思います。
わたしの手元ダミーデータではほぼ同じタイムでした。
人名、タイムを当てはめて4人の合計タイムを見てみて下さい。
わたしの力ではお役にたてず申し訳ありません。大変失礼いたしました。m(_ _)m
もっと詳しい方の回答が付くことを祈っています。
この回答へのお礼
お礼日時:2015/05/10 20:13
ありがとうございます。思っていた以上にたいへんなお願いだったようで、すいませんでした。
私も今までは速い子から順番に並べて・・・というやり方をしておりましたが、エクセルを使えば格好良くできるかな、と安易に思ったのですが。
お手数をおかけして、ほんとうにありがとうございました。
No.1
- 回答日時:
>28人の子供の100m走の記録を元に
>30人全ての記録の組み合わせを作り、最も差が少ない組み合わせに
ちょっとここが良く分かりません。
「28人の記録をもとに、30人?のすべての記録の組み合わせ」?
というわけで、28人の記録をもとに28人の記録の組み合わせ、でやってみました。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
まず、4人ずつのチームは何通り作れるか。
28人から4人を抜き出す組合せなので、28C4=20,475通り。
エクセルで出すなら、=COMBIN(28,4) で出せます。
では作業。
わたしは以下の通りやってみました。
① シートの1枚目を「data」とし、A列に縦に1~28までの番号を振る
② 同シートのB列に、縦に、生徒名28人を振る
③ 同シートのC列に、それぞれの生徒のタイムを入力する
(ここは昇順か降順にしとくとよいかもしれません)
④ シートの2枚目を「kekka」とする。
⑤ マクロは以下のコードを標準モジュールに書き、実行
------------------------------------------------------------------------
Sub zzzz()
Dim a As Integer, b As Integer, c As Integer, d As Integer
Dim k As Long
Dim WsD As Worksheet, WsK As Worksheet
Dim Rng As Range, WSF As Object
Set WsD = Worksheets("data")
Set WsK = Worksheets("kekka")
Set Rng = WsD.Cells(1, 1).CurrentRegion
Set WSF = Application.WorksheetFunction
k = 2
For a = 1 To 28
For b = a + 1 To 28
For c = b + 1 To 28
For d = c + 1 To 28
WsK.Cells(k, 1).Value = WSF.VLookup(a, Rng, 2, 0)
WsK.Cells(k, 5).Value = WSF.VLookup(a, Rng, 3, 0)
WsK.Cells(k, 2).Value = WSF.VLookup(b, Rng, 2, 0)
WsK.Cells(k, 6).Value = WSF.VLookup(b, Rng, 3, 0)
WsK.Cells(k, 3).Value = WSF.VLookup(c, Rng, 2, 0)
WsK.Cells(k, 7).Value = WSF.VLookup(c, Rng, 3, 0)
WsK.Cells(k, 4).Value = WSF.VLookup(d, Rng, 2, 0)
WsK.Cells(k, 8).Value = WSF.VLookup(d, Rng, 3, 0)
WsK.Cells(k, 9).Value = WSF.Sum(Range(WsK.Cells(k, 5), WsK.Cells(k, 8)))
k = k + 1
Next d
Next c
Next b
Next a
Set WsD = Nothing
Set WsK = Nothing
Set Rng = Nothing
Set WSF = Nothing
End Sub
-----------------------------------------------------------------
⑥ これを実行すると、kekkaシートのA~D列に生徒名、E~H列にそれぞれのタイム。
I列に4人のタイム合計が並びます。
⑦ 最も多い合計パターンを出すには、最頻値を求めるとして、
=MODE($I$2:$I$20476) で出せますから、オートフィルタして、この最頻値となる
組み合わせを抽出してみてはどうでしょうか。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>30人の子供でおなじ4人組を作ったとしたら、2人あまるような場合
これについてもよく分からなかったのですみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 掃除機・クリーナー・空気清浄機 Excel活用法 1 2023/01/16 20:02
- 友達・仲間 9月に体育祭があります。 その種目の中に、クラスリレーとは別に選抜選手リレーというものがあるのですが 2 2022/06/01 16:11
- その他(Microsoft Office) Excelの表記ゆれについて <状況詳細> 7000人を対象とした一覧表があり、それぞれが各支社やチ 2 2023/06/02 15:08
- 学校 学校の愚痴です。 卒業制作でチームでやるみたいなのがあるのですが、私は何故かチーム制作なのに1人です 4 2023/01/15 12:06
- その他(学校・勉強) 集合の問題です。塾の課題でわからないので教えてほしいです。 Aチーム11人とBチーム7人とCチーム1 1 2023/02/28 22:53
- 中学校 中学2年生の男子です。来週、運動会なんですが、僕の中学校の運動会は、種目で部活動行進と部活動対抗リレ 2 2022/10/07 07:01
- 会社・職場 これってパワハラでしょうか? 私の部署は2つのチームに分かれています。一つが企画チームで、もう一つが 5 2022/10/11 23:08
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
- 野球 小学三年生の8月からから野球を始めたのですが。。。 1 2022/09/29 16:32
- 野球 BIG BOSS 4 2022/04/18 09:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA一覧取得 再投稿
-
VBA指定行削除
-
エクセルVBAについて
-
VBA ユーザーフォーム ボタンク...
-
VBA 複数のエクセルから一つの...
-
【ExcelVBA】値を変更しながら...
-
VBAに詳しい方教えてください。
-
VBA listBoxについて
-
Vba 実数および実数タイプの変...
-
現在のブックを閉じないで、マ...
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
-
VBA マウスクリックとキーボー...
-
VBA レジストリの値の読み方に...
-
2つのマクロでチェックボックス...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ExcelのVBAコードについて教え...
-
【マクロ】1つのマクロの中に...
-
エクセルについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報
soixante 様
ありがとうございます。教えていただいたとおりにやってみました。
子供の記録の組み合わせまではできましたが、説明の仕方が悪かったようなので補足させていただきます。
28人でリレーチームを7つ作ります。7チームのメンバー4人の合計タイムができるだけ近いような組み合わせにしたいと思います。
soixante 様の方法だとたくさんの組み合わせができて、オートフィル同じタイムの組み合わせの抽出はできるのですが、別々の子供の組み合わせ(7チーム)にするためには数値を手作業で拾っていくようになってしまいます。
できれば最後のチーム分けまでできるとたいへん助かるので、お知恵をお借りいただけないでしょうか。よろしくお願いします。