• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【エクセル 関数 マクロ】連番のグループ割当)

エクセル関数マクロで連番のグループ割当をランダムに設定する方法

このQ&Aのポイント
  • エクセルの関数やマクロを使用して、連番のグループ割当をランダムに設定する方法について教えてください。
  • 具体的には、B列に氏名を入力し、A列に1〜∞までの連番を1〜10個ずつランダムにグループ分けして入力したいという要件です。
  • グループ数やグループごとの人数もランダムに設定したいため、他のセルで適切な計算を行い、A列に反映させる方法も知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

E1セルにグループ番号と記入する F1セルにグループ人数と記入する G1セルに出現順と記入する E2以下に1,2,3…と、平均してだいたい200行ぐらいまで数字を列記する F2に =RANDBETWEEN(1,10) と記入し、下向けにコピー貼り付ける G2に =IF(SUM(F1:G1),SUM(F1:G1),1) と記入、リスト下端までコピー。この下端の値が必要な人数に達していることを確認。 で。 A2に =MATCH(ROW(A1),G:G,1)-1 と記入、下向けにコピー貼り付ける。

fubi0422jp
質問者

補足

ありがとうございます! 早速試しましたが、完璧にできました! すごいです! でも、どれだけ数式とにらめっこしても、 仕組みが分かりません。。。 どういう理屈で組んでいるのでしょうか・・・?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

どのくらいの頻度でグループを変えていいのか解らなかったので適当にやってます。あまり頻繁にグループを変えたくなければ式中の0.5を1未満のもう少し大きい値にしてください。 A2に1 A3に↓を入れて下にコピー =A2+(0.5<((COUNTIF(A$2:A2,A2)>9)+RAND())) 乱数を使っていますので計算するたびにグループが変わります。 何度か計算させてこれで良いと思ったら、A列をコピーしてそのままA列に値のみ貼り付けを行って確定してください。

fubi0422jp
質問者

お礼

