
No.2ベストアンサー
- 回答日時:
こんにちは。
ヒマなのでwwwwマクロ作りました。すんげぇ長文レスなので覚悟してくださいw
そもそも乱数表というものがよく判らないのですが、組み合わせの条件が相当複雑になります。
例えば下記のURL先の乱数表を見てください。
http://www.geocities.jp/ttc1jp/order.html
これの9人の列を見てほしいんですが、2コートで実施した場合、9回,10回目のところで
6番さんが両コートでプレイしなければならなくなります。
9人などコート数が2コートだけで良いのであればこういうのも排除できるんですが、
13人以上で2コートでも3コートでも出来てしまう場合、乱数表だけでは必ず6番さんのような
重複が発生してしまいます。
そこで、乱数表のフォーマットからちょびっと外れるかも知れないんですが、
(1) 最初にコート数を指定する
(2) 前回参加できなかった人(見学者)は次回に優先的に参加できる
(3) ひとりの人を同時に別コートで試合という無茶はさせない
(4) ランダムにこだわる
というマクロを作ってみました。
【つかいかた】
<マクロ準備編>
(1)新規ブックを開き、とりあえず名前をつけて保存します。『てにす乱数表.xls』にしましょうか。
(2)メニューバーから、ツール→マクロ→Visual Basic Editorを選択します。
Visual Basic Editorが起動します。
(3)左側に「VBAProject(てにす乱数表).xls」というのがあると思います。
ツリー状になっていて、左の[+]で展開していくと、「ThisWorkbook」という
ものが表示されると思います。
(4)その「ThisWorkbook」をダブルクリックします。
右側に「~~.xls - Thisworkbook(コード)」というウインドウが表示されます。
(5)そこに、下記のコードをコピー&ペーストしてください。
(6)Visual Basic Editorを閉じます。
(7)ここで一旦上書き保存しておきましょう。
<データ準備編>
(1)セルA1に、コート数を入力してください。数字でお願いします。
(2)セルB1から横方向に、人数を入れていってください。
(3)セルA2から縦方向に、試合数を入れていってください。
こんなかんじ
_A__B_C_D__E__F__G__H__I__J__K
1| 3 5 6 7 8 9 10 11 12 13 14…
2| 1
3| 2
4| 3
5| 4
6| 5
7| 6
:
<データ作成編>
(1)メニューバーから、ツール→マクロ→マクロ と選択してください。
(2)実行するマクロの一覧に「ThisWorkbook.乱数表作成」というのがでるので、
それを選択して「実行」してください。
(3)砂時計が消えたら完成です。
このマクロは実行するたびに結果が変わります。気に入らなかったら何度でも
やり直してください。
また、全セルを消去すれば、データ準備からやり直すことも出来ます。
好きな表をいくつでも作ってください。
ちなみに100人とかデータ数がえらく膨大になると、なかなか計算が終わりませんので。
その場合は気長に待ってください。
'-----マクロ ここから-----
Sub 乱数表作成()
Dim iRow As Integer
Dim iCol As Integer
Dim iCnt As Integer
Dim iCnt2 As Integer
Dim iTmp As Integer
Dim sNum() As String
Dim bChk() As Boolean
Dim bChk2() As Boolean
Dim bFull As Boolean
Dim iCourt As Integer
iCol = 2
Do Until Cells(1, iCol) = ""
iRow = 2
If Cells(1, 1) * 4 > Cells(1, iCol) Then
iCourt = Round(Cells(1, iCol) / 4 - 0.5, 0)
Else
iCourt = Cells(1, 1)
End If
ReDim sNum(iCourt * 4 - 1)
ReDim bChk(Cells(1, iCol))
ReDim bChk2(Cells(1, iCol))
For iCnt = 1 To Cells(1, iCol)
bChk(iCnt) = True
bChk2(iCnt) = True
Next iCnt
Do Until Cells(iRow, 1) = ""
iCnt = 0
Do Until iCnt = iCourt * 4
iTmp = Round(Rnd(Second(Now)) * Cells(1, iCol) + 0.5, 0)
If bChk(iTmp) And bChk2(iTmp) Then
sNum(iCnt) = "[" & Trim(Str(iTmp)) & "]"
iCnt = iCnt + 1
bChk(iTmp) = False
bChk2(iTmp) = False
bFull = False
For iCnt2 = 1 To Cells(1, iCol)
bFull = bFull Or bChk(iCnt2)
Next iCnt2
If bFull = False Then
For iCnt2 = 1 To Cells(1, iCol)
bChk(iCnt2) = True
Next iCnt2
End If
End If
Loop
Cells(iRow, iCol) = sNum(0)
For iCnt = 1 To iCourt * 4 - 1
Select Case iCnt Mod 4
Case 0
Cells(iRow, iCol) = Cells(iRow, iCol) & Chr(10) & sNum(iCnt)
Case 2
Cells(iRow, iCol) = Cells(iRow, iCol) & ":" & sNum(iCnt)
Case Else
Cells(iRow, iCol) = Cells(iRow, iCol) & sNum(iCnt)
End Select
Next iCnt
For iCnt = 1 To Cells(1, iCol)
bChk2(iCnt) = True
Next iCnt
iRow = iRow + 1
Loop
iCol = iCol + 1
Loop
End Sub
'-----マクロ ここまで-----
あー面白かったw ナイス暇つぶし。
解らないところがあったら聞いてください。
ありがとうございます。
すごく難しそうに感じますが・・・今からこれをプリントして、頑張ってやってみようと思います。ゲームのやり方としては、18人のダブルスの対戦表を作っておいて、(全ての組み合わせで)それを長い期間で消化していって、個人別に勝ち点をつけよう、という目的で使います。ダブルスなので常に2人は休みになる前提です。そうすると・・・コート数は4で作ってみれば大丈夫ですか?
No.4
- 回答日時:
A列はA1に1を入れる。
セルの右下にカーソルを合わせると黒十字のカーソルに変化する。これを必要なところまでドラッグして離し、連続データをクリックすると連続した数値が出る。B1に=RAND()と入れ、A列と同じ状態の黒十字を出し、今度は左クリックをして、下までドラッグ。(これでコピーできる。)
C1には一つずつ名前を入れる。
これで、A列の左上をクリックしてC列の右下までドラッグする。
これでセルの色が変わります。この状態でデータ→並べ替えを実行すれば、できます。
健闘を祈る!!
本当に丁寧に教えていただいてありがとうございます。
順不同で、ばらばらに並べ替えることが出来ました。
テニスのダブルス対戦表は、riodさんのやり方で作ることが出来ました。組み合わせ、並び替えなど、遠い昔の数学のようで、頭が痛くなりましたが、今回の経験で、私ももっとエクセルの事を知りたくなりました。
回答を寄せていただいた皆さんに感謝します。ありがとうございました。
No.3
- 回答日時:
>RANDの後の()の中には
何も入れません。こういう関数もあるのです。
これで、入れた範囲を選択して、データ→並べ替えで優先されるキーにRANDを入れた列を選択して改行で変化します。
あとRANDは何か確定するたびに(改行などを押す)変化します。また並べ替えた時も、数値順に並びません。ただし、ばらばらに入れ替わります。
ありがとうございます。TOngTOngさんに教えていただいて、途中になっている表でやってみていますが・・・本当に初心者で申し訳ないですー入れた範囲を選択して、とあるのは、A列にいれた1から18を選択するのですか?また、RANDを挿入するのはB1セルでいいのですか?
わからないことだらけの私ですが、親切な方がたくさんいるのだ、と初めてこの掲示板を利用して感激しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 情報処理技術者・Microsoft認定資格 J検【令和3年度後期 情報システム試験 システムデザインスキル】問題1(2)の解き方を教えてください 1 2022/03/22 18:36
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- その他(悩み相談・人生相談) 質問や回答を公開にして、誰かに見えるようにしておく。 皆さま、非公開ですが。 質問を見つけるのはキー 7 2022/11/26 06:03
- ノートパソコン 職場では使わない、仕事用のノートパソコンを買おうと思っているのですが、価格帯はいくら位のものが良いで 7 2022/05/10 19:04
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- その他(ブラウザ) 教えて!gooなのですが、投稿者名で検索されたら過去の質問が出てきてしまいますか? 3 2023/03/13 02:51
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- ルーター・ネットワーク機器 「マルチSIMルーター」について教えて下さい 3 2022/06/24 08:59
- 教えて!goo 回答者によって解決したのにベストアンサーをつけない意味は? 9 2022/11/02 18:52
- 大学受験 青山学院大学数学について質問です。 過去問を見たところ他の大学にはないこのような表記がありました。 2 2023/02/16 11:06
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ヒートテックはまだ暑いですか?
-
お店でコートを間違えられました。
-
飲食店でのコートの取り違え
-
こっちの店の方が安かった! シ...
-
動けない負傷者がいる場所から...
-
リーグ戦総当り表の作成につい...
-
関東で、ウールのコートは必要...
-
お正月の香港の服装
-
そでが長い(Pコート)短くしたい
-
バレー9チーム3コート総当た...
-
透け素材のブラウス、何月頃ま...
-
東京でのコート
-
冬のコートを裏返しにして手に...
-
めちゃくちゃ寒がりなんですけ...
-
2月8日にディズニーランドに女3...
-
チャイナドレス
-
ダズリンのコート
-
時間のお金換算の考え方
-
プードルコートとか好きなんで...
-
腰辺りまでのコートか、足首く...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!!私服★ジャケットの上に...
-
ヒートテックはまだ暑いですか?
-
お店でコートを間違えられました。
-
アスファルト乳剤1tは何リット...
-
バレー9チーム3コート総当た...
-
飲食店でのマナー(コート)
-
そんなに非常識でしょうか?
-
スーツの上にコートを羽織ると...
-
至急お願いします! 最高気温13...
-
排球の意味とは?
-
コートのチャック閉めないで歩...
-
洋服の生地で「WS」の表示は?
-
コートやパーカーのファスナー...
-
職場の飲み会(ほぼ同僚と仲の...
-
飲食店でのコートの取り違え
-
レストランでコートを間違えら...
-
こっちの店の方が安かった! シ...
-
この服装はおかしいですか? 黒...
-
ウール素材のコートが雨や雪に...
-
着用回数の少ないコート類をク...
おすすめ情報