

No.5ベストアンサー
- 回答日時:
1.範囲 F2:F60 に59人の名前を入力
2.セル E2 に式 =RAND() を入力して、此れを下方にズズーッとドラッグ&ペースト
3.セル C2 に式 =VLOOKUP(SMALL(E$2:E$60,ROW(A1)),E$2:F$60,2,FALSE) を入力して、
此れを下方に(セル C60 まで)ズズーッとドラッグ&ペースト
4.グループ分けは次のようにすればよろしいかと
7人グループ1 → C2:C8
7人グループ2 → C9:C15
7人グループ… → ………
7人グループ5 → C30:C36
6人グループ1 → C37:C42
6人グループ2 → C43:C48
6人グループ3 → C49:C54
6人グループ4 → C55:C60

ご回答ありがとうございます。
すごいっすね。できました。ありがとうございます。
どうしたら、そんなにエクセルをマスターできるんですか!?
No.6
- 回答日時:
ANo3 merlionXXです。
> バージョンは、2010です。
> VBAの画面が出てこないので、ネットでVBA画面の出し方を調べて出しました。
> それに貼り付けることはできたんですが、それ以降をどのように行えば良いのか分からなくなってしまいました。
Windows7/Excel2010を持っている方のところで試してきました。
2007までと同様に
ワークシート画面から、Altキー+F11キーでVBE画面にいけました。
VBE画面から、Altキー+F11キーで、またワークシートに戻れました。
ワークシート画面でAltキー+F8キーで、マクロ実行のダイアログも出ました。
標準モジュールにちゃんとコピペされているかどうかもう一度確認してから、再度お試しください。
No.4
- 回答日時:
既回答もそれと思うが、1-59の乱数を59人の作業列にふり、その乱数順にソートする。
もちろん同番号は現れるが、ソートすることにより、同じ乱数値でも上からの順位(場所というか)は決めてくれる。これで上から7人ずつ5組と、残り6人を4組作れば良い。
エクセルの関数RAND、RANDBETWEENを使う。
http://d.hatena.ne.jp/sutara_lumpur/20080826/121 …
http://aoki2.si.gunma-u.ac.jp/Hanasi/excel/のような記事もあります。
しかし質問程度の場合は気にしなくても良いかと。
乱数が出た直後に、乱数の式を消して、自身のセルに値化するほうが良いと思います。(形式を選択して貼り付けー値)
エクセル関数のSeed値
VBAの場合はシード値を指定できます。
http://officetanaka.net/excel/vba/function/Rnd.htm
ーー
一発で出すなら
No.3
- 回答日時:
エクセルのバージョンは何ですか?
すくなくとも2007までは試したことがあり、この方法で大丈夫だと思うのですが・・・。
> VBAにコピペするところまでは、できたんですが、その後、Alt+F11、Alt+F8ができません。
> そもそも、Alt+F11でVBAがでてきませんでした。
Alt+F11でVBE画面がでなかったら、どうやってどこに貼り付けましたか?

たびたびのご回答ありがとうございます。
バージョンは、2010です。
VBAの画面が出てこないので、ネットでVBA画面の出し方を調べて出しました。
それに貼り付けることはできたんですが、それ以降をどのように行えば良いのか分からなくなってしまいました。
何度もすみません。
No.2
- 回答日時:
Rand関数での方法はすでに出ていますが、関数方式だと再計算のつどグループが再設定されてしまいます。
その点、マクロならユーザーが指示しない限りそのままの状態を維持します。
以下の前提でマクロを作成しました。
・対象となる59名のデータはSheet1のA1セルからA59セルにある。
・グループを書き込む先はSheet2のA列からI列に7名5グループ、6名4グループ、Sheet
手順は以下のとおりです。とても簡単ですよ。
1.データのあるエクセルの画面上で、AltキーとF11キー同時に押し(以下Alt+F11キーと記述)て Visual Basic Editor を呼び出します。
2.Visual Basic Editor のメニューから「挿入」、「標準モジュール」で出てきたコードウィンド(右側の白い広い部分)に以下のコード(Sub~End Sub)をコピペします。
'********これより下**********
Sub test01()
Dim ws(1 To 2) As Worksheet
Set ws(1) = Sheets("Sheet1")
Set ws(2) = Sheets("Sheet2")
Randomize
With ws(2)
Application.ScreenUpdating = False
ws(2).Cells.ClearContents
ws(1).Range("A1:A59").Copy .Range("A1:A59")
For i = 1 To 59
.Cells(i, "B") = Rnd
Next i
.Range("A1:B59").Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlNo, Orientation:=xlTopToBottom
.Range("B1:B59").ClearContents
For i = 1 To 10
x = IIf(i > 5, 1, 0)
.Range(.Cells(8 - x, i), .Cells(8 - x, i).End(xlDown)).Cut Destination:=.Cells(1, i + 1)
Next i
Application.ScreenUpdating = True
End With
End Sub
'********これより上**********
3.Alt+F11キーでワークシートへもどります。
4.Alt+F8キーで出てきたマクロ名(test01)を選択して実行します。
上記4.を何度でも実行できます。
その都度Sheet2のグループ構成員はランダムに変わります。
お試しください。
ご回答ありがとうございます。
VBAにコピペするところまでは、できたんですが、その後、Alt+F11、Alt+F8ができません。
そもそも、Alt+F11でVBAがでてきませんでした。
どうしたら、よいでしょう。
No.1
- 回答日時:
図のようにA列にランダムで大きい数字を表示し、
B列にA列の数字の順位をつけ、それを59行目までコピーして、
順位に対応する出席番号にすれば大丈夫だと思います。
しかしこの方法だとグループ分けができないので、
上から何人がAグループ、みたいな分け方をしなければなりません。
あと、ランダムの数字の表示は何か作業をするごとに変化してしまうので、
気をつけてください。
※ ランダムの表示なので小さい確率で同じ数字が表示される場合がありますが、
どこかに一文字入力するなど何か作業をすれば数字は変化します。
A1内容 =RAND()*100000000
B1内容 =RANK(A1,$A$1:$A$59)

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
if関数の複数条件について
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
【マクロ】数式を入力したい。...
-
表計算ソフトでの様式の呼称
-
空白のはずがSUBTOTAL関数でカ...
-
【関数】=EXACT(a1,b1) a1とb1...
-
【マクロ画像あり】❶1つの条件...
-
エクセルの文字数列関数と競馬...
-
【画像あり】【関数】指定した...
-
エクセルでフィルターした値を...
-
エクセルに写真が貼れない(フ...
-
エクセルのライセンスが分かり...
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
【マクロ】excelファイルを開く...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】既存ファイルの名前...
-
【マクロ】【画像あり】4つの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報