ありがとうございます! 試してみましたが、最初の数行だけがランダムにならず、1行にしかなりませんでした。 それ以降はおっけぃでした! 参考にさせて頂きます♪

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで連番をマクロで

    こんにちは いつもお世話になっています。 Windows7、エクセル2010で教えてください。  B3から仮にB100まで文字列があるとします、空白セルはありません。 この状態でA3からA100まで1から始まる連番をマクロで実行したいのです。 実際はB列のデータの最終行は不定です。つまり、B列にデータがなくなるまで(空白セルになるまで)A列に連番をつけたいのです。現在はA3,A4に1,2と入力し、オートフィルで該当セルを選択し「予測」で連番をつけています。 マクロ記録ではB列にデータがなくなる判断ができなくて作れません。 この作業が頻繁にあるものですからマクロができれば助かります。 よろしくお願いいたします。

  • エクセル 関数 各値ごとに連番を振りたい

    エクセル2010を使っています。 各値ごとに連番を振りたいです。 具体的に、添付画像で説明します。 A列には、元となる値がすでに入っています。 B列には、A列の各値ごとに、連番を振りたいです。 B列に入れる関数を教えてください。 よろしくお願いいたします。

  • エクセルで、条件の合うものだけに連番をつけたいです。

    A列に連番があります。この番号は変えることができません。 B列に、条件を満たすセルだけに別の連番をつけたいです。例えば、D列がTRUEである行が1,5,6…とあったとすれば、B1が1、B5が2、B6が3…といった具合にです。 よろしくお願いします。

  • ExcelのCOUNTA関数で数えた数だけ連番を付けるには

    ExcelでB列から下の行にデータが入力されています。 そのデータ数を数えるために,B4セルに=COUNTA(B5:B100)関数を入力します。 B4セルで数えた数を元にして,A5,A6,A7・・・と下方向にその数まで1,2,3・・・と連番を付けていきます。 もしB4セルの値が0なら連番は付けません。 以上のマクロをシートに貼り付けるにはどのようにしたらよいでしょうか? 教えてください。お願いします。

  • エクセルの連番について

    例えばA列が商品コード番号を入力する行でB列が伝票番号を入力する行だとします。A列に入力すると自動的にB列に連番が入るようにしたいのですが・・・   A  B 1 11  1 2 23  2 3 54  3 こんな感じですが。

  • Excelでグループ化し、グループ名を数値で返すには?

    Excelで次の解を求める時、いいアイディアはないでしょうか。 1) セルをグループ化します。 2) 次にグループ化したまとまりごとに、 左列に数値を順に返します。 つまり以下のようなセルがあるとき : A B 1 : 空白 442565 2 : 空白 442565 3 : 空白 332211 4 : 空白 332211 5 : 空白 332211 ↓ : A B 1 : 1 442565 2 : 1 442565 3 : 2 332211 4 : 2 332211 5 : 2 332211 つまりBが同じ数値である セル同士をワングループとして、 そのグループを順列に数値でA列に 区分したいのです。 A列が何セルでグループ化されるかは ランダムです。B列において2つのセルが 同じ数値を共有している場合もありますし、 100のセルが同じ数値を共有しているもあります。 データ総数はおよそ9000列ほどになります。 集計機能を用いた方がよいでしょうか。 関数の他にアイディアがあれば、教えて 頂けるととても助かります。 宜しくお願い致します。

  • エクセルのマクロ(行を挿入し連番を振る)

    ボタンを押すと以下のことを実行するマクロを作成することはできますか? A列2行目から 書類a 書類b 書類c 書類d 書類e C列2行目から 5 3 2 4 3 と入っています。C列は各書類の枚数です。 ボタンを押すと書類aと書類bの間に4行空白行が挿入され、A列とC列は増やした4行にそれぞれ書類a、5がコピーされ、B列には2列目から6列目まで1.2.3.4.5と連番が振られる。 というマクロです。 B列C列で1/5 2/5 3/5 4/5 5/5 であるという表現がしたいのです。(/は入りません) 書類が1枚の場合はB列C列共に空白で1/1とは入りません。 C列に入る書類の枚数により行が挿入されその書類の枚数分の連番が振られるようなマクロが作りたいです。 毎日何百行も手作業で挿入しコピーし連番を振る作業をしています。 決まった行数を増やすとか上の行をコピーするマクロならわかるのですが、C列の値を見て挿入する行数を判断するようなマクロができるのかわかりません。 どなたか教えて頂けないでしょうか。

  • エクセルでの連番の処理

    お世話になります。 1行目に入力されたデータをルールに沿って2行目以下にどんどん追加していきたいと思っています。 まずD1、E1のセルに数字を入れます。 例:D1に3、E1に25 を入れてマクロを実行するとD列の2行目以下に3,4,5,6…25と連番で入力出来るようにしたいのです。 この例ではD列は24行目まで入力されています。そこで2行目から24行目までのA,B,C列にはそれぞれ1行目のA,B,C列と同じデータを入力します。なおA,B,C列は数字、文字列どちらもあります。空白の場合もあります。 この状態でA~E列の1行目のデータを変更し、仮にD1を2、E1を15としたとします。ここで再度マクロを実行すればD25に2、そして順に連番が入りD38に15が入るようにします。 同時に25行目から38行目までのA,B,C列にはそれぞれ1行目のA,B,C列と同じデータを入力します。 これの繰り返しです。 つまり2行目以下のD列で空白の行以下にどんどん連番を入れていく具合です。 前提としてD1、E1は整数しか入りません。またE1の数字はD1より大きいです。ただD1,E1に同じ数字が入った場合、その数字の1行分だけが入力されるようにします。 以上の処理が自動化できるマクロはできますか? アドバイス願います。

  • 複数シートを通して連番を振るマクロ

    マクロ初心者です エクセルワークシートが6枚あります。 シート1枚目のA列にB列データがある行まで連番を振ります(可変)1-100 シート2枚目のA列にはB列データがある101-195 シート3枚目のA列には196-305など ...... となるようにしたいです。 1枚目の最終行を取得して連番を振ることは出来たのですが、2枚目の始まりをどのように書いたらよいのか分かりません。 宜しくお願いします。

  • ExcelのVBAで連番を振る。

    A列が空白で、B列に1行目から***行目(毎回変わる)までデータが入力されている時、 A列に、1から***まで(B列のデータが終わるまで、連番を振るにはどんなVBAを かいたらいいのでしょうか? お願いします。

専門家に質問してみよう