Excelの関数かVBAでグループ分けする方法を教えてください(。-_-。)
(VBA初心者です)
ある人数を、人数、性別、年齢がそれぞれ平均になるようにランダムにグループ分け(10グループ)するにはどうすればいいでしょうか。
また、グループ分けした際に、前回、前々回とかぶってしまうのは5人までにとどめたいです。
(a列名前、b列年齢、c列性別、d列前回グループ名、e列前々回グループ名入っています)
手入力でグループをざっと分けてから平均値を見てちまちま調整していましたが、時間がかかります(ー ー;)また、名前固定の順番で並んでいるので上から順番にふっていくと毎回似たようなグループに…(ー ー;)
効率の良い方法があれば教えてください!よろしくお願いします;_;
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
とりあえず「グループをざっと分けて」の部分のみ作りました。
「前回、前々回とかぶってしまう」の判定はかなり重いのでやっていませんが乱数をうまく使っているので多分かぶりは少ないと思います。
グループ名は処理しやすいように番号にしています。
結果の平均値などがわかる様に下図のように G ~J列を使っています
コードは以下の様になります。標準モジュールへ
-------------------------------------------------------------------------------
Sub Sample()
Const グループ数 As Long = 10
Dim 平均人数 As Double
Dim 全人数 As Long
Dim 最高年齢 As Long
Dim グループ As Long
Dim 行 As Long
Dim 終 As Long
Randomize
Columns("E:E").Insert Shift:=xlToRight
終 = Cells(Rows.Count, 1).End(xlUp).Row
Range("H2:K" & 終).ClearContents
最高年齢 = Application.WorksheetFunction.Max(Range("B2:B" & 終))
For 行 = 2 To 終
Cells(行, 5).Value = 行
If Cells(行, 3).Value = "男" Then
Cells(行, 4).Value = 最高年齢 * 10 + Cells(行, 2).Value + Rnd()
Else
Cells(行, 4).Value = Cells(行, 2).Value + Rnd()
End If
Next
Cells.Sort _
Key1:=Range("D2"), _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
For 行 = 2 To 終
グループ = グループ + 1
If グループ > グループ数 Then グループ = 1
Cells(行, 4).Value = グループ
Cells(グループ + 1, 8).Value = グループ
Cells(グループ + 1, 9).Value = Cells(グループ + 1, 9).Value + Cells(行, 2).Value
If Cells(行, 3).Value = "男" Then
Cells(グループ + 1, 10).Value = Cells(グループ + 1, 10).Value + 1
Else
Cells(グループ + 1, 11).Value = Cells(グループ + 1, 11).Value + 1
End If
Next
Cells.Sort _
Key1:=Range("E2"), _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
Columns("E:E").Delete Shift:=xlToLeft
Columns("G:J").Sort _
Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
For 行 = 2 To Cells(Rows.Count, 7).End(xlUp).Row
Cells(行, 8).Value = Cells(行, 8).Value / (Cells(行, 9).Value + Cells(行, 10).Value)
Next
End Sub
-------------------------------------------------------------------------------
※ グループ数は「Const グループ数 As Long = 10」を変更すれば簡単に変更出来ます。
※ 性別の欄は「男」か「女」にして下さい。他の文字は総て「女」として処理されます。
※ 振り分けの仕組みですが、各人に特別な数字を振った後、その番号でソートして上から順にグループに1人ごと振り分けていきます(1,11,21,…がグループ1、2,12,22,…がグループ2、のように振っていく)。そして元の順番に戻しています。
肝は特別な数字です。男ならば最大人数を10倍したものに年齢と0から1未満の乱数を足したもの、女ならば年齢に0から1未満の乱数を足したものです。こうやることによってそれぞれの項目が重なることがなくランダムにきれいに並びます。
※ 画面の表示更新を止めればもっと早くなりますが、動いているのが判ってこちらの方が良いと思います。
No.1
- 回答日時:
なかなか面白そうな課題ですね
ちなみに以下どのように考えているか説明いただけますか?
① 全体の人数は何人位を想定していますか?
② 年齢の構成はどのような物を想定していますか?
③ 年齢の全体平均よりグループ平均の差はどの位許容して良いですか?
④ 男女の構成比はどのような物を想定していますか?
⑤ 全体の構成比とグループごとの構成比の差はどの位許容して良いですか?
なお表示方法ですが、A列名前、B列年齢、C列性別、D列今回グループ名、E列前回グループ名、F列前々回グループ名の方が良いと思うのですが、いかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) 指定した数字まで累計する方法や文字例の抽出について教えてください 4 2022/10/05 21:19
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) Excelのvbaについて教えてください。 図形一つ一つに名前がついています。 指定した図形の名前を 2 2022/08/04 15:13
- 統計学 処理Aと処理A+Bの2群の差から、AとBの効果や相対的重要性を定量したい 5 2023/02/22 09:42
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) 指定した条件でTRANSPOSE関数を使う 5 2023/08/18 19:45
- 片思い・告白 至急!恋愛相談です。スポーツ社会人サークルに気になる男性がいます。でもいつも同じ女性と一緒にいるため 1 2022/06/23 00:32
- Excel(エクセル) VBAで重複データを合算したい(時間) 1 2022/12/08 23:06
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
得点をもとにチーム分け
Excel(エクセル)
-
50人を数回、グループ分けする方法について。
数学
-
重複しないグループ分けをエクセルで
Excel(エクセル)
-
-
4
データに条件付をつけてまんべんなくばらばらにグループ分けする方法
Access(アクセス)
-
5
10人を2人づつ5組にランダムに分けて表示したい。
その他(プログラミング・Web制作)
-
6
エクセルでランダムにチーム分けをしたいです。
Windows Vista・XP
-
7
エクセルで公平にチーム分けする方法を教えて下さい
その他(Microsoft Office)
-
8
エクセルで重複しない組み合わせ出力方法
Excel(エクセル)
-
9
エクセルで重複しない組み合わせの出し方
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グループラインのアイコン写真...
-
Excelで隣り合った場所を別々に...
-
ディズニーで別行動したいんで...
-
Excelの関数かVBAでグループ分...
-
エクセルVBA 行のグループ化を...
-
班と組
-
同族会社の判定において
-
ピボットテーブルで締日を設定...
-
業務スーパーは、マキヤグルー...
-
学級委員になりました 愚痴気味...
-
カテゴリとグループの違いは?
-
群数列の問題です。 次のように...
-
高校生男子です。まだほとんど...
-
娘が嫌われます。
-
誕プレをあげても返してくれな...
-
女子も自分のお尻の穴(肛門)...
-
クラスメイトが亡くなった方っ...
-
好きじゃない人から一緒に帰ろ...
-
高校1年生です。 友達なんです...
-
クラスでぼっちなのが本当に辛...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グループラインのアイコン写真...
-
ディズニーで別行動したいんで...
-
Excelで隣り合った場所を別々に...
-
カテゴリとグループの違いは?
-
グループ内で一人だけ苦手な人...
-
同期のグループがちょくちょく...
-
グループ化の+を開く時にパス...
-
ピボットテーブルで締日を設定...
-
エクセルVBA 行のグループ化を...
-
Excelの関数かVBAでグループ分...
-
業務スーパーは、マキヤグルー...
-
女子の7人グループって奇数なの...
-
同族会社の判定において
-
大学の友人関係で悩んでます。 ...
-
徒遍路について
-
学級委員になりました 愚痴気味...
-
息子が小学生ですが、遠足やイ...
-
高校生女子です。 私抜きでLINE...
-
わかりません 日本語 1グルー...
-
友人のグループLINEの返信で私...
おすすめ情報