Excelで重複しないグループ分けの方法が知りたい

Anonymous
2023-10-23T13:56:14+00:00

実習を全12回行います。Aグループ20人Bグループ20人を4人ずつグループに分けます。リーダー、副リーダー、書記、メンバーの1グループ4人にする。12回行いできるだけ多くの人と関わるように違う人とグループにする。また、Aさんは1回目リーダー、2回目副リーダー、3回目書記、4回目メンバーのように役割を毎回交代する。10グループのうち3グループは外で実習する。まんべんなく外実習をできるようにする。組み合わせは1回目から4回目は同じ組の中からグループ分け、5回目から8回目はA組、B組から2名ずつ、9回目以降はランダムにする。エクセルで作りたいです。

excelは関数は分かりますが、VBAは触ったことがないです。

よろしくお願いします。

**モデレーター注**

「ディスカッション」として投稿されましたが、内容から判断して「質問」に変更しました。

特定の問題に対する解決法を求める場合は「質問」、一般的な技術問題の議論や他の方の意見を聞く場合は「ディスカッション」として投稿してください。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

motosan 3,310 評価のポイント
2023-10-24T00:58:50+00:00

VBA難しい さん

■グループ分けのアルゴリズムを教えてほしいということでしょうか?

そうだとすると、回答は難しいと思います。

■グループ分けのアルゴリズムはわかっていて、VBAの基本的なことを教えてほしいということでしょうか?

そうだとすると下記のドキュメントが役に立つと思います。(Microsoftのサイトではありません。)

※ 途中のログイン画面でアイティメディアIDの登録が必要になります。

(メールアドレス・生年月日:所在地の都道府県等の入力が必要です。)

【改訂版】プログラミング初心者がExcelマクロ/VBAを始めるための入門電子書籍全273ページを無料で提供 <- Microsoftのサイトではありません。

この記事の下の方の「今すぐダウンロード」のボタンを押します。

ログイン画面が表示されるので「アイティメディアIDに未登録の方」の新規登録を行ってからログインしてください。

ログインするとPDFのファイルが表示されるので必要ならPCへ保存してください。

この中の2章から6章あたりを読むとExcelでの環境設定から簡単なプログラムの作成方法がわかると思います。

このページは ITエキスパートのための問題解決メディア - @IT で "excel vba 入門"でサイト内検索するとヒットします。(一覧の中程にあります)

Microdoftのドキュメントとしては下記のものがあります。

Office VBA の基礎知識

Office Visual Basic for Applications (VBA) リファレンス

この中の > 言語リファレンス > 概念 > Visual Basic にいろいろなサンプルがあります。

リファレンスはある程度の知識が必要だと思います。

以上、ご参考になれば幸いです。

この回答は役に立ちましたか?

2 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2023-10-24T04:07:24+00:00

    外実習についてわかりやすくしていただきありがとうございます。

    確かにまんべんなくは曖昧でした。おっしゃるように外実習の回数誤差は1回ぐらいにしたいです。

    もう少し深掘りします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2023-10-24T04:05:01+00:00

    VBAについて勉強してみます。

    関数だけでは難しそうですね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. motosan 3,310 評価のポイント
    2023-10-24T02:47:45+00:00

    VBA難しい さん

    「まんべんなく外実習をできるようにする。」という制約については、

    sk.exe さんが指摘されたように、「均等に外実習する」という解釈もできます。また、せいぜい一回の差になるように外実習するという解釈もできます。

    私は、「全員が少なくとも一回は外実習する」と解釈していました。

    質問があいまいなのかな?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2023-10-24T01:33:17+00:00

    本質的には「それを実現し得るアルゴリズムを考えてほしい、教えてほしい」
    という趣旨のご質問であり、それ自体は Excel や VBA がどうとかいう
    以前の問題であるように思います。

    > 実習を全12回行います。> 10グループのうち3グループは外で実習する。まんべんなく外実習をできるようにする。

    ・実習 1 回につき、外実習を受けるグループの数が 3 であるということは、
     その際に外実習を受ける実習生の人数は 3 * 4 = 12 名。

    ・これを 12 回行なうので、全実習を通して外実習を受ける実習生の延べ人数は 12 * 12 = 144 名。

    > Aグループ20人Bグループ20人を4人ずつグループに分けます。

    ・実習生の人数は全員で( A 組と B 組を合わせて) 40 名であるので、
     1 名の実習生が外実習を受ける平均回数は 144 / 40 ≒ 3 (余り 24 )回。

    ・余った分の回数を 1 名ずつに割り振るようにした場合、全実習を通して
     外実習を 3 回受ける実習生は 16 名、4 回受ける実習生は 24 名
     ということになる。

    ・したがって、1 名の実習生は最低でも 3 回外実習を受けなければならず、
     かつ 5 回以上の外実習を受けてはならない、ということになる。

    まずそれぞれのルールについてこういった形で深掘りするのが先でしょう。
    その辺りの仕様を明文化しない限り、どんなプログラミング言語であれ
    コーディングすることは出来ません。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません